SOLID #
1. Что такое SOLID(каждая буква)? #
SOLID – это принципы разработки программного обеспечения, следуя которым получаем хороший код, который в дальнейшем будет хорошо масштабироваться и поддерживаться в рабочем состоянии.
S Single Responsibility Principle – принцип единственной ответственности.Каждый класс должен иметь только одну зону ответственности.
O Open closed Principle – принцип открытости-закрытости.Классы должны быть открыты для расширения, но закрыты для изменения.
L Liskov substitution Principle – принцип подстановки Барбары Лисков. Должна быть возможность вместо базового (родительского) типа класса подставить любой его подтип (класс-наследник), при этом работа программы не должна измениться.
I Interface Segregation Principle – это принцип разделения интерфейсов. Данный принцип обозначает, что не нужно заставлять клиента (класс) реализовывать интерфейс, который не имеет к нему отношения.
D Dependency Inversion Principle – это принцип инверсии зависимостей. Абстракции НЕ должны зависеть от деталей. Детали должны зависеть от абстракций. Модули верхнего уровня НЕ должны зависеть от модулей нижнего уровня, НО должны зависеть от абстракции.
2. Какие еще принципы можешь назвать? #
- DRY / Don’t Repeat Yourself — Не повторяйся!
- KISS / Keep It Simple Stupid — Делай это проще
- OR / Occam’s Razor — Бритва Оккама
3. Когда мы можем нарушать принципы SOLID? #
Принципы SOLID являются руководством для написания гибкого, поддерживаемого и расширяемого кода, но бывают ситуации, когда их нарушение может быть оправдано. Рассмотрим такие случаи:
- Оптимизация производительности
- Прототипирование и быстрые итерации
- Ограниченные ресурсы
- Преемственность кода