Принципы программирования
DRY
DRY — Don't Repeat Yourself («Не повторяйся»).
DRY — это принцип, нацеленный на снижение повторения информации различного рода.
Согласно этому принципу каждое повторяемое поведение в коде следует обособлять (например, выделять в отдельную функцию) для возможности многократного использования. Когда у вас в кодовой базе есть два совершенно одинаковых фрагмента кода, это не хорошо, поскольку часто приводит к рассинхронизации и прочим багам.
Если код не дублируется, то для изменения логики достаточно внесения исправлений всего в одном месте и проще тестировать одну (пусть и более сложную) функцию, а не набор из десятков однотипных. Следование принципу DRY всегда приводит к декомпозиции сложных алгоритмов на простые функции. А декомпозиция сложных операций на более простые (и повторно используемые) значительно упрощает понимание программного кода. Повторное использование функций, вынесенных из сложных алгоритмов, позволяет сократить время разработки и тестирования новой функциональности.
Следование принципу программирования DRY позволяет добиться высокой сопровождаемости проекта, простоты внесения изменений и качественного тестирования.
Нарушение принципа DRY называют WET. Эта аббревиатура расшифровывается как Write Everything Twice («Пиши всё дважды»).
В противопоставлении данных аббревиатур заложена игра слов — dry («сухой») против wet («влажный»).
KISS
KISS — Keep It Short and Simple («Делай короче и проще»); Keep It Simple, Stupid («Не усложняй, тупица»).
KISS — это принцип проектирования и программирования, при котором простота системы декларируется в качестве основной цели или ценности.
Чем код или архитектура проще, тем легче в них разобраться, как вам, так и другим людям, занимающимся их поддержкой. Под простотой главным образом имеется в виду отказ от использования хитроумных приемов и ненужного усложнения.
YAGNI
YAGNI — You Ain't Gonna Need It («Вам это не понадобится»).
YAGNI — принцип проектирования, при котором в качестве основной цели и ценности декларируется отказ от избыточной функциональности. То есть возможности, которые не описаны в требованиях к системе, просто не должны реализовываться.
Основная проблема, которую решает принцип YAGNI — это устранение тяги программистов к излишней абстракции, к экспериментам «из интереса» и к реализации функционала, который сейчас не нужен, но, по мнению разработчика, может либо вскоре понадобиться, либо просто будет полезен, хотя в реальности такого очень часто не происходит.
Источники информации:
Last updated