Что такое Use Cases

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

Ответ

Use Cases в Go — это сценарии использования приложения, описывающие бизнес-логику без привязки к инфраструктуре (БД, HTTP и т.д.). Они инкапсулируют правила домена и часто реализуются как методы структур, зависящие от интерфейсов (портов), а не конкретных реализаций (адаптеров).

Пример:

type UserRepository interface {
    Save(user User) error
}

type RegisterUser struct {
    repo UserRepository
}

func (uc *RegisterUser) Execute(name, email string) error {
    if !strings.Contains(email, "@") {
        return errors.New("invalid email")
    }
    return uc.repo.Save(User{Name: name, Email: email})
}

Ключевые преимущества:

  • Чистая архитектура (разделение слоёв)
  • Лёгкое тестирование (можно мокать зависимости)
  • Гибкость (подмена реализаций)