S.O.L.I.D.
You have propably heart aboud clean code design. The S.O.L.I.D. principles are part of such design. In short, the The S.O.L.I.D. principles tell us how to arrange our functions and data structures into classes, and how those classes should be interconnected.
SRP
The Single Responsibility Principle says, that each software module has one, and only one, reason to change.
OCP
The Open-Closed Principle says, that software systems to be easy to change, they must be designed to allow the behavior of those systems to be changed by adding new code, rather than changing existing code. In other worlds it can be interpreted as a system should follow open for extension but closed for change principle.
LSP
The Liskov Substitution Principle says, that to build software systems from interchangeable parts, those parts must adhere to a contract that allows those parts to be substituted one for another.
ISP
The Interface Segregation Principle advises software designers to avoid depending on things that they don’t use. In fact, the ISP splits interfaces that are very large into smaller and more specific ones so that clients will only have to know about the methods that are of interest to them.
DIP
The Dependency Inversion Principle says, code that implements high-level policy should not depend on the code that implements low-level details.