Новичку не нужно погружаться в сложную архитектуру, достаточно
разделить код по слоям, чтобы проект оставался читаемым.
Базовая структура проекта/cmd/app/ # Точка входа в приложение (main.go)
/internal//api/ # HTTP-хендлеры, роутинг
/service/ # Бизнес-логика
/repository/ # Доступ к БД, внешним сервисам
/model/ # Общие структуры данных (DTO, сущности)
/config/ # Конфигурация приложения
Как это работает- api — только про HTTP (или gRPC). Здесь нет логики, кроме вызова сервисов.
- service — сердце приложения, где описана бизнес-логика.
- repository — слой для хранения и извлечения данных. Может быть Postgres, Redis или даже in-memory map.
- model — общие структуры, которые используют все слои.
- config — настройки приложения из переменных окружения.