Ответ
DRY (Don't Repeat Yourself — «Не повторяйся») — это фундаментальный принцип разработки, направленный на минимизацию дублирования логики и знаний в системе. Его цель — обеспечить, чтобы каждая часть знания (алгоритм, конфигурация, бизнес-правило) имела единственное, однозначное и авторитетное представление в кодовой базе.
Почему это важно:
- Упрощение поддержки: Изменения вносятся в одном месте.
- Снижение ошибок: Устраняется риск рассинхронизации копий логики.
- Повышение читаемости: Код становится более структурированным.
Пример нарушения DRY:
// Дублирование логики форматирования в двух методах
public void printUserInfo(User user) {
System.out.println("Name: " + user.getName());
System.out.println("Age: " + user.getAge());
}
public void logUserInfo(User user) {
logger.info("Name: " + user.getName());
logger.info("Age: " + user.getAge());
}
Исправление по принципу DRY:
// Логика форматирования вынесена в единственный метод
private String formatUserInfo(User user) {
return String.format("Name: %s, Age: %d", user.getName(), user.getAge());
}
public void printUserInfo(User user) {
System.out.println(formatUserInfo(user));
}
public void logUserInfo(User user) {
logger.info(formatUserInfo(user));
}
Смежный принцип: KISS (Keep It Simple, Stupid) — призывает к простоте дизайна. Иногда избыточное устранение дублирования может усложнить архитектуру, поэтому важно соблюдать баланс между DRY и KISS.