SOLID (сокр. от англ. single responsibility, open-closed, Liskov substitution, interface segregation и dependency inversion) в программировании — мнемонический акроним, введённый Майклом Фэзерсом (Michael Feathers) для первых пяти принципов, названных Робертом Мартином в начале 2000-х , которые означали пять основных принципов объектно-ориентированного программирования и проектирования.
Принципы
Избавиться от “признаков плохого проекта”[4] помогают следующие пять принципов SOLID:
Инициал | Представляет[1] | Название[4], понятие |
---|---|---|
S | SRP[5] |
|
O | OCP[6] |
|
L | LSP[7] |
|
I | ISP[8] |
|
D | DIP[10] |
|
Признаки плохого проекта
- Закрепощённость: система с трудом поддается изменениям, поскольку любое минимальное изменение вызывает эффект “снежного кома”, затрагивающего другие компоненты системы.
- Неустойчивость: в результате осуществляемых изменений система разрушается в тех местах, которые не имеют прямого отношения к непосредственно изменяемому компоненту.
- Неподвижность: достаточно трудно разделить систему на компоненты, которые могли бы повторно использоваться в других системах.
- Вязкость: сделать что-то правильно намного сложнее, чем выполнить какие-либо некорректные действия.
- Неоправданная сложность: проект включает инфраструктуру, применение которой не влечёт непосредственной выгоды.
- Неопределенность: проект трудно читать и понимать. Недостаточно четко выражено содержимое проекта.