SOLID (сокр. от и ) в программировании — мнемонический акроним, введённый Майклом Фэзерсом () для первых пяти принципов, названных Робертом Мартином (прим. отсылка на «first five principles», то есть в статье не используется акроним.) в начале 2000-х Выступление на конференции «2009 Gotham Ruby Conference» в мае 2009., которые означали 5 основных принципов объектно-ориентированных проектирования и программирования.
Однако, принципы SOLID применимы не только к объектно-ориентированному программному коду. Использование слова «класс» означает лишь инструмент объединения функций и данных в группы. Любая программная система имеет такие объединения, например, это может быть «модуль».
Принципы Избавиться от «признаков плохого проекта» помогают следующие 5 принципов SOLID:
Инициал Представляет Название, понятие S SRP Принцип единственной ответственности (single responsibility principle) У класса должна быть только одна причина для изменения. Или, как подметил Р. Мартин в книге «Чистая архитектура. Искусство разработки программного обеспечения», когда описывал эволюцию данного определения, окончательная версия принципа единственной ответственности выглядит так: «Модуль должен отвечать за одного и только за одного актора.» O OCP Принцип открытости/закрытости (open-closed principle) «программные сущности … должны быть открыты для расширения, но закрыты для модификации». L LSP Принцип подстановки Лисков (Liskov substitution principle) «функции, которые используют базовый тип, должны иметь возможность использовать подтипы базового типа не зная об этом». См. также контрактное программирование. I ISPПринцип разделения интерфейса (interface segregation principle) «много интерфейсов, специально предназначенных для клиентов, лучше, чем один интерфейс общего назначения». D DIPПринцип инверсии зависимостей (dependency inversion principle) «Зависимость на Абстракциях. Нет зависимости на что-то конкретное».
Для чего нужны принципы SOLID При создании программных систем использование принципов SOLID способствует созданию такой системы, которую будет легко поддерживать и расширять в течение долгого времени. Принципы SOLID — это руководства, которые также могут применяться во время работы над существующим программным обеспечением для его улучшения, например, для удаления «дурно пахнущего кода».
Стратегии гибкой и адаптивной разработки предполагают написание кода с соблюдением принципов SOLID.
См. также DRY GRASP KISS YAGNI
Примечания
Литература Роберт С. Мартин, Джеймс В. Ньюкирк, Роберт С. Косс. Быстрая разработка программ. Принципы, примеры, практика. — Вильямс, 2004, ISBN 5-8459-0558-3, ISBN 0-13-597444-5. Мартин Р., Мартин М. Принципы, паттерны и методики гибкой разработки на языке C#. — Символ-Плюс, 2011, ISBN 5-93286-197-5, ISBN 978-5-93286-197-4, ISBN 0-13-185725-8, ISBN 978-0-13-185725-4. Мартин, Р. Чистая архитектура. Искусство разработки программного обеспечения. = Clean architecture. A Craftsman’s Guide to Software Structure and Design. — Питер, 2018. — ISBN 978-5-4461-0772-8.
Ссылки Principles Of OOD — Описание и ссылки на подробные статьи о SOLID.
Категория:Объектно-ориентированное программирование Категория:Проектирование программного обеспечения Категория:Принципы программирования