SOLID
Принципы:
- SRP: Single Responsibility Principle (принцип единственной обязанности-ответственности)
- Каждый класс выполняет одну функцию. Решать одну проблему хорошо
- Класс должен иметь одну и только одну причину для модификации
- OCP: Open/Closed Principle (принцип открытости/закрытости)
- Объекты проектирования (классы, функции, модули и т.д.) должны быть открыты для расширения, но закрыты для изменения
- Изменения могут сломать уже работающую логику
- LSP: Liskov Substitution Principle (принцип подстановки Барбары Лисков)
- Вместо родительского класса можно подставить дочерний, при этом в работе приложения не возникнет ошибок - наследовани в ООП
- ISP: Interface Segregation Principle (принцип разделения интерфейса)
- Лучше разработать много узкоспециализированных интерфейсов, чем один общего назначения. Например, можно создать несколько интерфейсов, которые поддерживают разные типы оплаты
- Это делает архитектуру более гибкой и упрощает тестирование приложения
- DIP: Dependency Inversion Principle (принцип инверсии зависимостей)
- Код должен иметь как можно меньше зависимостей. Это позволяет вносить изменения в компоненты без риска повлиять на работу других частей приложения