Глава 4

YAGNI: не строй того, чего ещё не потребовали

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

YAGNI - "You Aren't Gonna Need It" - не запрещает проектировать. Он предлагает отделять известные требования от фантазий о будущем. Известное требование - это то, что подтверждено задачей или реальным сценарием. Фантазия - "а вдруг когда-нибудь понадобится". Первое стоит закладывать, второе почти всегда дешевле добавить потом, когда оно станет фактом.

Гибкость без запроса - это не запас, а долг. Каждый "на будущее" интерфейс и флаг нужно объяснять новому человеку и тащить сквозь все изменения. Если требования нет, самый гибкий код - тот, которого пока нет.
Проверка знаний

Что предлагает YAGNI?

KISS и YAGNI работают вместе и раньше всех. Посмотрим на них на нашем примере - и увидим, что проверяют они не количество строк.

Ссылки