Что такое C4 Model

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

Ответ

C4 Model — это подход к визуализации архитектуры ПО через 4 уровня абстракции:

  1. Контекст (система в рамках внешних взаимодействий)
  2. Контейнеры (приложения, БД, сервисы)
  3. Компоненты (ключевые модули внутри контейнеров)
  4. Код (детали реализации, например, классы/функции)

Пример для Go:

// Уровень 4 (Код) — реализация компонента "UserService"
type UserService struct {
    repo UserRepository
}

func (s *UserService) GetUser(id string) (*User, error) {
    return s.repo.FindByID(id)
}

Плюсы:

  • Простота для разных аудиторий (от бизнеса до разработчиков)
  • Масштабируемость (можно углубляться в детали)
  • Ясность зависимостей

Используется для документирования и проектирования архитектуры.