Принципы SOLID.
Готовлюсь к собеседованиям и систематизирую знания. Сегодня разбираем SOLID-принципы.
S — единство ответственности,
O — открытости/закрытости,
L — подстановки Лисков,
I — разделения интерфейсов,
D — инверсии зависимостей.
Единство ответственности
Класс должен решать лишь одну задачу. Он должен иметь одну и только одну причину для изменений. Как было: Класс User отвечает и за данные пользователя, и за его сохранение в базу. Как стало: Класс User хранит данные, а класс UserRepository отвечает за сохранение.
Открытость/закрытость
Этот принцип утверждает, что программные сущности должны быть открыты для расширения, но закрыты для модификации. В контексте Solid JS это значит, что можно легко добавлять новую функциональность через наследование или композицию, не изменяя существующий код, что предотвращает риск введения ошибок.
Принцип подстановки Лисков
Согласно этому принципу, объекты программы должны быть заменяемы их наследниками без вреда для функциональности приложения. Это обеспечивает, что наследованные классы или компоненты в Solid JS могут использоваться взаимозаменяемо, не нарушая ожидаемое поведение программы.
Разделение интерфейсов
Идея состоит в том, что лучше иметь много интерфейсов, специализированных под конкретные цели, чем один интерфейс, охватывающий множество различных задач. Этот принцип помогает избежать ситуации, когда классы должны реализовывать методы, которые они фактически не используют. В Solid JS это подразумевает создание чистых и организованных компонентов, каждый из которых взаимодействует только с теми интерфейсами, которые необходимы для его работы.
Инверсия зависимостей Модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракций.
Как было: Класс ReportService напрямую создает экземпляр MySQLDatabase для сохранения отчета. Как стало: Класс ReportService зависит от абстракции — интерфейса Database. Теперь мы можем передать ему в конструктор как MySQLDatabase, так и PostgreSQLDatabase, не меняя код сервиса.
· 02.10.2025
Было бы здорово если бы текст был больше похож на личные мысли а не пасту из учебника по JS. Почему? Это лучше читается. А также, рассказу своими словами больше веришь на интервью.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён
· 02.10.2025
Наткнулась на споры в этой теме по поводу не верной интерпретации некоторыми источниками некоторых пунктов (про принцип единой ответственности, например) поэтому решила не вносить еще свои правки, вдруг не верно что-то поняла 😬 собесы смотрела, там просто перечисление и своими словами да))
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён