A Detailed Guide to Abstraction in Software with Examples

We speak about abstraction all the time, as software developers, and yet its meaning can be pretty confusing. Could you explain clearly what means abstraction, if you needed to? This article will explain in depth what abstraction stands for, if we should abstract everything and, if not, what should be abstracted.

Global Variables and States: Why So Much Hate?

Global variables are common pitfalls many developers fall into. Indeed, difficult to scale and maintain an application crippled with globals. Why is that? Isn't it convenient to be able to access variables and their values everywhere? The global state problem is only part of a bigger one, namely leaking states and the lack of encapsulation.

A Detailed Explanation of The KISS Principle in Software

Simplicity is one of the most important concept to understand and apply as a developer. This article will first define what simplicity and complexity mean. Then, I will explain why simplicity is really important, to finally go over the main practices you can apply to make your codebase simpler.