-
DRY
- Don’t Repeat Youself
-
DIE
- Duplication Is Evil
-
KISS
-
Keep It Simple, Stupid
- do not complicate! Create the most understandable solutions, apply design patterns and not reinvent the wheel.
-
SOLID
-
Single responsibility principle
- A class should have one and only one reason to change, meaning that a class should have only one job.
-
Open/closed principle
- Objects or entities should be open for extension, but closed for modification
-
Liskov substitution principle
- Let q(x) be a property provable about objects of x of type T. Then q(y) should be provable for objects y of type S where S is a subtype of T.
-
Interface segregation principle
- A client should never be forced to implement an interface that it doesn't use or clients shouldn't be forced to depend on methods they do not use.
-
Dependency inversion principle
- Entities must depend on abstractions not on concretions. It states that the high level module must not depend on the low level module, but they should depend on abstractions.
-
YAGNI
-
You Ain’t Gonna Need It
- implement only the necessary tasks and abandon the excess functionality
- Duplication of the same code should be avoided.