Что такое SOLID?
Классы
SOLID — это пять принципов объектно-ориентированного проектирования, которые помогают писать гибкий, поддерживаемый и расширяемый код.
Пять принципов
- S — Single Responsibility (единственная ответственность): у класса/модуля должна быть одна причина для изменения.
- O — Open/Closed (открытость/закрытость): код открыт для расширения, закрыт для модификации — новую логику добавляют, не переписывая старую.
- L — Liskov Substitution (подстановка Барбары Лисков): подтип должен подставляться вместо базового типа без нарушения поведения.
- I — Interface Segregation (разделение интерфейсов): много узких интерфейсов лучше одного большого; клиент не должен зависеть от методов, которые не использует.
- D — Dependency Inversion (инверсия зависимостей): модули зависят от абстракций, а не от конкретных реализаций.
Пример SRP
// Плохо: класс и хранит, и логирует, и шлёт email
// Хорошо: UserRepository, Logger, Mailer — раздельноЗачем это на фронтенде
- Компоненты с одной ответственностью проще тестировать и переиспользовать.
- DI-инверсия — основа внедрения сервисов и моков в тестах.
Коротко для собеседования
SOLID: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion. Цель — снизить связанность и упростить расширение и тестирование кода.