Принципы проектирования для сбалансированного кодирования

Ниже приведены принципы проектирования, которые должен знать каждый разработчик при реализации, проектировании и проверке любого кода:

** ПРИНЦИП ЕДИНСТВЕННОЙ ОТВЕТСТВЕННОСТИ **
У каждого объекта должна быть одна обязанность, и все его службы должны соответствовать этой ответственности.
Армейский нож.jpg

Вещи, которые меняются вместе, могут быть объединены.

** ПРИНЦИП ЗАМЕНЫ ЛИСКОВА **
Если он выглядит как утка, крякает как утка, но нуждается в батарейках, вы, вероятно, ошиблись Абстракция.
утка1.png

В иерархии классов мы должны иметь возможность обращаться со специализированным объектом, как если бы он был объектом базового класса.

** НЕ ПОВТОРЯЙТЕСЬ (СУХОЙ) **
Повторение — корень всех зол программного обеспечения. DRY — это принцип, направленный на уменьшение повторения информации всех видов.
Сухой.png

Просто не повторяйте код, который вы/кто-то уже написал. Попробуйте повторно использовать тот же существующий код.

** ПРЕДПОЧИТАЙТЕ КОМПОЗИЦИЮ НАСЛЕДОВАНИЮ **
Наследование является наиболее злоупотребляемой концепцией.
композиция.jpeg

Классы должны достигать полиморфного поведения и повторного использования кода за счет своей композиции (путем включения экземпляров других классов, реализующих желаемую функциональность), а не наследования от базового или родительского класса.

** РАЗДЕЛЕНИЕ ИНТЕРФЕЙСА **
Адаптируйте интерфейсы к индивидуальным потребностям клиента.
ИнтерфейсСегрегация.jpg

Клиентов не следует заставлять зависеть от интерфейсов, которые они не используют.

** ВАМ ЭТО НЕ НУЖНО **
Не тратьте свои ресурсы на то, что, по вашему мнению, может вам понадобиться.
Тебе-Не-Понадобится-Октябрь-2013-300x300.png

Решите завтрашнюю проблему завтра, это должно быть хорошо для настоящего времени.

** KEEP IT SIMPLE TUPID (KISS) **
«Если вы не можете объяснить это шестилетнему ребенку, вы недостаточно хорошо это понимаете»
—Альберт Эйнштейн
поцелуй.jpg

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *