В#nbsp;одном из#nbsp;прошлых постов мы#nbsp;рассматривали качество кода в#nbsp;контексте использования линтеров и#nbsp;руководств. Но#nbsp;что, если я#nbsp;скажу вам, что дело ими не#nbsp;ограничивается? Помимо жестко декларированных правил по#nbsp;косметике, существуют и#nbsp;более обширные понятия. Сегодня мы#nbsp;рассмотрим принципы проектирования приложений SOLID, DRY и#nbsp;KISS. Уверен, многим из#nbsp;вас встречались эти аббревиатуры ранее.
В#nbsp;отличии от#nbsp;правил стиля кода, соблюдение которых легко может быть проверено программой, соблюдение принципов проектирования требует человеческого вмешательства и#nbsp;непосредственного участия. Именно поэтому каждому разработчику важно хорошо понимать природу и#nbsp;зону ответственности каждого из#nbsp;принципов.
Рассмотрим:
SOLID#nbsp;— эта аббревиатура объединяет пять принципов объектно-ориентированного программирования и#nbsp;дизайна. Все они направлены на#nbsp;то, чтобы привести код к#nbsp;слабой связанности и#nbsp;сильной связности.
Single Responsibility#nbsp;— принцип единственной ответственности. Никогда не#nbsp;должно быть больше 1-ой причины изменить модуль.
Open-Closed#nbsp;— принцип открытости/закрытости. Модули должны быть открыты для расширения, но#nbsp;закрыты для изменения.
Liskov Substitution#nbsp;— принцип подстановки Барбары Лисков. Объекты в#nbsp;программе могут быть заменены их#nbsp;наследниками без изменения свойств программы.
Interface Segregation#nbsp;— принцип разделения интерфейса. Клиенты не#nbsp;должны реализовывать методы, которые не#nbsp;будут использованы.
Dependency Inversion#nbsp;— принцип инверсии зависимостей. Зависимости внутри системы строятся на#nbsp;уровне абстракций.
Характеристика «слабая связанность» означает, что модуль обладает малой зависимостью от#nbsp;других.
Характеристика «сильная связность» означает, что все классы и#nbsp;методы сгруппированы, если имеют близкую функциональность.
DRY (Don't Repeat Yourself)#nbsp;— избегайте копирования кода в#nbsp;разные места. В#nbsp;противном случае дальнейшая поддержка будет трудной. Причина в#nbsp;том, что вам придется изменять дублированный код в#nbsp;разных местах.
KISS (Keep It#nbsp;Short and Simple)#nbsp;— Код не#nbsp;должен вызывать затруднений у#nbsp;других разработчиков при модификации или исправлении ошибок.
Ваши методы должны быть небольшими (30−50 строк).
Каждый метод должен решать только одну проблему.
Если в#nbsp;проекте присутствует много условий, убедитесь, что вы#nbsp;разбили их#nbsp;на#nbsp;мелкие блоки кода.
Keep It#nbsp;Simple, Stupid.
Каждый из#nbsp;этих принципов делает жизнь разработчика (и#nbsp;его тимлида) чуть лучше и#nbsp;проще, пускай поначалу вникнуть может быть сложно. Начинайте использовать принципы проектирования и#nbsp;со#nbsp;временем придете к#nbsp;пониманию каждого из#nbsp;них.