Основные принципы
Преамбула
Радикализация и концептуализация доктрины незыблемых стандартов и правил так и не упрочилась, по естественным причинам, на ниве современного программно-инженерного дела, но вместе с тем принесла изрядное множество стилевых элементов, парадигм и универсиализированных конструктов в свое густое методологическое пространство. Тем не менее, основные, заслуживающие наиболее очевидного и безоговорочного подчинения принципы все еще остаются в разделе мелкокалиберных рекомендаций, исполнение которых, если и подразумевается, то ложится на плечи художника и остается на его совести.
Эти простые, безукоризненные максимы были разработаны задолго до того, как впервые в истории, человек бережно, и с должным почтением, прикоснулся к мягким клавишам QWERTY клавиатуры. Их можно услышать в конструкторских бюро и отыскать среди рекомендаций к написанию качественной беллетристики. Императивное исполнение этих элементарных правил внушительным и неизбежным образом влияет на реализацию проекта, оказывая благотворное воздействие на конечное состояние разрабатываемого продукта.
Принципы
Легенда гласит, что когда-то давно на земле жили разумные существа. Они обитали в лабиринте глубоких пещер под громадами циклопических горных массивов. Там они практиковали инженерное дело и были в своем ремесле самыми искусными мастерами, каких только знавал мир. Безглазые и бесгласые, эти смелые, прожженные виртуозы вывели универсальные и, в тоже время, удивительно лаконичные, незамысловатые принципы, которые лежали в основе их богатой эмпирической практики. Из глубины веков, они дошли к нам в виде имен их самых достойных новаторов: Quarm, Avur, Doritun, Onify.
- Качество следует максимизировать рационально (Quality must be rationally maximized, Quarm). Качество не есть самоцель, а лишь свойство, которое должно быть достигнуто в результате. Как и другие свойства, качество не может быть улучшено за счет всего остального.
- Избегать необоснованных повторений (Avoid unreasonable repetitions, Avur). Разрабатываемая единица должна быть детерминированной и выполнять однозначную утилитарную функцию. Части целого, которые могут быть сведены к одиночному экземпляру за счет их слияния должны подлежать таковой оптимизации. При этом дублирование замещается переиспользованием.
- Не усложнять без необходимости (Don't overcomplicate it unnecessarily, Doritun). Совершенство достигается не тогда, когда больше нечего добавить, а когда нечего убрать. Разрабатываемая сущность должна быть настолько простой (совершенной), насколько это возможно, покуда это не нарушает первый и второй принципы.
- Отказаться от невостребованной функциональности (Omit needless functionality, Onify). Запасаться функционалом, который гипотетически может пригодиться в будущем, но не представляет никакой ценности в ближайшей перспективе — по меньшей мере, опрометчиво. Правило гласит — отметайте все лишнее. Невостребованный функционал, как правило не находит применения в будущем, устаревает и становится бременем для тех, кто вынужден его поддерживать. Требования и детализация меняются быстрее, чем кажется.
Послесловие
Следует помнить, что необузданное использование этих принципов ведет к неизбежным мытарствам и, в конечном счете, превращает потенциально хорошую идею в обугленный и бесформенный мемориал тщетных потуг и безнадежных стремлений.Примечания:
- Эти принципы вы могли также встречать под другими названиями. Вот некоторые из них: DRY, YAGNI, KISS
- Руководство по стилю написания текстов гласит:
The Elements of Style William Strunk Jr. and E. B. White
Комментарии
Отправить комментарий