среда, 7 сентября 2011 г.

DRY (Don't Repeat Yourself)


Это, пожалуй, самый главный принцип программирования. Именно дублирующийся код открывает парад плохих запахов в книге Фаулера "Рефакторинг". Почему?

Что плохого в copy-paste программировании? Может не очень красиво, зато быстро. Кроме того, это замечательный способ поправить своё материальное положение, если заказчик платит за количество написанных строк. Только вот проблема в том, что каждую написанную строку потом приходится сопровождать.

Если вы разрабатываете приложение с нуля, и думаете, что вам не придётся сопровождать код, спешу вас огорчить! Код не надо сопровождать только первые 10 минут после его написания. Любые манипуляции с кодом через час, день, неделю или год - это уже сопровождение. Но это не имеет значения, если в следующей жизни вы собираетесь быть радугой.

Большой объём кода, который надо сопровождать - это ещё не самое плохое. Проблемы начинаются, когда надо сопровождать дублирующийся код. Дублирующийся код представляет одни и те же знания в разных местах. И когда приходит пора изменений, надо отыскать все копии кода и везде внести изменения. Вопрос даже не в том, сможете ли вы вспомнить все эти места, вопрос в том, когда вы их забудете.

Отбросим мысли о радуге - попробуем получить макимум от нашей текущей инкарнации. Чтобы избежать головной боли и большого объёма работы по внесению изменений в систему - лучше отказаться от дублирования кода/знаний. Собственно принцип DRY как раз об этом:
Каждая единица знаний должна иметь единственное и однозначное представление в системе.
Чтобы разобраться, что значит "единица знаний" и какие виды дублирования чаще всего встречаются (спорю, о некоторых вы даже не подозревали), надо покликать по этим ссылкам:

Комментариев нет:

Отправить комментарий