Кожна одиниця знань повинна мати єдине, однозначне представлення в системі. Дублювання коду означає, що зміну потрібно вносити в кілька місць — і одне неминуче забудуть. DRY — про знання, а не лише про текст: copy-paste поганий, але спільна функція для двох різних концепцій — теж погано.
Найпростіше рішення, що вирішує задачу — найкраще. Складний код важко читати, тестувати і підтримувати. Complexity is the enemy.
Не реалізовуй функціонал, поки він справді не потрібен. Код, написаний «про запас», застаріває, захаращує кодову базу і часто взагалі не використовується. Пишіть для сьогоднішніх вимог.