What is abstraction, why do we need it and what are its dangers? Find out how to do it correctly and prevent issues.
What is separation of concerns and why do we need it for software that’s safe and easy to work with?
The principle of least knowledge is an essential software development principle. The less software knows, the easier it is to work with.
The principle of least astonishment is one of the fundamental principles in software development. Possibly the most important there is.
We need to keep in mind that software complexity increases exponentially with scale. Bad practices at a small level multiply when the project is larger.
One of the most important things we need to accomplish is to make software changes easy and safe. Propagating changes are a big obstacle to software development.’