- BrainTools - https://www.braintools.ru -
В 2013 году мне казалось, что я отлично зарабатываю.
Я уже около года фрилансил и получал что‑то порядка 100–120 тысяч рублей в месяц. Для того времени — очень неплохо.
В голове математика [1] была простая: аренда квартиры — около 25к, еда — около 15к.
Значит, живу примерно на 40–50к, а всё остальное — свободные деньги.
Поэтому покупка машины в кредит казалась нормальной идеей.
Проблема была только в том, что я считал очень оптимистично.
Я не учёл платную заочку. Не учёл лечение зубов, на которое как раз попал. И, конечно, не учёл, что машина — это не только ежемесячный платёж.
Это ещё ОСАГО, ТО, постановка на учёт, бензин, резина и десятки мелких расходов, которые почему‑то не спрашивают, есть ли они в твоей финансовой модели.
А кредит под ~30% годовых довольно быстро превращает:
«машину за 530 тысяч»
в
«миллион, который ты будешь выплачивать сильно дольше, чем планировал».
Тогда я впервые понял, что:
«много зарабатывать» и «понимать свои деньги» — вообще не одно и то же.
Сначала это была обычная Google‑таблица.
Потом в ней появился план/факт, прогноз по месяцам, обязательные траты, сценарии крупных покупок и понимание кассовых разрывов.
И вот тут внезапно выяснилось, что самые неприятные расходы — не ежедневные.
А те, про которые все забывают [2]: налог на авто, отпуск, годовые подписки, обслуживание и любые платежи формата «раз в год, но зато больно».
Один такой месяц мог спокойно развалить весь баланс, если заранее его не учитывать.
Со временем таблица перестала быть «табличкой с расходами». Она постепенно превратилась в систему принятия решений: можно ли брать кредит, насколько быстро получится его закрыть, не развалится ли баланс через несколько месяцев после крупной покупки и сколько денег реально останется к концу года.

Но в какой‑то момент меня начала раздражать сама таблица.
Любая новая категория — это правка формул. Любая реорганизация — риск случайно сломать суммаризацию.
А ошибку [3] можно заметить сильно позже, когда в прогнозе внезапно появляется кассовый разрыв, которого «не должно было быть».
И вот тут я решил:
«Ладно. Сейчас AI всё быстро накодит».
На тот момент я использовал Codex 5.2, GPT и spec‑kit.
И первая версия действительно собралась за пару вечеров.

Она повторяла логику [4] таблицы, убирала боль [5] с формулами, выглядела как настоящее приложение и действительно работала.
Правда, всё это работало только локально, на одном устройстве и с хранением данных прямо в браузере.
Но после Google Sheets это всё равно ощущалось как магия.
Я тогда реально стал тем человеком из AI‑постов:
«LLM меняют разработку».
Потому что на этапе демки — они действительно её меняют.
И вот это, как мне кажется, главный источник сегодняшнего AI‑вайбкодинга.
Проблема в том, что между:
«смотрите, оно работает»
и
«этим можно нормально пользоваться каждый день»
находится огромная инженерная пропасть.
Изначально всё было просто: данные лежат локально в IndexedDB.
Когда появился backend, самый очевидный путь был — переписать всё на server‑first.
Но UX сразу становился хуже.
Финансовое приложение должно позволять быстро записать расход даже когда сеть плохая или backend лежит.
Поэтому local‑first слой пришлось оставить.
В итоге получился гибрид: UI работает из IndexedDB, изменения складываются в outbox, sync worker отправляет typed mutations на backend, а backend валидирует изменения и возвращает server version.
И вот тут начинаются вещи, которых не видно в демке: конфликты изменений, версии сущностей, курсоры синхронизации, идемпотентность запросов, shared‑доступ к бюджетам и постоянная борьба с рассинхронизацией кэша.

И это был момент, когда пет-проект внезапно начал превращаться в настоящий продукт.
Потому что выяснилось, что я храню уже не просто «какие‑то JSON’ы».
У меня появился логин через Yandex ID, пользовательские профили, история операций, категории, бюджеты и данные, которые вполне можно связать с конкретным человеком.
И вот тут внезапно приходит неприятное осознание:
«кажется, это уже персональные данные».
Я изначально вообще не воспринимал приложение как что‑то, попадающее в эту область.
Казалось:
«ну это же не банк и не госуслуги».
Но по факту даже связка логина через Yandex ID, пользовательского профиля, истории действий, cookie, session‑данных и auth‑токенов уже начинает попадать в область вполне реальных требований законодательства.
И это очень меняет мышление [6].
Потому что дальше ты начинаешь думать уже не только про фичи.
А про удаление аккаунта, отзыв сессий, хранение токенов, права доступа, последствия утечки и восстановление доступа.
И это уже совсем другой тип задач.
Потому что демка — это:
«смотрите, приложение работает».
Production — это:
«что будет, если что‑то пойдёт не так?»
Одна из первых вещей, которую я понял:
LLM отлично оптимизируют ближайший успешный шаг.
И очень плохо чувствуют момент, когда архитектура уже начинает разваливаться.
Самый показательный пример был с мобильной версией.
В какой‑то момент AI начал решать все задачи одинаково:
«дописать ещё немного в тот же компонент».
Так один из mobile screen‑контейнеров вырос до 10 537 строк.
Внутри одновременно жили страницы, формы, фильтры, авторизация, синхронизация, финансовые расчёты и AI‑заглушки.
UI при этом продолжал выглядеть нормально.
Цена обнаружилась позже.
Любой визуальный фикс внезапно рисковал задеть бизнес‑логику, расчёты, синхронизацию или состояние экрана.
В итоге пришлось выносить мобильные компоненты, разделять view‑model, отделять UI от расчётов и добавлять golden tests.
И это был очень показательный момент.
Потому что интерфейс ещё выглядел «нормально».
А архитектура уже несколько тысяч строк как перестала быть поддерживаемой.
Часть проблем внезапно оказалась вообще не в приложении.
Например — Docker images.
CI при каждом merge в main собирал и пушил API, migrations, frontend, backup job и backup‑check job.
Сначала migration image был собран максимально «удобным способом» — вместе с Go toolchain.
Он работал.
Но потом оказалось, что:
registry начинает быстро расти;
vulnerability scanning становится дорогим;
VM забивается Docker cache;
deploy начинает тормозить.
В итоге migration image пришлось отдельно ужимать: только runtime, только migration binary, только SQL и ничего лишнего.
И это очень хорошо описывает разницу между:
«LLM помогла собрать»
и
«production теперь нужно эксплуатировать годами».
Первые успешные результаты очень быстро создают иллюзию контроля.
Кажется:
«ну всё, теперь AI реально пишет почти production‑ready код».
А потом модель начинает уверенно утаскивать архитектуру в сторону.
Самая неприятная часть:
чтобы получить хороший технический результат, недостаточно просто написать:
«сделай красиво».
Нужно самому понимать архитектурные ограничения, компромиссы, потенциальные узкие места и то, где система может стать хрупкой.
Иначе модель начинает очень уверенно предлагать решения, которые выглядят правдоподобно, но разваливаются на реальных сценариях.
В какой‑то момент работа с LLM начала ощущаться не как:
«AI пишет проект за меня».
Скорее как управление очень быстрым разработчиком, которому постоянно нужен review.
Самое ироничное: добавить AI в приложение оказалось неожиданно сложно.
Я думал:
«Сейчас скормлю модели финансовые данные — и она начнёт давать полезные советы».
На практике сначала получались рекомендации уровня:
«Постарайтесь меньше тратить».
В какой‑то момент стало понятно, что AI‑слой — это вообще не:
«отправим текст в модель».
Сначала backend должен посчитать агрегаты, собрать предсказуемый контекст, определить кассовые разрывы, отделить обязательные траты от разовых, ограничить горизонт прогноза, убрать слабые сигналы и только потом отдавать что‑то модели.
Потому что «умный AI-ассистент» без надёжного и проверенного источника данных очень быстро превращается в генератор уверенной финансовой ерунды.
Самое забавное — проект не разрабатывался «полгода каждый день».
Если посмотреть на график коммитов, видно скорее серию коротких интенсивных спринтов с большими паузами между ними.

LLM действительно радикально ускоряют фазу реализации.
Если у тебя есть инженерный опыт [7], понятное видение продукта и понимание, куда вообще движется система,
то за неделю сейчас реально собрать MVP, на который раньше ушли бы месяцы.
Но дальше начинается совсем другая история.
Production — это уже:
ограничения;
инварианты;
поддерживаемость;
UX;
sync;
rollback;
эксплуатация;
последствия архитектурных решений.
И именно здесь исчезает магия:
«сделал SaaS за вечер».
Наверное, самое интересное изменение я начал замечать даже не в коде, а в людях.
Я работаю техруком, и последнее время всё чаще думаю:
«а как вообще теперь калибровать инженеров в эпоху LLM?»
Потому что объём выдачи действительно вырос.
То, что раньше делалось неделю, сейчас местами собирается за день.
Но парадокс [8] в том, что критерии сильного инженера почти не изменились.
LLM очень хорошо ускоряют реализацию.
Но они почти не помогают с инженерными компромиссами, эксплуатацией, отладкой и пониманием последствий архитектурных решений.
И, кажется, именно поэтому AI пока не «обнуляет» опыт и экспертизу.
Скорее наоборот — делает разницу между уровнями заметнее.
Сейчас мне даже немного смешно, насколько похожими оказались финансы и AI‑разработка.
В обоих случаях главные проблемы начинаются сильно позже первого успешного результата.
Покупка машины казалась простой ровно до момента, когда появились: страховка, обслуживание, бензин, кредит, непредвиденные расходы.
С AI примерно то же самое.
Демка собирается быстро.
Настоящая стоимость появляется позже: sync, rollback, техдолг, поддержка, production, последствия быстрых решений.
AI действительно радикально ускоряет старт разработки.
Но демо и production — это всё ещё две разные вселенные.
Хайповые истории не совсем врут.
Сделать SaaS за вечер — реально.
Просто между:
«смотрите, оно работает»
и
«этим можно пользоваться каждый день»
обычно находится ещё несколько месяцев инженерной работы.
И это именно та часть разработки, которую AI пока не отменил.
Собственно, результат этого эксперимента можно посмотреть здесь: financehelperai.ru [9]
Будет интересно почитать в комментариях, где у вас лично заканчивался «вайбкодинг» и начинался настоящий production.

Автор: venzeles
Источник [10]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/30576
URLs in this post:
[1] математика: http://www.braintools.ru/article/7620
[2] забывают: http://www.braintools.ru/article/333
[3] ошибку: http://www.braintools.ru/article/4192
[4] логику: http://www.braintools.ru/article/7640
[5] боль: http://www.braintools.ru/article/9901
[6] мышление: http://www.braintools.ru/thinking
[7] опыт: http://www.braintools.ru/article/6952
[8] парадокс: http://www.braintools.ru/article/8221
[9] financehelperai.ru: https://financehelperai.ru/
[10] Источник: https://habr.com/ru/articles/1037410/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1037410
Нажмите здесь для печати.