SYSTEM ATLASЗагрузка материала

DRY

Don’t Repeat Yourself

Каждое знание должно иметь одно авторитетное представление.

Простыми словами

Принцип, согласно которому одно правило или знание не должно поддерживаться вручную в нескольких независимых местах. Речь не о запрете любого похожего кода, а о дублировании одного источника истины. Например, если ставка налога записана отдельно в трёх сервисах, её изменение легко сделать непоследовательно — это нарушение DRY на уровне знания. Поэтому принцип используют как проверочный вопрос при изменении кода - иначе небольшая новая функция начинает требовать правок во множестве несвязанных мест.

Механизм действия

Сначала проверяют, есть ли исходное условие из определения. Затем смотрят, как оно влияет на структуру компонентов, потоки данных, ограничения и действия участников. Если эту связь не удаётся наблюдать, принцип не стоит использовать как готовое объяснение.

Пример в работе

Нерабочий подход

Решение принимают без учета механизма «DRY», оценивая только ближайший эффект.

Системный подход

Перед изменением проверяют, как «DRY» влияет на ограничения, стимулы, зависимости и вторичные последствия.

Ограничения

«DRY» объясняет только часть происходящего в области «Архитектура ПО». Сам принцип не говорит, насколько сильным будет эффект в вашем случае, и не заменяет измерения. При другом масштабе, среде или временном горизонте результат может отличаться.

Источник

David Thomas; Andrew Hunt. The Pragmatic Programmer (1999; 2019).

Первоисточник