Копипаста в коде

Копипаста в коде — это не зло, а инструмент.

Не удаляйте дублирование сразу. Дайте ему показать вам, как всё на самом деле работает, и какие паттерны вы ещё не увидели.

Удаление дублирования — это прогнозирование будущего. Чем больше исходных данных удастся собрать, тем точнее будет прогноз.

Обычно я жду 3 повторов, чтобы начать чистить код. А чтобы не потерять места с копипастой, помечаю их коммент‑флагом @DUPLICATE.

После самого флага пишу, какую функциональность он дублирует. Это даёт флагу осмысленное и уникальное имя, по которому потом проще искать места для рефакторинга. Выглядит так:

// @DUPLICATE: solves difficult problem
const someFunc = (a, b) => 
  /* some sophisticated logic */

// @DUPLICATE: solves difficult problem
const duplicatesFunctionality = (a, b) => 
  /* the same sophisticated logic */

Нет, я не против DRY. Я за то, чтобы использовать его с умом.
Да, утверждение холиварное. Сорри, если вдруг заполыхало.

← Урбанистика, доступность и будущее Неправильные выводы →