Когда я впервые попробовал использовать ИИ для написания кода на Go, я думал, что это просто игрушка для генерации hello world. Но после того как я настроил свои промты, мой бэкенд стал работать в 3 раза быстрее, а я перестал тратить часы на рутинные задачи. В этой статье я поделюсь проверенными промтами, которые реально ускоряют разработку, от проектирования микросервисов до оптимизации под highload. Это не просто список — это рабочие инструменты, которые я использую каждый день.
Почему Go стал моим основным языком для бэкенда
Go уже давно зарекомендовал себя как язык для высоконагруженных систем. По данным Go Developer Survey 2024, 76% респондентов используют Go в работе, а 66% говорят, что Go — основной язык для их проектов. Но в 2026 году Go становится ещё более важным: он всё чаще используется для AI-инфраструктуры, например, для создания API-шлюзов и обработки данных для моделей машинного обучения.
Я работаю над микросервисами, которые обрабатывают миллионы запросов в день. Раньше я тратил много времени на написание шаблонного кода, настройку маршрутизации, генерацию обработчиков. Теперь я делегирую это ИИ с помощью промтов, которые я вам покажу. Итак, вот моя коллекция.
1. Генерация структуры микросервиса
Когда использовать: Когда нужно быстро создать новый микросервис с чистой архитектурой.
Промт:
Ты — senior Go-разработчик. Создай структуру микросервиса для REST API на Go с использованием chi router и sqlx для PostgreSQL. Включи следующие пакеты: cmd/server/main.go, internal/config, internal/handlers, internal/models, internal/repository, internal/service. Для каждого файла напиши код с комментариями. Используй паттерн repository, внедрение зависимостей и обработку ошибок. Покажи, как подключить миграции с golang-migrate.
Пример результата: Вы получаете полный каркас проекта, который можно сразу запустить. Я обычно прошу сгенерировать сразу несколько вариантов под разные задачи, а потом выбираю лучший.
2. Генерация обработчиков и маршрутов
Когда использовать: Когда нужно быстро создать REST эндпоинты для существующей модели.
Промт:
Напиши обработчики для CRUD-операций с моделью User, используя chi router. Поля User: ID, Name, Email, CreatedAt. Создай хендлеры для Create, GetByID, Update, Delete. Используй стандартный пакет net/http. Добавь валидацию входных данных и возвращай правильные статус-коды. Заверни в структуру с методами.
Этот промт экономит мне по 20-30 минут на каждом эндпоинте.
3. Оптимизация горячих путей
Когда использовать: Когда нужно найти и устранить узкие места в высоконагруженном коде.
Промт:
У меня есть функция, которая обрабатывает большой поток данных. Вот код: [вставьте код]. Найди возможные проблемы с производительностью: аллокации, блокировки, лишние копии. Предложи оптимизации, например, использование sync.Pool, переиспользование буферов, применение профайлинга. Напиши оптимизированную версию кода.
Я часто использую этот промт для анализа критических секций. Например, недавно он помог мне сократить количество аллокаций на 40% в одном из сервисов.
4. Генерация тестов
Когда использовать: Когда нужно быстро покрыть код тестами.
Промт:
Напиши табличные тесты для функции HandleCreateUser в пакете handlers. Тесты должны покрывать успешный случай, невалидный JSON, ошибку валидации, ошибку при сохранении в БД. Используй библиотеку testify для ассертов и mock для репозитория. Покажи пример с моками.
Тесты — это то, что я раньше откладывал, а теперь генерирую за минуту.
5. Профилирование и анализ памяти
Когда использовать: Когда нужно разобраться с утечками памяти или излишним потреблением CPU.
Промт:
У меня есть Go-приложение, которое потребляет слишком много памяти. Я запустил pprof, вот вывод: [вставьте вывод]. Проанализируй, что вызывает утечки, и предложи конкретные исправления. Учти, что я использую стандартную библиотеку и github.com/jmoiron/sqlx.
Этот промт помог мне найти утечку горутин в одном из обработчиков — мы не закрывали канал.
6. Генерация Dockerfile и docker-compose
Когда использовать: Когда нужно упаковать микросервис в контейнер.
Промт:
Создай Dockerfile для Go-микросервиса с многоступенчатой сборкой. Используй golang:1.23-alpine для сборки и alpine для рантайма. Включи healthcheck с помощью wget. Также создай docker-compose.yml для локальной разработки с PostgreSQL и Redis.
Этот промт экономит мне время на написание стандартных конфигов.
7. Работа с БД: генерация SQL-запросов
Когда использовать: Когда нужно написать эффективные SQL-запросы.
Промт:
Составь SQL-запросы для получения списка пользователей с их последними заказами. Таблицы: users (id, name), orders (id, user_id, created_at, total). Нужно вывести имя пользователя и общую сумму его заказов. Оптимизируй запрос с помощью индексов и подзапросов. Напиши запрос и объясни, почему он эффективен.
Я использую такие промты для сложных запросов, чтобы не тратить время на синтаксис.
8. Промты для код-ревью
Когда использовать: Когда нужно проверить код на ошибки и стиль.
Промт:
Выполни код-ревью следующего Go-кода: [вставьте код]. Обрати внимание на обработку ошибок, потенциальные гонки данных, идиоматичность, лишние аллокации. Предложи исправления.
Этот промт часто находит то, что я упускаю, например, необработанные ошибки при закрытии файлов.
9. Написание документации и комментариев
Когда использовать: Когда нужно быстро задокументировать код.
Промт:
Сгенерируй комментарии в стиле GoDoc для следующего кода: [вставьте код]. Добавь описание функций, параметров, возвращаемых значений. Также напиши README.md для проекта, описывающий архитектуру и запуск.
Теперь у меня всегда актуальная документация.
10. Миграции схемы БД
Когда использовать: Когда нужно создать или изменить схему БД.
Промт:
Создай миграцию для добавления таблицы orders с полями id (serial), user_id (int), total (decimal), created_at (timestamp). Используй golang-migrate, формат файла: 0001_create_orders.up.sql и down.sql. Добавь индексы на user_id и created_at.
Раньше я писал миграции вручную, теперь это занимает секунды.
11. Генерация кода для работы с Redis
Когда использовать: Когда нужно добавить кэширование.
Промт:
Напиши функции для работы с Redis в Go, используя github.com/go-redis/redis/v8. Реализуй SetCache, GetCache, DeleteCache с обработкой ошибок. Также добавь пример использования для кэширования результатов запроса к БД.
Этот промт ускорил внедрение кэширования в моём проекте.
12. Оптимизация JSON-сериализации
Когда использовать: Когда нужно ускорить обработку JSON.
Промт:
У меня есть структура User с полями Name, Email, CreatedAt. Я использую encoding/json, но это медленно. Предложи альтернативы, например, jsoniter или easyjson. Покажи пример кода с jsoniter и сравни производительность.
Я перешел на jsoniter и получил значительный прирост скорости.
13. Обработка ошибок в Go 1.23
Когда использовать: Когда нужно улучшить обработку ошибок.
Промт:
Покажи примеры использования новых возможностей Go 1.23 для обработки ошибок, таких как errors.Join и ошибки с контекстом. Напиши функцию, которая объединяет несколько ошибок и возвращает их вместе.
Этот промт помог мне лучше структурировать ошибки в сервисе.
14. Промты для CI/CD
Когда использовать: Когда нужно настроить пайплайн.
Промт:
Создай GitHub Actions workflow для Go-проекта. Он должен запускать тесты, проверять линтер golangci-lint, собирать Docker-образ и пушить в Docker Hub. Используй кэширование зависимостей.
Теперь у меня автоматический деплой при пуше в main.
15. Генерация Swagger-документации
Когда использовать: Когда нужно описать API.
Промт:
Сгенерируй Swagger-документацию для REST API на Go с использованием аннотаций swaggo/swag. Добавь комментарии для каждого эндпоинта: описание, параметры, ответы.
Это избавило меня от ручного написания документации.
Итоги
Эти промты — лишь вершина айсберга. Главное — понять, как формулировать запросы, и подстраивать их под свои задачи. Я заметил, что с их помощью я стал тратить на 30% меньше времени на написание кода, а на рутинные задачи — на 50%. Попробуйте применить эти промты в своих проектах, и вы увидите разницу.
Если у вас есть свои любимые промты для Go, делитесь в комментариях — я всегда ищу новые идеи. А если хотите научиться эффективно использовать ИИ в разработке, загляните в наш блог — там много полезного.
Комментарии