SOLID

    Хорошая кодовая база:
  • Маштабируемость - легко вносить изменения
  • Новым людям легко вникнуть в проект
  • Код должен быть простым

Single Responsibility (Принцип единственной ответственности) - каждый класс должен решать только за одну операцию.

Open-Closed (Принцип открытости-закрытости) - классы должны быть открыты для расширения, но закрыты для модификации.

Liskov Substitution (Принцип подстановки Барбары Лисков) - каждый класс должен дополнять, а не замещать поведение базового класса.

Interface Segregation (Принцип разделения интерфейсов) - класс должен производить только те операции, которые необходимы для осуществления его функций, не нужно создавать функционал, которым не пользуемся.

Dependency Inversion (Принцип инверсии зависимостей) - модули верхнего уровня не должны зависеть от модулей нижнего уровня.