Most of us agree that in many cases following best practices leads to better code. Namely, it decreases the complexity and allows us to reason about even large software systems easier.
But why is that so, exactly? Today, we’ll take two design principles – separation of concerns and immutability – and see how (and why!) they decrease the complexity of the code.
When you enter some field as a novice, there is a lot of stuff you must learn in order to become proficient in it. The learning path can usually be broken down into 4 stages of competence which you can traverse in 2 different ways.
More on Stages of competence →
I’d like to wrap up the “Most valuable software development principles” article series with this post.
Most valuable software development principles →
Another software development principle I advocate you follow is making implicit assumptions explicit in your code. Let’s see what that means.