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.