SOLID
- Хорошая кодовая база:
- Маштабируемость - легко вносить изменения
- Новым людям легко вникнуть в проект
- Код должен быть простым
Single Responsibility (Принцип единственной ответственности) - каждый класс должен решать только за одну операцию.
Open-Closed (Принцип открытости-закрытости) - классы должны быть открыты для расширения, но закрыты для модификации.
Liskov Substitution (Принцип подстановки Барбары Лисков) - каждый класс должен дополнять, а не замещать поведение базового класса.
Interface Segregation (Принцип разделения интерфейсов) - класс должен производить только те операции, которые необходимы для осуществления его функций, не нужно создавать функционал, которым не пользуемся.
Dependency Inversion (Принцип инверсии зависимостей) - модули верхнего уровня не должны зависеть от модулей нижнего уровня.