За годы работы с унаследованным кодом я все больше и больше ценю тесты и простой код.
«Когда вы были новичком в программировании, вы писали простой код. Хотя вы, возможно, не оценили этого в то время, это была большая сила».
-Сэнди Мец и Катрина Оуэн, 99 бутылок ООП
Когда у нас есть простой код, иногда он не лаконичен, а иногда содержит дублирование.
Сушить или не сушить — вопрос, который у меня в голове уже несколько дней.
Лично я терпимо отношусь к дублирующемуся коду, особенно когда их легко обнаружить и до того, как мне ясен правильный уровень абстракции.
Например, я всегда не решался вводить логическое значение в метод объединения двух ветвлений. (Из моего опыта в большинстве случаев они становятся плохими.) Потому что я всегда настороженно отношусь к этим двум разветвлениям, если они заканчиваются совершенно по-разному. Может быть, ЯГНИ (Вам это не понадобится). СУШИТЕ его.
Я хотел бы больше СУШИТЬ вещи, когда вижу логику, разбросанную по нескольким местам, что означает, что позже будет труднее найти дублирование. Однако я предпочитаю дублирование неправильной абстракции.
Дублирование намного дешевле неправильной абстракции.
Предпочитайте дублирование неправильной абстракции.
-Сэнди Мец
Более простое обслуживание не является оправданием слепого использования DRY. DRY не только имеет компромисс и не обязательно упрощает техническое обслуживание. Это также может препятствовать изменению при неправильном применении. Санди уже все сказал здесь, Тирания DRY
Осушение «концепций» выявляет сходство и позволяет повторно использовать их; СУХОЕ «случайное дублирование» говорит об одинаковости и препятствует изменениям.
-Сэнди Мец