Comments 4
Мне кажется, автор не топит за говнокод, а говорит достаточно разумные вещи.
- Технологии, требующие глубокого изучения или знания математики, повышают порог входа.
Если у нас собралась команда рок-звезд, мы можем применять все это. Но не каждому это дано. Не все столь фанатичны. И для среднестатистического проекта лучше писать так, чтобы это понял среднестатистический разработчик. И да, если пишем с "индусами", чтобы понял даже "индус".
- Бездумное следование принципу DRY может увести не туда.
Как он выглядит упрощенно: увидели повторяющийся код — выделили в функцию / метод / базовый класс. Но это неверно! Сначала мы должны ответить на вопрос: а должен ли этот код повторяться и при внесении изменений? Или в последствии мы можем изменить один вариант копипасты, а другой оставить нетронутым? Т.е. отвечает ли выделенная функция принципу SRP.
Поэтому иногда копипаста и бойлерплейт бывают полезны.
Для рядовых разработчиков обычно создают простые правила (например стандарт кодирования принятый в конкретной команде или good practice), как себя вести в какой-то ситуации и DRY мне кажется тут более понятная парадигма (бери то что уже сделано не изобретай велосипед)
Из минусов дублирования кода я вижу такой: прилетит требование поменять бизнес логику, а она вместо одной процедуру размазана по коду. И будут несколько команд делать одно и то же в разных местах и наверняка по разному. И добавят вместо условной одной ошибки в процедуре, N ошибок в разных местах и не факт, что вообще найдут все места, где поменять нужно. Поддерживать такое очень сложно потом.
Лично я бы сказал что есть гораздо более «удачные» подходы к решению этих проблем. Тот же дядюшка Боб с его «Чистым кодом» на мой взгляд предлагает лучшее решение. Но это конечно очень субьективно…
Улучшенные четыре правила проектирования ПО