Принципы проектирования для сбалансированного кодирования
Ниже приведены принципы проектирования, которые должен знать каждый разработчик при реализации, проектировании и проверке любого кода:
** ПРИНЦИП ЕДИНСТВЕННОЙ ОТВЕТСТВЕННОСТИ **
У каждого объекта должна быть одна обязанность, и все его службы должны соответствовать этой ответственности.
Вещи, которые меняются вместе, могут быть объединены.
** ПРИНЦИП ЗАМЕНЫ ЛИСКОВА **
Если он выглядит как утка, крякает как утка, но нуждается в батарейках, вы, вероятно, ошиблись Абстракция.
В иерархии классов мы должны иметь возможность обращаться со специализированным объектом, как если бы он был объектом базового класса.
** НЕ ПОВТОРЯЙТЕСЬ (СУХОЙ) **
Повторение — корень всех зол программного обеспечения. DRY — это принцип, направленный на уменьшение повторения информации всех видов.
Просто не повторяйте код, который вы/кто-то уже написал. Попробуйте повторно использовать тот же существующий код.
** ПРЕДПОЧИТАЙТЕ КОМПОЗИЦИЮ НАСЛЕДОВАНИЮ **
Наследование является наиболее злоупотребляемой концепцией.
Классы должны достигать полиморфного поведения и повторного использования кода за счет своей композиции (путем включения экземпляров других классов, реализующих желаемую функциональность), а не наследования от базового или родительского класса.
** РАЗДЕЛЕНИЕ ИНТЕРФЕЙСА **
Адаптируйте интерфейсы к индивидуальным потребностям клиента.
Клиентов не следует заставлять зависеть от интерфейсов, которые они не используют.
** ВАМ ЭТО НЕ НУЖНО **
Не тратьте свои ресурсы на то, что, по вашему мнению, может вам понадобиться.
Решите завтрашнюю проблему завтра, это должно быть хорошо для настоящего времени.
** KEEP IT SIMPLE TUPID (KISS) **
«Если вы не можете объяснить это шестилетнему ребенку, вы недостаточно хорошо это понимаете»
—Альберт Эйнштейн