intermediate

DRY

Убирайте duplicated knowledge и business rules, но терпите похожий code, пока shared abstraction не станет stable и cheaper than repetition.

DRY (Don't Repeat Yourself) бьёт по дублированию знания и бизнес-правил — не по каждой похожей строке кода. Если два фрагмента эволюционируют по разным причинам, принудительная абстракция даёт coupling. Извлекайте, когда правило реально общее и стабильное; терпите дублирование, пока третий похожий случай не прояснит абстракцию.

DRY сквозной: magic numbers, validation rules, mapping ошибок API — один source of truth.

На интервью: дублированная validation, которую извлечёте, vs похожий UI layout, который оставите раздельным.

Типовые ошибки: неверная абстракция от преждевременного DRY; свалка shared utils; copy-paste бизнес-правил между сервисами.

Компромисс — поддержка общей истины против гибкости независимых копий.

Чеклист:

  • Дублирование знания vs совпадение.
  • Один раз — стабильные бизнес-правила.
  • Удаляйте плохие абстракции при расхождении needs.