Когда следование SOLID становится избыточным?
Принципы S.O.L.I.D
Строгое следование SOLID повсюду приводит к over-engineering: россыпи интерфейсов-на-один-класс, фабрики фабрик и навигация по семи слоям ради одной строчки логики.
Когда принципы избыточны
- Прототипы, скрипты, одноразовый код: единственная ось изменений — время.
- Стабильные домены: требования не менялись годами — «закрывать» код не от чего.
- Маленькая команда и кодовая база: косвенность дорожает быстрее, чем успевает окупиться.
Типичные перегибы
- Интерфейс на каждый класс, у которого одна реализация навсегда.
- DI-контейнер ради двух зависимостей, которые проще передать руками.
- Дробление по SRP до классов-пустышек с одними геттерами.
Критерий баланса
Абстракция оправдана, если уже есть вторая реализация, потребность в тесте без инфраструктуры или реально ожидаемое изменение — правила YAGNI и трёх ударов.
Коротко для собеседования
SOLID — инструмент против дорогих изменений, и там, где изменений не ожидается, он лишь добавляет косвенность. Абстракцию вводят, когда есть вторая реализация или реальная потребность в тестах; хорошая проверка — сколько файлов приходится трогать ради добавления одного поля.