Ответ
Папка cmd в Go-проекте обычно содержит исполняемые приложения (main-пакеты). Каждая подпапка внутри cmd — отдельное приложение с собственным main.go.
Пример структуры:
project/
cmd/
api/
main.go # HTTP-сервер
cli/
main.go # Консольный клиент
internal/
... # Общий код для приложений
Зачем так делать:
- Четкое разделение точек входа
- Возможность сборки отдельных бинарников
- Стандартная практика в Go-сообществе
Внутри cmd обычно только минимальный код для инициализации, основная логика выносится в internal или pkg.