Что такое DRY

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

Ответ

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

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

func calculateArea(width, height int) int {
    return width * height
}

func calculatePerimeter(width, height int) int {
    return 2 * (width + height)
}

Пример с применением DRY:

type Rectangle struct {
    Width  int
    Height int
}

func (r Rectangle) Area() int {
    return r.Width * r.Height
}

func (r Rectangle) Perimeter() int {
    return 2 * (r.Width + r.Height)
}

Преимущества:

  • Уменьшение дублирования
  • Упрощение тестирования
  • Лёгкость рефакторинга

Но важно не переусердствовать — избыточная абстракция может усложнить код.

Видео-ответы