Что такое SOLID и зачем нужны эти принципы?
Принципы S.O.L.I.D
SOLID — пять принципов объектно-ориентированного дизайна, которые делают код устойчивым к изменениям: изменение требований затрагивает мало мест, а классы легко тестировать.
Расшифровка
- S — Single Responsibility: у класса одна причина для изменения.
- O — Open/Closed: открыт для расширения, закрыт для модификации.
- L — Liskov Substitution: подтипы заменяют базовый тип без сюрпризов.
- I — Interface Segregation: много узких интерфейсов лучше одного толстого.
- D — Dependency Inversion: зависимости направлены на абстракции, а не на конкретику.
- Принципы собрал Роберт Мартин, аббревиатуру позже предложил Майкл Фезерс.
Что дают на практике
- Правки локализованы: новая фича добавляется новым кодом, а не перелопачиванием старого.
- Тесты проще: зависимости подменяются, классы остаются маленькими и сфокусированными.
Цена
Больше абстракций и файлов; в маленьком проекте строгое следование избыточно — принципы ориентир, а не догма.
Коротко для собеседования
SOLID — пять ориентиров для ООП-дизайна: одна ответственность, расширение без правок, честная подстановка подтипов, узкие интерфейсы и зависимость от абстракций. Они окупаются в долгоживущем коде с меняющимися требованиями, а в маленьком проекте буквальное следование им плодит лишние абстракции.