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

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

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

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

Обычно я жду 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. Я за то, чтобы использовать его с умом.

Да, утверждение холиварное. Сорри, если вдруг заполыхало.