Solid Principles: A Software Developer’s Framework to Robust, Maintainable Code
I am surprised by a number of people here with a lot of relevant experience and opinions like &quot;to hell principles and patterns, just make your software simple&quot;. Most of the software just cannot be made simple. I&#x27;ll go further and say: you cannot make life with simple software, because there are a lot of players around who will take your simple software and make it into more profitable complex software.<p>SOLID is essentially a way to make complex software simple to understand. Yes, you have to write 5 classes to introduce new type of persisting entity, but they are simple classes, mostly boilerplate. Complexity is not in number of LOC or files, it&#x27;s in business processes, their  interdependencies, &quot;when this then that, except those&quot; and so on.<p>With SOLID (coupled with DDD) your hiring process becomes quite simple: you check basic knowledge of language, performance tricks and caveats (like n+1 problem), understanding of principles with examples and voila, you have new team member. On the first day you will show him or her your domain dictionary, give access to git and ticket system, and you will get good enough code to fix bugs or introduce features in a matter of days. And it doesn&#x27;t matter if your code base is 10 years old, if you followed those principles yourself for all that time.