По каким признакам в коде видно нарушение принципов SOLID?
Принципы S.O.L.I.D
Нарушения SOLID видны по типичным запахам: громоздкие классы, правки на каждый чих, развязки по конкретным типам и невозможность протестировать класс в изоляции.
Чек-лист запахов
- SRP: класс на тысячи строк; в его описании звучит «и», «а также»; правится разными людьми под разные задачи.
- OCP: цепочки
if/elifилиswitchпо типу, растущие с каждой фичей; новый вариант требует правки старого кода. - LSP: проверки конкретного типа перед вызовом; переопределённые методы пустые или бросают «не поддерживается»; наследник падает там, где база работала.
- ISP: интерфейс-«портфель» с десятками методов; реализации заполнены заглушками.
- DIP: создание инфраструктуры внутри бизнес-логики; тест требует реальной базы и сети.
Общий симптом
Стоимость безопасного изменения растёт: страх правок и регрессии по принципу «починил здесь — сломал там».
Как чинить
Не всё сразу: покрыть тестами, выделить абстракцию в самой горячей точке изменений, затем постепенно переносить вариации в новые реализации.
Коротко для собеседования
Нарушения выдают запахи: гигантские классы, switch по типу, заглушки в реализациях и бизнес-логика, которая сама создаёт инфраструктуру. Итоговый симптом — страх правок; лечат постепенно: сначала тесты, затем абстракция в самой часто меняющейся точке.