The SOLID principles
Some programming guidelines have a wide, general-purpose intention, while some are designed to fix certain specific problems. Thus, before talking about the specific problems, we should review those features that can be applied in many different scenarios and solutions. I mean those principles that should be taken into consideration beyond the type of solution or specific platform to program for.
Moreover, this is where the SOLID principles (and other related problems) come into play. In 2001, Robert Martin published a foundational article on the subject (http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod), in which he picked up a set of principles and guidelines that, in his own words, focus very tightly on dependency management, its inconveniences, and how to solve them.
To explain this further in his words, poor dependency management leads to code that is hard to change, fragile, and non-reusable. Reusability is one the main principles of OOP, along with maintainability...