YAGNI · YAGNI (You Aren't Gonna Need It)
Принцип разработки «вам это не понадобится»: не реализуй функциональность, пока она реально не требуется.
Подробно
YAGNI — принцип экстремального программирования, сформулированный Роном Джеффрисом, который запрещает добавлять код «на будущее». Идея в том, что предположения о будущих требованиях почти всегда ошибочны, а преждевременная реализация приносит стоимость поддержки, тестирования и усложнения архитектуры уже сегодня. Принцип хорошо сочетается с простым дизайном, рефакторингом и разработкой через тестирование: сначала минимально работающее решение, затем расширение по факту появления требований. Применяется при проектировании API, выборе абстракций, планировании спринтов и в код-ревью как аргумент против «универсальных» фреймворков внутри проекта.
Примеры употребления
- -- Мы добавим интерфейс для второго типа БД?\n-- YAGNI, сейчас у нас одна PostgreSQL.
- Код-ревью: «Этот слой абстракции — явный YAGNI, удали до появления второго кейса.
- Правило команды: новые фиче-флаги добавляем только под задачи из текущего роадмапа (YAGNI).
- YAGNI не отменяет SOLID: границы модулей проектируем, но реализации — по потребности.
