intermediate

Recognizing overengineering

Замечайте abstraction, indirection, configurability или pattern usage, которые стоят дороже, чем заслуживает текущая problem.

Переусложнение добавляет абстракцию, косвенность, configurability или паттерны, чья цена выше ценности текущей проблемы. Сигналы: framework без вашей боли; interface с одной реализацией; feature flags для невыпущенных идей; диаграммы толще кода.

Спросите: какую пользовательскую боль этот слой снимает сегодня? Если никакую — отложите или удалите.

На интервью: критика sample architecture с лишним event bus и более простой путь.

Типовые ошибки: resume-driven design; паттерны big-tech на startup scale; страх rework блокирует shipping.

Компромисс — теоретическая future-proofing против velocity и понимания командой.

Чеклист:

  • Каждый слой — под текущую боль или риск.
  • Считайте реализации на абстракцию.
  • Удаляйте неиспользуемую общность.