Что такое DRY?
Продвинутые темы
DRY (Don't Repeat Yourself) — это принцип разработки, требующий избегать дублирования: каждая часть знания должна иметь единственное авторитетное представление в коде.
Суть
Повторяющаяся логика выносится в функцию, модуль, константу или компонент. Тогда изменение делается в одном месте, а не копируется по всему коду.
// Нарушение DRY
const priceWithTax1 = price1 * 1.2;
const priceWithTax2 = price2 * 1.2;
// DRY
const withTax = (price) => price * 1.2;Что помогает соблюдать DRY
- Переиспользуемые функции и компоненты.
- Константы вместо «магических» значений.
- Общие утилиты и хуки.
Опасность переусердствовать
Слепое следование DRY ведёт к преждевременным абстракциям и лишней связанности. Иногда два похожих куска кода — на самом деле разные по смыслу и не должны объединяться. Здесь помогает правило WET/«правило трёх»: выносить в абстракцию после третьего повторения.
Связь с другими принципами
DRY дополняет KISS (просто) и YAGNI (не делай лишнего). Баланс важен: DRY ради DRY может нарушить KISS.
Коротко для собеседования
DRY — не повторяйся: каждое знание живёт в одном месте, изменение — в одной точке. Помогает через функции, компоненты, константы. Но переусердствование ведёт к лишним абстракциям — выносят обычно после третьего повторения.