וואלהלפחות 16 בני אדם נהרגו בפיצוץ מכונית תופת בפקיסטןInquirerCatholic bishops hope Mindanao moves forward together after BARMM pollsRTP DesportoLiga das Nações. Jesus anuncia primeira lista de convocados à frente da seleçãoThe Jerusalem PostThousands of Christians rally for Israel in Amsterdam as anti-Zionist protesters clash with policeBollywood HungamaIIFA 2027 set for January 22-23 in Abu Dhabi; Karan Johar and Varun Dhawan to hostDaily MaverickThe Monday Cane — performative justice that prioritises retribution over protectionESPNAnthony Edwards calls out Sixers' James, Brown and more in Adidas adLa PresseTokyo | Des poubelles robotisées mobiles à la rescousse d’une gareOnetEric Zemmour znów chce walczyć o Pałac Elizejski. Le Pen zyskuje rywala na prawicyWirtualna PolskaZełenski: będziemy z Polską partnerami w koalicji antybalistycznejNOSJan G. uit Overasselt aangehouden in Duitsland voor drugssmokkel7sur7Stéphane Plaza condamné en appel à 18 mois de prison avec sursis pour violences conjugales
The Daily Newsstand · Free, Always
Friday, September 18, 2026

Завайбкодили за два вечера, доводили полгода: что отделяет ИИ‑прототип от production

Translate

С виду даже самый простой проект, который можно «запромптить» в пару подходов, содержит десятки подводных камней, из‑за которых его нельзя назвать production‑ready. В этой статье я расскажу, с какими проблемами столкнулась моя команда при разработке сервиса «Запомни это» (ankigo.ru) с помощью нейросетей, почему «два вечера» превратились в полгода и как мы закрывали пробелы, которые ИИ закрыть не смог.

Как легко недооценить проект

Многие знакомы с методом интервальных повторений и Anki‑карточками (хороший разбор есть здесь). Я сам адепт подхода: готовлюсь с карточками к собеседованиям и учу английский.

Но удобной площадки для этого мне не хватало: официальное приложение для iOS платное, веб‑версия аскетична, а часть зарубежных аналогов открывается только через VPN. Решение казалось очевидным: мы крутые скилловые инженеры, что нам стоит написать CRUD для карточек и один эндпоинт для режима изучения? Тем более в век ИИ.

Стек выбрали быстро:

  • бэкенд: Django + DRF;

  • фронтенд: Vue + TypeScript;

  • мобильное приложение: сборка через Capacitor.

Срок обозначили в два вечера под пивко.

Ожидание и реальность

Спойлер: разработка заняла почти полгода. Ядро проекта (карточки, колоды, алгоритм повторений, авторизация) нейросеть действительно помогла собрать примерно за два месяца. Но между «ядро работает» и «продукт можно показывать людям» лежит пропасть, и именно в ней прошли оставшиеся четыре месяца.

Ниже разберу три проблемы, которых не ждёшь, когда решаешь «быстро завайбкодить проект».

Проблема 1. Дизайн после нейронки

Первое, что бросается в глаза, это дизайн. Нейросеть оставляет типовую «базовую» вёрстку, которую узнаёт любой, кто хоть раз открывал сгенерированный лендинг. А промптом «добавь маскота дельфина» можно не то что рассмешить, а по‑настоящему испугать новых пользователей.

Отдельного дизайнера в команде нет, но и оставлять нейрослоп (тем более с таким маскотом) не хотелось. Мы выбрали гибридный подход:

  1. Взяли за референс интерфейс Duolingo через Refero, где можно получить design.md с описанием паттернов популярных продуктов.

  2. Вручную подобрали цветовую гамму под наш проект и скормили её нейросети вместе с референсом.

  3. Для маскота сгенерировали стикерпак для Telegram (ссылочка на пак) и разложили разные эмоции дельфина по страницам. Получилось достаточно живо.

Главная страница AnkiGO после редизайна: референс Duolingo, своя палитра и дельфин из стикерпака

Главная страница AnkiGO после редизайна: референс Duolingo, своя палитра и дельфин из стикерпака

Проблема 2. SEO о котором нейросеть не думает.

Когда дизайн был готов, всплыла новая проблема: естественного трафика нет. Нейросеть концентрируется на коде и лучших практиках разработки, но не на том, как сайт будет индексироваться поисковиками и какой текст на нём будет размещён. У нас был SPA на Vue, на котором поисковику по сути нечего было индексировать.

Первым делом пришлось ответить на вопрос: какой контент вообще может быть полезен для индексации? Ответили так:

— завели блог, в котором ведём новости и описываем доработки: это регулярно обновляемые страницы с живым текстом;

— сделали колоды карточек публичными и добавили к ним релевантные описания: каждая колода стала отдельной индексируемой страницей.

Как итог нейросеть упустила страницы которые реально ценны для SEO индексации, оставив только лендинг.

Проблема 3. Логи и отслеживание инцидентов

Самой острой проблемой стала отладка багов и инцидентов на проде. Несмотря на лучшие практики, которые уже зашиты в Claude и в популярных наборах скиллов (например, superpowers), нейросеть так и не догадалась добавить структурированное логирование и тем более не задумалась о том, как логи собирать и анализировать.

Более того, когда я напрямую попросил решить вопрос со сбором логов, нейросеть не учла, как приложение деплоится, и предложила писать в файл. Решение имеет право на жизнь, но приложение крутится в Docker, а в контейнерах собирать логи из stdout сильно предпочтительнее, чем из файлов: не нужно монтировать тома, следить за ротацией и терять логи при пересоздании контейнера.

В итоге пайплайн собрали руками:

Django (JSON-логи в stdout)
        │
        ▼
Docker json-file log driver
        │
        ▼
Vector (парсинг JSON, обогащение полями сервиса и пользователя)
        │
        ▼
VictoriaLogs (хранение и полнотекстовый поиск)
        │
        ▼
Grafana (дашборды и алерты)

А вот дашборд в Grafana, который мы используем для анализа событий:

Дашборд событий AnkiGO в Grafana: общее число событий, распределение по типам, временной ряд и топ пользователей

Дашборд событий AnkiGO в Grafana: общее число событий, распределение по типам, временной ряд и топ пользователей

На практике, особенно полезным оказлось использование экспорта логов в csv (JavaScript обработчик настроенный на кнопку с помощью плагина Buisness Text) и спецфильтр по всем полям. Прикладываю json, на случай если пригодиться.

Выводы о «нейромагии»

На практике нейросеть действительно ускоряет разработку и помогает быстрее разобраться в незнакомых областях. Но без знаний и опыта невозможно сделать решение, которое гарантирует пользователям бесперебойную работу и удобный интерфейс.

Что мы вынесли из полугода работы:

  1. Ядро проекта нейросеть пишет быстро, обвязку не пишет вообще. Дизайн, SEO, логирование, мониторинг остаются на человеке, потому что их нет в промпте «сделай сервис».

  2. ИИ решает задачу так, как её сформулировали. Не сказали про Docker, получили логи в файл. Не сказали про поисковики, получили сайт без индексируемого контента.

  3. Технический кругозор определяет результат. Нейросеть не знает, чего вы не знаете. Чем шире опыт команды, тем больше «неочевидных» требований попадёт в задачу до запуска, а не после.

Контроль над тем, что есть и что должно быть, пока остаётся за человеком. И от того, насколько широк ваш технический кругозор, зависит, какое приложение вы получите в результате.

Если у вас есть свой опыт доведения «завайбкоженного» проекта до прода, делитесь в комментариях: интересно, какие грабли я не упомянул.

View the original on Хабр

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.

Завайбкодили за два вечера, доводили полгода: что отделяет ИИ‑прототип от production — KioskNews