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