Что за папка cmd в проекте

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

Ответ

Папка cmd в Go-проекте обычно содержит исполняемые приложения (main-пакеты). Каждая подпапка внутри cmd — отдельное приложение с собственным main.go.

Пример структуры:

project/
  cmd/
    api/
      main.go    # HTTP-сервер
    cli/
      main.go    # Консольный клиент
  internal/
    ...          # Общий код для приложений

Зачем так делать:

  1. Четкое разделение точек входа
  2. Возможность сборки отдельных бинарников
  3. Стандартная практика в Go-сообществе

Внутри cmd обычно только минимальный код для инициализации, основная логика выносится в internal или pkg.