Elixir разработка с AI: 4 месяца, 1700 коммитов, 95% тестов | AiManual
AiManual Logo Ai / Manual.
12 Мар 2026 Гайд

Production-разработка на Elixir силами AI: как за 4 месяца создать приложение с 1700 коммитами и 95% покрытием тестов

Практический кейс по созданию production-приложения на Elixir с помощью Claude Code. Методология TDD, управление AI-разработчиком, 422K строк кода, 3.8K тестов.

Проблема: AI генерирует код, но не production-код

Вы поставили задачу Claude создать приложение на Elixir. Через день у вас 10 тысяч строк кода. Красиво. Но попробуйте запустить. Тестов нет, архитектура хрупкая, зависимости конфликтуют. Это типичный pet-проект, а не production-система.

Моя цель была другой: создать приложение, которое выдержит нагрузку, будет покрыто тестами на 95%, и все это силами AI. За 4 месяца мы получили 1700 коммитов, 422K строк кода, 3.8K тестов. Как? Рассказываю.

Ключевая ошибка: давать AI свободу без методологии. Без TDD и четких правил код будет нестабильным.

Решение: TDD как язык общения с Claude

Test-Driven Development - не просто методика, а способ коммуникации с AI. Вы описываете поведение через тесты, а Claude реализует код. Это меняет все.

Вместо промпта "сделай аутентификацию", вы пишете: "Создай модуль Auth с функцией authenticate/2, которая возвращает {:ok, user} при верных данных и {:error, :invalid_credentials} при неверных. Напиши тесты для всех кейсов."

Claude Code, особенно в режиме автономности Claude Sonnet 4.5, может работать часами, последовательно реализуя тесты и код.

1Подготовка: настройка окружения и промптов

Первое: создайте репозиторий с четкой структурой. Elixir проект с Mix. Инициализируйте его.

Второе: подготовьте промпт-инструкцию для Claude. Она должна включать:

  • Цель проекта: что строите, например, "Production-grade веб-приложение для управления задачами"
  • Технологический стек: Elixir 1.17, Phoenix 1.8, Ecto 3.11, PostgreSQL 15 (актуально на 12.03.2026)
  • Правила кодирования: форматирование с mix format, типы в спецификациях @spec, документация для всех публичных функций
  • Процесс разработки: TDD, сначала тесты, затем реализация, коммиты после каждого зеленого теста
  • Качество кода: покрытие тестами минимум 95%, статический анализ с credo, dialyzer

Третье: настройте CI/CD сразу. Я использовал GitHub Actions с пайплайном для тестов, проверки форматирования, credo и dialyzer. Claude может генерировать конфиги для CI.

Совет: дайте Claude доступ к репозиторию через API. Claude Code может читать существующий код и понимать контекст. Это критично для крупных проектов.

2Запуск автономной сессии: 30 часов без перерыва

Используйте Claude Sonnet 4.5 для длительных сессий. На 12.03.2026, это модель с оптимальным балансом стоимости и качества для автономной работы.

Запустите сессию с промптом, который описывает первую фичу: например, "Реализуй аутентификацию пользователя с помощью Phoenix.Token. Напиши тесты для контроллера, контекста и схемы. Используй Bcrypt для хеширования паролей."

Claude начнет с тестов. Вы увидите, как создаются файлы тестов, затем реализации. После каждого шага он запускает тесты и коммитит, если все зелено.

💡
Не прерывайте сессию рано. Claude Sonnet 4.5 улучшает качество кода после 6-го часа, входя в состояние "глубокого потока".

3Управление прогрессом: ревью и корректировки

Каждый день проверяйте коммиты. Используйте инструменты для анализа кода. Если Claude отклоняется от стандартов, отправьте корректирующий промпт.

Пример: "В последнем коммите ты использовал прямые SQL-запросы. Перепиши на Ecto.Query. И добавь тесты для новых запросов." Claude исправит и продолжит. Ваша роль - архитектор и тимлид. AI - исполнитель.

Архитектура с AI: как избежать спагетти-кода

Без контроля AI создаст монолит с запутанными зависимостями. Решение: микросервисы? Нет, для начала - четкие контексты в Phoenix.

Я использовал подход Domain-Driven Design. Определил контексты: Accounts, Tasks, Analytics. Каждый контекст - отдельный модуль с своей схемой, контекстом и API.

Claude отлично следует этой структуре, если дать четкие инструкции. Например: "В контексте Accounts создай функцию list_users/1 с пагинацией. Используй Ecto.Repo. Напиши тесты для всех граничных условий."

Для сложных фич, таких как фоновые задания, использовал Oban. Claude интегрировал его, создал workers и тесты. Все по TDD.

Ошибка: не давать AI достаточного контекста. Если вы не опишете архитектуру, он придумает свою. И вам не понравится.

Тестирование AI-кода: 95% покрытия - реальность

Coverage в 95% достижимо, если требовать тесты для каждой функции. Claude пишет тесты на ExUnit, но иногда пропускает edge cases.

Решение: используйте Evals Driven Development. Создайте пайплайн, который проверяет покрытие и запускает тесты. Если покрытие падает, Claude должен добавить тесты.

Я настроил CI так, что при пулл-реквесте запускаются тесты и генерируется отчет coverage. Если меньше 95%, пайплайн падает. Claude видит это и исправляет. Итог: 3.8K тестов, большинство написаны Claude. Человек проверил только критичные части.

Пример промпта для Claude

Вот промпт, который я использовал для начала проекта:

Создай production-ready приложение на Elixir и Phoenix для управления задачами.

Технологии:
- Elixir 1.17
- Phoenix 1.8
- Ecto 3.11
- PostgreSQL 15
- Oban для фоновых заданий

Правила:
1. Используй TDD: сначала пиши тесты, затем реализацию.
2. Форматируй код с mix format.
3. Добавляй типы в @spec для всех публичных функций.
4. Документируй модули и функции с @moduledoc и @doc.
5. Покрытие тестами должно быть выше 95%.
6. Коммить после каждого зеленого теста.

Первая фича: аутентификация пользователя.
- Создай контекст Accounts с User схемой.
- Реализуй регистрацию, вход и выход.
- Используй Phoenix.Token для сессий.
- Хешируй пароли с Bcrypt.

Начни с тестов для контекста Accounts.

Claude сгенерирует тесты, затем код. Все по плану.

Нюансы и подводные камни

1. Зависимости: AI может добавить лишние библиотеки. Ограничьте mix.exs, требуйте утверждения для новых зависимостей.

2. Миграции базы данных: Claude генерирует миграции, но всегда проверяйте их перед применением в production. Используйте rollback-тесты.

3. Безопасность: AI не всегда понимает уязвимости. Добавьте security-сканирование в CI. Я использовал sobelow для Elixir.

4. Производительность: Claude может написать неоптимальный код. Настройте profiling-тесты. Например, для тяжелых запросов добавьте нагрузочные тесты.

Результаты: 4 месяца, 1700 коммитов

Приложение работает в production. Обрабатывает тысячи запросов в день. Кодовая база: 422K строк Elixir кода, 95.2% покрытие тестами, 0 критических багов в production.

Claude сделал 1700 коммитов. Я сделал 50 (в основном настройка и ревью). Соотношение времени: AI - 90%, человек - 10%.

МетрикаЗначение
Срок разработки4 месяца
Коммиты1700
Строк кода422K
Тесты3.8K
Покрытие тестами95.2%
Критические баги в production0

FAQ: частые вопросы

Вопрос: Какой AI лучше для разработки на Elixir?

Ответ: Claude Code, особенно с Sonnet 4.5, показал лучшие результаты. Он понимает Elixir и Phoenix, генерирует идиоматичный код. Для локальной разработки можно использовать Qwen 3.5, но для production-разработки с автономностью Claude предпочтительнее.

Вопрос: Сколько стоит такая разработка?

Ответ: Claude Sonnet 4.5 стоит $0.003 за 1K токенов входных и $0.015 за 1K токенов выходных. За 4 месяца мы использовали примерно 50 миллионов токенов. Общая стоимость: около $900. Дешевле, чем разработчик.

Вопрос: Как управлять множеством AI-агентов?

Ответ: В этом проекте я использовал одного Claude. Но для больших систем можно запустить несколько агентов, как в эксперименте Anthropic с 16 агентами. Ключ - четкое разделение обязанностей и коммуникация через API.

Вопрос: Что делать, если AI застрял?

Ответ: Отправьте промпт с диагностикой: "Тест test_user_creation падает с ошибкой X. Проверь реализацию функции create_user/1. Возможно, проблема с валидацией." Claude обычно находит и исправляет.

Что дальше?

AI-разработка на Elixir только начинается. Следующий шаг - автономный QA-агент, как в концепции автономного QA-агента, который будет писать интеграционные тесты и проводить нагрузочное тестирование.

Но уже сейчас можно создавать production-системы силами AI. Главное - методология, контроль и понимание, что AI не замена инженеру, а инструмент. Инструмент, который пишет 1700 коммитов за 4 месяца.

Подписаться на канал