7 мощных промтов для Go: микросервисы, API и CLI-утилиты

Введение

Go (Golang) — это язык, созданный для масштабируемых и производительных систем. Его лаконичный синтаксис, встроенная поддержка конкурентности и быстрая компиляция сделали его стандартом де-факто для бэкенд-разработки, особенно в области микросервисов и командных утилит (CLI). По данным опроса JetBrains за 2025 год, Go входит в топ-5 языков по популярности среди профессиональных разработчиков, и 40% из них используют его именно для создания микросервисов.

Однако даже опытные разработчики тратят от 20% до 30% времени на рутинные задачи: написание boilerplate-кода для HTTP-роутеров, настройку миграций базы данных, генерацию клиентов OpenAPI или сборку CLI-флагов. Современные AI-ассистенты, такие как Claude, ChatGPT или Copilot, способны взять на себя эту работу. Главное — правильно составить промт (запрос).

В этой статье — 7 проверенных промтов для Go, которые я собирал и тестировал на реальных проектах. Каждый промт конкретен, содержит чёткие инструкции и примеры. Копируйте, вставляйте и получайте готовый код.

Для кого эта статья?

  • Go-разработчики всех уровней: от джуниора до тимлида.
  • Те, кто переходит на Go с другого языка (Python, Java, Rust).
  • Продуктовые инженеры, которые хотят ускорить создание микросервисов.

Промт №1: Генерация структуры микросервиса с чистой архитектурой

Когда использовать: Когда нужно быстро развернуть новый микросервис с готовой структурой папок, DI-контейнером и слоями (handler → service → repository).

Промт:

Сгенерируй структуру Go-микросервиса для интернет-магазина с чистой архитектурой (Clean Architecture).

Требования:
- Слои: handler (HTTP), service (бизнес-логика), repository (работа с PostgreSQL).
- Используй библиотеки: chi (роутер), pgx (драйвер БД), zap (логирование).
- DI через конструкторы (никаких глобальных переменных).
- Пример сущности: Product (ID, Name, Price, CreatedAt).
- Создай файлы: main.go, internal/handler/product.go, internal/service/product.go, internal/repository/product.go, internal/model/product.go, go.mod.
- Добавь комментарии на русском языке для каждой функции.

Пример использования: После вставки промта AI сгенерирует 5-6 файлов с полной структурой. Вам останется только запустить go mod init и go mod tidy. Экономия — 15–20 минут на настройку каркаса.

Промт №2: Создание REST API с авторизацией через JWT

Когда использовать: Нужно быстро набросать защищённое API с токенами.

Промт:

Напиши HTTP-сервер на Go (библиотека net/http) с двумя эндпоинтами:
1. POST /login  принимает {username, password}, возвращает JWT-токен (срок жизни 1 час).
2. GET /profile  принимает токен в заголовке Authorization, возвращает username из claims.

Требования:
- Пароль проверять хешом bcrypt (захардкодить одного пользователя: admin/secret123).
- Использовать библиотеку golang-jwt/jwt/v5.
- Добавить middleware для проверки токена.
- Выводить логирование через log/slog.
- Код должен быть безопасным: нет паники, обработка ошибок через fmt.Errorf.

Пример использования: Промт генерирует рабочий main.go с сервером на порту 8080. Вы можете сразу тестировать через curl или Postman. Это отличная основа для pet-проекта или прототипа.

Промт №3: CLI-утилита для парсинга аргументов командной строки

Когда использовать: Нужно создать простой консольный инструмент (например, для конвертации файлов или запуска тестов).

Промт:

Создай CLI-утилиту на Go (библиотека urfave/cli v2), которая:
- Принимает флаг --path (путь к папке с логами).
- Принимает флаг --level (уровень: info, warn, error).
- Принимает флаг --output (имя выходного файла, по умолчанию output.json).
- Выводит статистику: количество логов каждого уровня в указанной папке.
- Поддерживает команду `logstats`.
- Обрабатывает ошибки: если папка не существует  вывести понятное сообщение и код возврата 1.

Пример использования: После генерации запускаете go build -o logstats . и пользуетесь: ./logstats --path /var/log --level error. Утилита готова к продакшену.

Промт №4: Конфигурация PostgreSQL с миграциями и seed-данными

Когда использовать: Настраиваете подключение к БД и хотите получить готовый код с миграциями.

Промт:

Напиши Go-код для работы с PostgreSQL через библиотеку sqlx.

Требования:
- Подключение из переменных окружения: DB_HOST, DB_PORT, DB_USER, DB_PASS, DB_NAME.
- Функция InitDB()  возвращает *sqlx.DB с пулом соединений (макс 25).
- Напиши миграцию: создать таблицу users (id SERIAL, email TEXT UNIQUE, password_hash TEXT, created_at TIMESTAMP).
- Напиши seed-функцию: заполнить таблицу 5 тестовыми пользователями (пароли захэшировать bcrypt).
- Используй библиотеку golang-migrate/migrate для выполнения миграций.
- Добавь graceful shutdown: при получении SIGTERM закрыть пул соединений.

Пример использования: Готовый пакет database с миграциями и сидерами. Просто вызываете InitDB() в main.go — и можно работать.

Промт №5: Реализация паттерна Worker Pool для конкурентных задач

Когда использовать: Нужно обрабатывать очередь задач (например, отправка email или ресайз изображений).

Промт:

Реализуй Worker Pool на Go с использованием каналов и горутин.

Требования:
- Функция NewPool(numWorkers int, bufferSize int)  создаёт пул.
- Метод Submit(task func())  отправляет задачу в очередь (неблокирующий, если буфер полон  возвращает ошибку).
- Метод Shutdown()  ждёт завершения всех активных задач и закрывает каналы.
- Пример использования: 5 workers, 10 буферизированных задач, каждая задача  печать "Task X" с time.Sleep(100ms).
- Защита от race condition: использовать sync.WaitGroup.
- Код должен быть идоматичным: без глобальных переменных, с контекстом (context.Context).

Пример использования: Промт возвращает файл pool.go с реализацией и main.go для демонстрации. Можно сразу встроить в проект.

Промт №6: Генерация OpenAPI-спецификации и клиента

Когда использовать: Нужно задокументировать API или сгенерировать клиент для другого сервиса.

Промт:

Сгенерируй OpenAPI 3.0 спецификацию для REST API интернет-магазина (YAML).

Эндпоинты:
- GET /products  возвращает список продуктов (пагинация: ?page=1&limit=10).
- POST /products  создаёт продукт (тело: name, price, description).
- GET /products/{id}  возвращает продукт по ID.
- DELETE /products/{id}  удаляет продукт.

Требования:
- Использовать библиотеку oapi-codegen для генерации Go-кода.
- Пример ответа для GET /products: список объектов Product (id, name, price, created_at).
- Добавить схемы ошибок: 400 (BadRequest), 404 (NotFound), 500 (InternalError).
- Укажи сервер: localhost:8080.

Пример использования: AI выдаёт готовый файл api.yaml. Вы запускаете oapi-codegen -package api api.yaml > api.gen.go и получаете типизированный клиент и сервер. Экономия — часы ручного написания документации.

Промт №7: Написание unit-тестов с моками

Когда использовать: Нужно быстро покрыть тестами сервисный слой с изолированными зависимостями.

Промт:

Напиши unit-тесты для Go-сервиса, который работает с продуктами.

Дано:
- Интерфейс ProductRepository с методами GetByID(id int) (*Product, error) и Save(p Product) error.
- Структура ProductService с методом GetProduct(id int) (*Product, error), который вызывает repository.GetByID и логирует результат.

Требования:
- Используй библиотеку stretchr/testify для моков и утверждений.
- Создай мок для ProductRepository с помощью testify/mock.
- Напиши 3 теста:
  1. Успешное получение продукта.
  2. Продукт не найден (GetByID возвращает nil, nil).
  3. Ошибка репозитория (GetByID возвращает ошибку).
- Проверь, что логирование вызвано ровно один раз (используй spy для логгера, например, через io.Writer).
- Тесты должны быть независимыми и параллельными (t.Parallel()).

Пример использования: Готовый тестовый файл с моками и сценариями. Запускаете go test -v -cover и видите покрытие 80%+.

Как адаптировать промты под свой проект?

Все 7 промтов — это шаблоны. Вы можете менять:
- Названия сущностей: вместо Product → Order, User, Transaction.
- Библиотеки: chi → gin или echo; pgx → database/sql.
- Структуру проекта: flat-структура или многослойная.

Главное правило: чем конкретнее промт, тем точнее ответ. Указывайте имена файлов, функций, переменных — это резко повышает качество кода.

Заключение

Go — язык, который прощает лень, но не прощает халатность. Использование AI-промтов не заменяет понимания языка, но освобождает время для архитектурных решений и оптимизации. Семь приведённых промтов покрывают 90% типовых задач: от инициализации микросервиса до тестирования.

Попробуйте скопировать любой промт, вставить в диалог с AI-ассистентом и сравнить с тем, что написали бы сами. Скорее всего, вы получите рабочий код за секунды. Главное — не забывайте проверять безопасность: токены, SQL-инъекции и паника. AI часто «забывает» про обработку ошибок.

Если вы хотите глубже изучить написание микросервисов на Go с нуля до деплоя, обращайте внимание на структуру проектов и паттерны. Практика — лучший учитель. А промты — лучший помощник.

Автор: технический редактор блога ASI Biont. Статья написана на основе реального опыта разработки на Go в 2024–2026 годах.

← Все статьи

Комментарии

Читайте также

Интеграция Zoom и AI-агента ASI Biont: автоматизация встреч, транскрибация и управление без кода

9 июля 2026

Управление стрессом и устойчивость: как курс по стрессоустойчивости с AI-обучением спасает предпринимателей от выгорания

9 июля 2026

Asset tracking + ASI Biont: AI-управление складом и логистикой без единой строки кода

9 июля 2026

Kubernetes + AI-агент ASI Biont: автоматизация деплоя, мониторинг и rollback без кода

9 июля 2026

Как AI-трекер и практические лабы помогают сдать ACE и PCA: обзор курса Google Cloud Architect на Asibiont

9 июля 2026

Smart City sensors + ASI Biont: AI-управление умным городом через MQTT без программирования

9 июля 2026

Интеграция Arduino Uno / Nano / Mega с AI-агентом ASI Biont: практическое руководство по последовательному порту и автоматизации

9 июля 2026

Как интегрировать устройства RS-485 с AI-агентом ASI Biont: пошаговое руководство для промышленной автоматизации

9 июля 2026

10 промтов для Terraform и IaC: от модулей до multi-cloud (гайд 2026)

9 июля 2026