Что такое принцип DRY в разработке?

«Что такое принцип DRY в разработке?» — вопрос из категории Паттерны, который задают на 23% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

DRY (Don’t Repeat Yourself) — принцип разработки программного обеспечения, направленный на минимизацию дублирования логики и знаний в системе. Каждая часть знания должна иметь единственное, однозначное и авторитетное представление в рамках системы.

Цель:

  • Упрощение поддержки и модификации кода.
  • Снижение вероятности ошибок из-за рассинхронизации копий.
  • Повышение читаемости и переиспользования кода.

Пример нарушения DRY (Swift):

// Дублирование формулы расчета площади круга
func calculateAreaForCircleA(radius: Double) -> Double {
    return Double.pi * radius * radius
}

func calculateAreaForCircleB(radius: Double) -> Double {
    return 3.14159 * radius * radius // Разная константа!
}

Пример соблюдения DRY:

// Знание о расчете площади инкапсулировано в одном месте
struct Circle {
    let radius: Double
    private static let pi = Double.pi

    func area() -> Double {
        return Circle.pi * radius * radius
    }
}

// Использование
let circle = Circle(radius: 5.0)
let area = circle.area()

Почему это важно? Если потребуется изменить формулу или константу, правка вносится только в одном месте — в методе area() структуры Circle.