مباحث
PM save prefix
Comments
Naming
Side-effect free constructors
Law of Demeter (Least knowledge)
Middleman code-smell
Avoid static methods
Avoid using utils, utility, utility name
Coupling/Cohesion
Consistency
Single Responsibility
Open Close
Dependency Inversion