SOLID целиком
Вопрос
Назови пять принципов SOLID и объясни каждый одной фразой.
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
S - Single Responsibility: у модуля одна причина для изменения
O - Open/Closed: открыт для расширения, закрыт для изменения
L - Liskov: наследника можно подставить вместо базового без сюрпризов
I - Interface Segregation: узкие интерфейсы вместо одного толстого
D - Dependency Inversion: зависеть от абстракции, а не от реализации
во фронтенде это правила про компоненты, хуки и модули, а не про классы
Что могут спросить следом
- Какой принцип нарушается чаще всего в React-коде
- Где SOLID во фронтенде избыточен
- Чем SOLID отличается от DRY и KISS
Разбор
S - единственная ответственность: у модуля должна быть одна причина для изменения. Компонент, который и запрашивает данные, и форматирует, и рисует таблицу, меняется по трём разным поводам.
O - открыт для расширения, закрыт для изменения: новое поведение добавляется новым
кодом, а не правкой существующего. Во фронтенде это children и слоты вместо очередного
булева пропса.
L - подстановка Лисков: наследник должен работать везде, где работает базовый тип.
Обёртка над button, которая молча игнорирует disabled, нарушает принцип.
I - разделение интерфейсов: лучше несколько узких, чем один толстый. Компонент не должен требовать двадцать пропсов, из которых используется три.
D - инверсия зависимостей: модуль зависит от абстракции. Компонент принимает функцию загрузки, а не импортирует конкретный axios-клиент.
Честная формулировка на собеседовании: SOLID писался для ООП, но во фронтенде читается как набор правил про границы модулей и компонентов.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.