Записки вайбкодера
Всем привет. Я фронтенд-разработчик, в IT уже около 7 лет. И я хотел бы рассказать историю как я случайно начал делать свое приложение.
Однажды во время планирования наш техлид предложил попробовать новый сервис для оценки задач. Всё было довольно просто: участники заходили в комнату, выбирали карту с оценкой, а после голосования результаты открывались одновременно для всех. Такой формат обычно называют Planning Poker.
Первый спринт мы запланировали без проблем. А перед вторым сервис показал сообщение о том, что пробный период закончился и пора платить. Мы вернулись к планированию в Jira. Похожая возможность там есть, но пользоваться ей оказалось больно. Оно не показывало кто какие оценки ставил, работало медленно и приходилось обновлять страницу чтобы увидеть результаты.
Тогда я подумал: почему бы не сделать своё приложение для голосования с блек-джеком и... без перезагрузок?
На тот момент у меня уже был недорогой PHP-хостинг, где лежало моё старое, никому не нужное, портфолио. Его было не жалко удалить для нового проекта, но я его не удалил. Просто создал отдельную папку для нового проекта.
С бэкендом у меня было мало опыта. Я в основном занимался интерфейсами, а серверы, базы данных, окружение и прочие вещи были какой то магией, что-то на бекендовском. Писать всё самому значило потратить кучу времени на изучение, и зная себя, всё бы загнулось даже не начавшись, поэтому я решил использовать ИИ для написания магии.
Сначала я попробовал бесплатный Qwen. Подробно описал, что хочу получить, выбрал стек PHP, MySQL и React (напиши в комментариях что лучше: React или Vue) и отправил задачу в работу. Qwen долго пыхтел, написал огромную документацию как бы он это сделал, пару раз отвалилися, но через некоторое время написал, что всё готово и работает.
Но оно не работало.
Я сказал ему, что оно не работает. Он сказал что знает в чем проблема и исправит это. Через некоторое время он написал, что исправил и теперь точно работает.
Но оно не работало.
Я попытался разобраться в сгенерированном коде сам, но свободного времени было немного, а знаний в бекенде не было совсем.
Я сказал Qwen'у, что вернусь позже и мы обязательно разберёмся.
Я не вернулся.
Через несколько недель на очередном созвоне техлид снова поднял тему планирования задач и предложил кому-нибудь "навайбкодить" (написать с помощью ИИ) свое решение для команды. Тут я вспомнил про свой "полностью рабочий" проект и сказал, что уже есть какие-то наработки.
На этот раз я решил использовать Codex от OpenAI (не реклама). Я уже использовал его для рабочих задач, поэтому решил попробовать и здесь. Он помог найти, почему приложение не запускается, где сломались маршруты и почему часть запросов не отвечает. Через несколько часов удалось получить первую рабочую версию.
Приложение открывалось, создавало комнаты и даже показывало какую-то статистику. Но оно работало локально.
Следующей задачей было выложить всё это на хостинг.
ИИ написал скрипт сборки. Скрипт что-то делал, на экране быстро бежали строки, ошибок не было. Этого было достаточно, чтобы я поверил в успех.
Как вы уже поняли, ничего не заработало.
А кто будет настраивать базу данных, переменные окружения, авторизацию? ИИ сказал, что он это делать не будет. Но он не знал с кем связался. "Написать код приложения - это только половина работы" хотел сказать я ему, но токены уже кончались. Моё старое портфолио вообще работало без собственного бэкенда через Firebase, поэтому самостоятельно настроить всё это я тогда не мог.
Я делал скриншоты ошибок, отправлял их в чат, объяснял, что происходит, а ИИ шаг за шагом подсказывал, что проверять дальше. В итоге удалось настроить базу данных, заполнить конфигурацию, подключить вход через Google и довести приложение до состояния, когда им уже могли пользоваться реальные люди.
"Лучше сделать хреново, чем не сделать совсем" подумал я и скинул ссылку ребятам из команды. Да, первая версия была далека от идеала. Интерфейс выглядел ужасно, пользователи наезжали друг на друга, стол был маленький, да и бекенд работал не очень хорошо. Ребята говорили, что иногда им показывались комнаты, которые они не создавали. Но это не помешало нашей команде провести первое полноценное планирование в новом приложении.
Следующие пару недель ушли на доработки. Я (на самом деле Codex) улучшал интерфейс, исправлял ошибки, добавил несколько фич: добавление задач и голосование по ним, статистику, историю голосований и постепенно приводил проект в порядок. Часть дизайна придумал ИИ, остальное продумывал я. Некоторые решения брал у других похожих проектов.
Результат окончательного варианта на PHP можно увидеть на скриншоте ниже.





Всё работало неплохо, но меня не устраивало что мой хостинг не поддерживал веб-сокеты.
Сейчас, чтобы участники видели изменения в комнате, приложение каждые несколько секунд опрашивало сервер и проверяло, не произошло ли чего-нибудь нового. Работало это скорее на энтузиазме, чем на технологиях.
Именно тогда я впервые задумался о покупке нормального сервера и о том, что проект, возможно, стоит развивать дальше не только для своей команды.
Тогда я ещё не знал, что написать приложение окажется самой простой частью этой истории.
Пост получился длинный, поэтому разделю на несколько частей.













