intermediate

SOLID, DRY, KISS, YAGNI и related principles

Используйте design principles как heuristics управления изменениями для responsibilities, dependencies, duplication, simplicity и coupling.

SOLID, DRY, KISS, YAGNI и родственные принципы — словарь компромиссов, а не значки для коллекции. На интервью ждут, что вы покажете, когда принцип помогает изменениям, а когда механическое применение ведёт к overengineering.

Охват: SOLID подробно, вспомогательные принципы (DRY, KISS, YAGNI, separation of concerns, Law of Demeter, cohesion/coupling) и практика (распознавание overengineering, объяснение trade-offs, демонстрация в коде, когда правило можно нарушить).

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

Типовые ошибки: ответы-лозунги, преждевременная абстракция «на будущее», DRY, склеивающий несвязанные понятия.

Чеклист:

  • Назовите change pressure, с которым борется принцип.
  • Сравнивайте альтернативы по цене, а не по ярлыку.
  • Покажите короткий пример кода по запросу.
  • Признайте, когда простота важнее принципа.