Фанаты TDD скажут, что абсолютно необходимо писать тесты перед кодом.
Особенно увлечённые практиками ООП разнесут в пух и прах любой код, который не следует принципам, подходам и философии их любимой парадигмы.
Сторонники функционального программирования будут убеждать, что только функциональный подход имеет смысл — всё остальное должно, как минимум, вызывать чувство стыда.
Программисты создали огромное количество правил, которые считают за абсолютные — нам нужна хоть какая-то определённость в том, что такое хорошо и что такое плохо при написании кода.
На самом деле, эти правила — не более чем набор мнений о том, как можно и как стоит писать код. Код должен работать, в идеале быстро, и желательно так, чтобы его можно было легко изменять и расширять в будущем. Все остальные «догматы» таковыми не являются. Они могут иметь, а могут и не иметь смысл для конкретного проекта и программы.