Ответ
DRY (Don't Repeat Yourself) — принцип разработки, при котором каждая часть знания или логики должна иметь единственное представление в системе.
Пример нарушения DRY:
fun calculateTotal(price: Double, quantity: Int): Double {
return price * quantity * 1.2 // Налог 20% дублируется в других методах
}
Исправленный вариант:
private const val TAX_RATE = 1.2
fun calculateTotal(price: Double, quantity: Int): Double {
return price * quantity * TAX_RATE
}
Плюсы:
- Уменьшает ошибки
- Упрощает поддержку
- Уменьшает дублирование кода
Минусы:
Избыточная абстракция может усложнить код.
Ответ 18+ 🔞
Слушай, есть такая штука в программировании — DRY, что расшифровывается как «Don't Repeat Yourself». По-нашему — «не повторяйся, ёпта». Суть проще пареной репы: любая логика или знание в твоём коде должна жить в одном-единственном месте. Один раз написал, один раз поправил — и везде работает. А то бывает, как будто на дворе 2002-й год, и ты копируешь один и тот же кусок по всему проекту.
Вот смотри, как бывает, когда принцип нарушают:
fun calculateTotal(price: Double, quantity: Int): Double {
return price * quantity * 1.2 // Налог 20% дублируется в других методах
}
Видишь эту магическую цифру 1.2? Это коэффициент налога. И представь, этот самый 1.2 торчит, как хуй с горы, в двадцати разных функциях по всему коду. А потом приходит налоговый инспектор и говорит: «А налог теперь 22%, дружок». И ты, сам от себя охуев, начинаешь бегать по всем файлам, искать эти цифры, а одну всё равно забудешь. И потом на проде будет вам хиросима и нигерсраки — заказы считаются неправильно. Волнение ебать!
А вот как надо, по-человечески:
private const val TAX_RATE = 1.2
fun calculateTotal(price: Double, quantity: Int): Double {
return price * quantity * TAX_RATE
}
Вот! Вынес константу. Теперь налог живёт в одном месте, с красивым именем TAX_RATE. Захотел поменять на 1.22 — ткнул в одну строку, и всё автоматически везде обновилось. Удивление пиздец, как же сразу жить стало проще.
Плюсы этого подхода — овердохуища:
- Ошибок меньше. Не накосячишь, забыв поправить копию в другом файле.
- Поддерживать легче. Всё в одном месте, э бошка думай только об одной точке изменения.
- Кода меньше. Никакого дублирования, система чище.
Но есть и минус, чувак, будь осторожен. Можно так увлечься борьбой с повторениями, что начнёшь создавать хитрые жопы — сверхабстракции на ровном месте. Выносишь каждую строчку в отдельный сервис, плодишь интерфейсы ради интерфейсов. Получается не DRY, а какая-то пиздопроебибна архитектура, в которой разобраться сложнее, чем в оригинальном дублированном коде. Доверия ебать ноль к такому рефакторингу. Главное — чувствовать меру, а не фанатично выносить каждую запятую.