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