Why should we care about design?
In software development, whether you are an expert or a beginner, there are some situations where code seems to be unnatural. You can't avoid the feeling that something is wrong with that code when reading it. Occasionally, you even wonder why the previous programmer implemented a specific method or a class in such a twisted manner. This is because the same functionality can be implemented in a vast number of different ways, each of them unique. With this huge number of possibilities, which is the best one? What defines a good solution? Why is one better than the others? The fact is, all of them are valid so long as the goal is achieved. However, it is true that some aspects should be considered when choosing the right solution. This is where the design of the solution becomes relevant.
Design principles
A software design principle is a rule or set of rules that work as a guide for software developers and push them towards smart and maintainable solutions....