Получить доступ

Что верно про YAGNI?

MiddleПринципы проектирования
Коротко

YAGNI — не строить под несуществующие требования. Цена преждевременной фичи: постройка, задержка нужного, сопровождение лишнего кода и исправление, если угадали неверно. На тесты, обработку ошибок и чистоту кода принцип не распространяется.

  • Типичное нарушение — интерфейс с единственной реализацией «на случай второй БД»
  • Спекулятивные параметры, флаги, точки расширения
  • Код, который легко изменить, — лучшая подготовка к будущему

А ещё Исключение: решения, которые потом очень дорого менять (формат данных, публичный API)

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

Фаулер раскладывает цену преждевременной фичи на четыре части: постройка, задержка (пока делали это — не делали нужное), сопровождение (лишний код читают и тестируют всю его жизнь) и исправление, если угадали неверно. Важная граница: YAGNI про функциональность и спекулятивные точки расширения. Тесты, обработка ошибок, идемпотентность и внятные границы модулей — это не будущая фича, а то, что делает изменения дешёвыми.

Что хотят услышать

  • Суть и цена преждевременной фичи.
  • Границы применения.

Частые ошибки

  • Прикрывать YAGNI отказ от качества.
  • Считать любую абстракцию преждевременной — ось изменений может быть уже видна.

Проверьте себя

Несколько верных вариантов. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✓Цена преждевременной фичи складывается из постройки, задержки, сопровождения и исправления ошибки выбора
  • ✓Интерфейс с единственной реализацией «на случай второй БД» — типичное нарушение
  • ✓Принцип касается спекулятивной функциональности и точек расширения, а не качества кода
  • ✗YAGNI оправдывает отказ от тестов и обработки ошибок до появления явного требования

Что спросят дальше

  • Как отличить назревшую абстракцию от спекулятивной общности?
  • Как это соотносится с OCP?

Разбор темы

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем