Не повторяйся


Don’t repeat yourself здорово звучит, особенно в виде аббревиатуры DRY, но не особо точно отражает свою суть, что чревато неправильным истолкованием.

Иногда этот принцип начинают понимать в том смысле, что код вообще не должен дублироваться, что не соответствует первоисточнику.

На самом деле так:

Каждая часть знания должна иметь единственное, непротиворечивое и авторитетное представление в рамках системы.

Принцип был сформулирован Энди Хантом и Дэйвом Томасом в их книге Программист-прагматик.

В моей личной классификации этот принцип назвается Single Realisation Principle.

Повторять нельзя реализацию, вызовы функций повторять можно и нужно. Более того, функцию и создавали ради того, чтобы её вызов повторяли в разных местах. Да хоть в одном месте — кто запретит?