# Go ## Признаки платформы - `go.mod` - `go.sum` - `main.go` - `cmd/`, `internal/`, `pkg/` каталоги ## Признаки многомодульного проекта - `go.work` (рабочая область) - Несколько `go.mod` файлов - `cmd/*/main.go` (несколько исполняемых файлов) ## Источники перед созданием навыка - `go.mod` (зависимости) - `Makefile` (команды сборки) - `config/*.yaml` или `*.toml` ## Что искать в кодовой базе ### Корневые каталоги исходников - `cmd/`, `internal/`, `pkg/` ### Типовые слои и каталоги: зафиксируй найденные `handler/`, `service/`, `repository/`, `model/`, `middleware/`, `config/`, `util/` ### Признаки шаблонов | Шаблон | Критерии обнаружения | Имя навыка | |---------|-------------------|------------| | HTTP Handler | `http.Handler`, `http.HandlerFunc`, `gin.Context` | http-handler | | Gin Route | `gin.Engine`, `r.GET(`, `r.POST(` | gin-route | | Echo Route | `echo.Echo`, `e.GET(`, `e.POST(` | echo-route | | Fiber Route | `fiber.App`, `app.Get(`, `app.Post(` | fiber-route | | gRPC Service | `*.proto`, `pb.*Server` | grpc-service | | Repository | `type *Repository interface`, `*Repository` | data-repository | | Service | `type *Service interface`, `*Service` | service-layer | | GORM Model | `gorm.Model`, `*gorm.DB` | gorm-model | | sqlx | `sqlx.DB`, `sqlx.NamedExec` | sqlx-usage | | Migration | `goose`, `golang-migrate` | db-migration | | Middleware | `func(*Context)`, `middleware.*` | go-middleware | | Worker | `go func()`, `sync.WaitGroup`, `errgroup` | worker-goroutine | | Config | `viper`, `envconfig`, `cleanenv` | config-loader | | Unit Test | `*_test.go`, `func Test*(t *testing.T)` | go-test | | Mock | `mockgen`, `*_mock.go` | go-mock | ## Обязательные разделы результата Добавь, если найдено: - **Обработчики HTTP**: конечные точки API - **Сервисы**: бизнес-логика - **Репозитории**: доступ к данным - **Модели**: структуры данных - **Промежуточные обработчики**: перехватчики запросов - **Миграции**: миграции базы данных ## Откуда брать команды - `Makefile` цели сборки - README, документация и CI - Обычные команды: `go build`, `go test`, `go run` - Добавляй только команды, которые есть в репозитории ## Основные пути - `cmd/`, `internal/`, `pkg/` - `api/`, `handler/` - `migrations/` - `config/`