Привет! Я не буду подробно углубляться здесь в то, что это за бот в заголовке; в конце концов, вы сюда наверняка пришли из моего Telegram-поста, где описано подробнее. В двух словах: я написал небольшого телеграм-бота для отслеживания настроения с сохранением и просмотром истории этих самых настроений для последующего self-анализа.

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

Усталось от кода

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

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

  • Обязательно возьми нормальную базу данных, жалко, что ли?

  • А раз БД, то и миграции сделай.

  • Ой, раз ты планируешь этим с кем-то делиться, тогда надо хотя бы аналитику собирать, чтобы понимать, кто твои юзеры.

  • Не забудь логировать ошибки и куда-нибудь складывать!

  • Погоди, как это без выбора языка? А вдруг какой-нибудь немец или китаец заинтересуется?

  • Ага, а мультиязычность предполагает, что ты все строки вынесешь в отдельные файлы.

  • Может быть, всё-таки в Docker упакуешь? Или попробуешь Podman?

  • И про бэкапы не забудь!

  • и т.д.

И вот как-то так получается, что простая проблема из «хуяк-хуяк и в продакшн» превращается в «делаем SaaS на 2M DAU с выходом на IPO в четверг после обеда», по крайней мере, в голове. Чаще всего после таких мыслей я забиваю на этого телеграм-бота и иду во что-то играть, чтобы справиться в тревогой. В какой-то момент я даже решил, что лучше сделать бота для отслеживания своего настроения и потом анализировать и рефлексировать, что так, что не так, и куда двигаться дальше. И я всерьёз нацелился такую штуку написать! Казалось бы, ну накидай пару обработчиков и… ну, вы поняли.

Но погодите, в прошлый раз же я сделал 3-в-ряд вайбкодингом, получилось успешно, мне самому нравится. Значит, нужно повторить.

Чтобы сделать @ShadesOfMoodBot, мне потребовалось две попытки.

Первая попытка

Я решил начать сразу с Google AI Studio, потому что в прошлый раз именно она мне дала полностью рабочий вариант. Описал проблему и отдельно уточнил главную проблему:

Моя главная проблема – я боюсь сложности. То есть, я понимаю, что надо сделать ОЧЕНЬ МНОГО, это меня “тормозит” и в итоге я не делаю ничего и забрасываю проект на полпути. Надо как-то выделить маленький кусочек, сделать MVP, но так, чтобы его можно было расширять в будущем.

В ответ получил неплохие советы по архитектуре, коду и по моему комментарию о сложности:

Звучит очень здраво. Воодушевлённый, я попросил сгенерировать промт для Cursor, далее полученный текст загнал в эту IDE и получил маленький MVP. На радостях я даже написал в чат с ИИ:

Я в шоке. Твоя сестра Gemini 3 Pro в Cursor сделала мне MVP! Даже с запуском в Docker и полноценной базой с SQLAlchemy и Alembic.

Ну правда же круто!

Далее я помучал Cursor ещё несколькими запросами, запустил первую версию и был доволен как слон. Однако я не учёл, что Курсор очень любит на больших запросах автоматически переключаться в режим MAX (нет, не в режим говномессенджера) и жрать запросы как не в себя. А их всего 500 на месяц и вообще это корпоративная подписка 🌚…

Испугавшись, что я так лишу себя рабочего инструмента, я перестал вайбкодить и продолжил писать фичи руками. Но это быстро надоело, потому что (см. начало текста).

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

Вторая попытка

В начале февраля я всерьёз задумался над тем, чтобы купить себе какую-нибудь персональную подписку на LLM и не беспокоиться за корпоративные лимиты. У «Большой Тройки» (OpenAI→ChatGPT, Google→Gemini и Anthropic→Claude Code) тариф одинаковый: $20 за базовую платную версию, $200 за максимальную. На две сотни баксов в месяц я не был готов раскошелиться, но $20 звучало вполне разумно. Решил провести небольшой опрос среди тех, кто активно пользуется нейронками и является при этом программистом с большим стажем, от просто сеньоров до CTO. Ответы получились примерно следующими (далее пересказ):

  • Возьми копайлот за $10

  • Копайлот говно, возьми ChatGPT Codex

  • $20 тебе ни на что не хватит, так, один-два небольших бага починить

  • Все берут за $200 уже давно

  • Claude Code в CLI версии

  • $100 Claude Code + $20 Codex

  • Да просто в OpenRouter закинь денег и попробуй всё

  • Попробуй Windsurf, у них $15, юзаю для пет-проектов, мне хватает

Отбрасывая совершенно неприемлемые для меня варианты ($100/$200), я обратил внимание на первый и на последний пункт. $15 за Windsuft + $10 за Copilot = $25, получаем два сервиса, которые по стоимости примерно как один ChatGPT/Claude. Таки выгода! Плюс у Copilot есть одно солидное преимущество – он плотно интегрирован с GitHub, а у меня все проекты именно там и хостятся.

Вот что предлагают Windsurf и Copilot:

Windsurf:

Copilot:

Всё просто и понятно: есть заранее известный лимит по количеству запросов на месяц, далее сам регулируешь, когда и сколько использовать. Хочешь засесть за код на целый выходной и сжечь половину лимита? Пожалуйста. Хочешь разбить месяц на небольшие спринты по ~150 запросов? Запросто! Сравните это с тем, как расплывчато описано у OpenAI и Anthropic (простите за корявый скрин, можете пройти по ссылкам выше на оригиналы страниц):

Выглядит непрозрачно, особенно в сравнении, не находите?

При дальнейшем рассмотрении выяснилось, что первый платный тариф у GitHub предполагает не только $10/mo, но и $100/yr, а это $8.3/mo. Итого получается $23.3 за связку Windsurf+Copilot. Таки ещё бóльшая выгода! Бонусом у Windsurf есть готовый плагин для PyCharm, чего нет ни у Claude Code, ни у ChatGPT.

Для начала я решил попрактиковаться на каком-нибудь простеньком проекте, для чего пошёл на GitHub, нажал на кнопку New Repository, заполнил название и проставил все нужные галки, после чего внезапно увидел новый пункт:

Опачки! Т.е. эта штукенция может решать проблему «чистого листа», когда перед тобой пустой репозиторий и не знаешь, с чего начать? Я задал промт, нажал Create Repository и ушёл пить чай, а когда вернулся к Pull Request-у на 1200 строк, причём в целом это уже была почти полностью рабочая первая версия! Более того, Copilot явно подглядывал в мои другие репозитории, потому что некоторые места в коде написаны явно в моём стиле.

Правки вносить тоже удобно: делаешь ревью пулл-реквеста, выбираешь в итоге “Request Changes” вместо “Approve” и Copilot автоматически подключается с исправлениями.

В итоге на ближайшие несколько дней моя разработка бота превратилась в увлекательное приключение, где я выступал в роли менеджера, создавая issue для Копилота:

(простите за обилие ███ и █████; так надо, потому что ███████)

А Copilot в ответ на это создавал PR, который далее оставалось либо немного поревьюить, либо сразу смёржить, потому что всё сделано как надо. «Как надо», потому что можно выбрать для задачи одну из нескольких моделей на выбор. Для сложных фич я выбирал Opus 4.6 (3 единицы за запрос), а для чего-то простого или для код-ревью – GPT-5.2-Codex за ценой в 1 единицу.

К слову, Копилота можно позвать ещё и на ревью. Я сделал Pull Request с Политикой конфиденциальности для моего бота и решил на всякий случай вычитать его ещё раз ИИшкой. В итоге Copilot нашел две ошибки в вёрстке, которые я банально пропустил.

Для SSH-подключений к своему серверу я уже давно использую Visual Studio Code, потому что – внезапно – это один из самых удобных графических SSH-клиентов. А поскольку это тоже продукт Microsoft, то Копилот туда интегрирован потрясающе и даже даёт скидку 10% на каждый запрос из-под VSCode. Пару раз пригодилось, когда я интересовался у GPT, как посмотреть логи конкретного сервиса за последние несколько часов через journalctl.

За 2 относительно небольших Telegram-бота я потратил 41% из своей месячной квоты Copilot, и это были достаточно длительные сессии с кучей нового кода, вопросов, ревью и просто каких-то экспериментов. Возможно, я буду выходить почти в 100% к концу каждого месяца, но об этом я расскажу позже, когда наберётся статистика.

А что Windsurf? Вы могли заметить, что выше я расплываюсь в дифирамбах исключительно к Copilot, а про другой сервис не говорю. Но тут всё дело в том, что Windsurf безальтернативно подключил меня в триальный режим до перевода на платный тариф, а для trial-периода доступны 100 условных единиц, которые я за 10 дней полностью потратил. Расценки там такие:

  • Claude Opus 4.6 — 6 единиц (было 3 у.е. до 14 февраля и это было круто)

  • GPT-5.2-Medium — 2 единицы

  • GPT-5.2-Codex-Medium — 1 единица. Это самый отличный вариант, как по мне, потому что Codex специально заточен под программирование и при этом дешёвый.

  • и ещё несколько десятков разных опций от 0.125 единиц до 18 единиц у какого-то сверхбыстрого и сверхумного Opus-а.

Что понравилось: когда у меня закончились эти 100 у.е., Windsurf предложил альтернативу: можно либо купить ещё пачку, что не имеет смысла, потому что проще дождаться конца триала и тогда будет 500 ежемесячно, либо пользоваться их in-house моделью SWE-1.5, которая бесплатна до середины марта и по заявлениям разработчиков работает на уровне Claude Sonnet 4.5 и при этом в разы быстрее по скорости генерации.

Но главное — у Windsurf очень достойный плагин для PyCharm, которым приятно пользоваться и не надо постоянно переключаться между Cursor и PyCharm, как я делаю ежедневно на работе, просто потому что коммитить код и смотреть диффы мне удобнее в IDE от Jetbrains. Собственная IDE от Windsurf — это чистый VSCode с предустановленными плагинами. Из эксклюзивных фич — Plan Mode доступен только в их IDE, в плагин для PyCharm его нет. Ну и ладно, не страшно.

Итог

Всего за 5 дней я в качестве «менеджера-программиста» сделал небольшого бота, без нервов, без прокрастинации, чисто в потоке «Описал задачу» → «Подождал 10 минут» → «Провёл ревью» → (опционально) «Задеплоил из ветки и потыкал руками» → «Смёржил в мастер и задеплоил на прод». Без LLM я бы это делал несколько недель, а, скорее всего, месяц, постоянно отвлекаясь и не зная, на чём сфокусироваться. Значит ли это, что я плохой программист? Ну, всегда есть куда расти. А если вчитываться в то, что пишет нейронка, то можно узнать для себя что-то новое.

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

Ещё раз милости прошу попробовать: https://t.me/ShadesOfMoodBot.

Спасибо, что дочитали до конца!