За годы работы с унаследованным кодом я все больше и больше ценю тесты и простой код.

«Когда вы были новичком в программировании, вы писали простой код. Хотя вы, возможно, не оценили этого в то время, это была большая сила».

-Сэнди Мец и Катрина Оуэн, 99 бутылок ООП

Когда у нас есть простой код, иногда он не лаконичен, а иногда содержит дублирование.

Сушить или не сушить — вопрос, который у меня в голове уже несколько дней.

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

Например, я всегда не решался вводить логическое значение в метод объединения двух ветвлений. (Из моего опыта в большинстве случаев они становятся плохими.) Потому что я всегда настороженно отношусь к этим двум разветвлениям, если они заканчиваются совершенно по-разному. Может быть, ЯГНИ (Вам это не понадобится). СУШИТЕ его.

Я хотел бы больше СУШИТЬ вещи, когда вижу логику, разбросанную по нескольким местам, что означает, что позже будет труднее найти дублирование. Однако я предпочитаю дублирование неправильной абстракции.

Дублирование намного дешевле неправильной абстракции.

Предпочитайте дублирование неправильной абстракции.

-Сэнди Мец

Более простое обслуживание не является оправданием слепого использования DRY. DRY не только имеет компромисс и не обязательно упрощает техническое обслуживание. Это также может препятствовать изменению при неправильном применении. Санди уже все сказал здесь, Тирания DRY

Осушение «концепций» выявляет сходство и позволяет повторно использовать их; СУХОЕ «случайное дублирование» говорит об одинаковости и препятствует изменениям.

-Сэнди Мец