Я аналитик, а не программист. Мы вывели в прод блогплатформу с вебсокетами, поиском и 1300 тестами — и сами не написали ни строчки кода

Как мы вдвоём построили «Думайте» — площадку, где тексты оценивают по пользе и интересу, а не по лайкам, — руками Claude Opus. Честно о том, где нейросеть гениальна, а где она чуть не уронила нам прод.

Я аналитик, а не программист. Мы вывели в прод блогплатформу с вебсокетами, поиском и 1300 тестами — и сами не написали ни строчки кода

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

И тем не менее у нас работает в проде полноценная блогплатформа: PHP 8.4, Laravel, Livewire, реалтайм на вебсокетах, полнотекстовый поиск на Meilisearch, медиа на S3, PWA с пуш-уведомлениями, админка, антифрод, почтовые дайджесты — и больше 1300 автоматических тестов, которые не дают всему этому развалиться. Весь код до последней строчки написала нейросеть — Claude Opus (через агент Claude Code). Наша работа была другой: быть архитектором, продактом, дизайнером и QA.

Это не пост «вау, ИИ сам всё сделал». Всё сложнее и, по-моему, интереснее. Расскажу, что мы построили, зачем, и где именно нейросеть — гений, а где чуть не убила нам боевой сервер.

Что мы вообще делаем

«Думайте» — блогплатформа для тех, кто любит читать и писать вдумчиво. Идея выросла из простого раздражения: в любой ленте побеждает не тот, кто прав, а тот, кто громче крикнул. Лайк стал единственной валютой, а лайк — плохой судья: его ставят не думая, легко накручивают и невозможно объяснить.

Поэтому в основе платформы — вещь, которой нет у больших соцсетей: две отдельные оценки у каждой записи.

  • Полезность — узнали ли вы что-то новое, изменилось ли понимание.
  • Интересность — было ли увлекательно, хотелось ли читать дальше.
Я аналитик, а не программист. Мы вывели в прод блогплатформу с вебсокетами, поиском и 1300 тестами — и сами не написали ни строчки кода

Это не одно и то же. Бывает текст полезный, но сухой; бывает увлекательный, но пустой. Разделив шкалы, мы даём автору честную обратную связь, а читателю — находить не «популярное», а по-настоящему стоящее. Поверх этого — система роста по восьми областям знаний, вес голоса в зависимости от вашей экспертизы в теме, и умная лента, которая ранжирует не по хайпу.

Звучит просто. Под капотом это десятки взаимосвязанных подсистем: голосование с защитой от абуза, рейтинги, подписки, коллекции, древовидные комментарии, опросы и спойлеры в статьях, уведомления (реалтайм + email-дайджесты), PRO-подписки, реферальная программа, модерация, проверка авторства, техподдержка, SEO с картами сайта. Обычно такое пишет команда сеньоров не меньше года.

Как это — строить продакшн без программистов

Главное заблуждение про «разработку с ИИ»: будто ты пишешь промпт и получаешь приложение. Нет. Ты получаешь неутомимого сеньора, который знает весь стек, печатает со скоростью света и никогда не устаёт, — но которому нужен вменяемый техлид. Этим техлидом становишься ты.

Также до начала разработки мы с дизайнером детально продумали ТЗ, описали алгоритмы и отрисовали прототипы основных страниц в Фигме. Поэтому на старте у нас уже было много структурированных данных, которые мы могли выдавать нейронке или куда отсылать её за уточнением деталей.

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

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

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

Где нейросеть — гений, а где чуть не убила прод

А теперь честная часть, ради которой стоит читать. ИИ пишет отличный код, но «отличный код» и «работает на боевом» — не одно и то же. Вот наши настоящие грабли.

Грабля №1: разница между dev и prod, которую не видно на локалке. Мы разрабатывали на SQLite, а прод — на MySQL. И поймали серию боевых «пятисоток» на ровном месте: MySQL строже относится к группировкам (only_full_group_by), а некоторые функции, которые в SQLite означают одно, в MySQL — совсем другое. Код был «правильный» — просто СУБД вели себя по-разному. Вывод, который дорого достался: локальная среда должна повторять боевую. Мы перевели всю локальную разработку на MySQL 8 — и класс прод-багов просто исчез. ИИ честно писал кросс-совместимый SQL, когда его об этом просили; но додуматься до самого риска паритета сред должен был человек.

Баги неизбежны и периодически это всплывает и у нас на проде
Баги неизбежны и периодически это всплывает и у нас на проде

Грабля №2: одна миграция уронила все страницы статей. Мы поменяли формат одного поля в профиле (список ссылок из простых строк стал списком объектов). Обновили всех известных потребителей поля — кроме одного самописного куска, который делал parse_url() в расчёте на строку. В PHP parse_url(массив) бросает ошибку — и получили 500 на каждой странице записи, где был этот блок автора. Классика, на которой горят и живые команды: смена формата данных — это не локальная правка, а изменение контракта для всех, кто поле читает. Теперь любое такое изменение — только с полным аудитом потребителей и тестом на реальную страницу.

Грабля №3: мобильная клавиатура и в целом мобильная версия — ад, который не полностью воспроизводится в браузере. Панель ввода комментария должна держаться над экранной клавиатурой. Звучит тривиально. На деле Chrome на Android, Яндекс-браузер и Safari на iOS ведут себя по-разному: у одного панель браузера снизу, у другого сверху, третий вообще игнорирует нужный механизм. Мы прошли через серию багов, которые видны только на живых устройствах — ни один автотест и ни один эмулятор их не ловит. Мораль: ИИ напишет тебе идеальный по логике код, но «проверь на трёх реальных телефонах» — по-прежнему на человеке.

Сделать качественный текстовый редактор в МОБ оказалось одной из самых сложных задач даже для Клода.
Сделать качественный текстовый редактор в МОБ оказалось одной из самых сложных задач даже для Клода.

Общий паттерн: нейросеть блестяще решает поставленную задачу, но не знает, какую задачу ставить. Увидеть системный риск, вспомнить про паритет сред, догадаться проверить на железе, решить продуктовый спор — это остаётся людьми. ИИ убрал из уравнения «писать код». Всё остальное в инженерии никуда не делось.

Что я понял про постройку продукта с ИИ

Если вы думаете сделать что-то серьёзное таким способом — несколько честных выводов.

  1. Аналитик и тестировщик важнее кодера. Узкое место — не «написать код», а внятно сформулировать, что и зачем. Умение декомпозировать, продумать граничные случаи и правила — теперь главный навык. Кодинг стал дешёвым; мышление — нет.
  2. Без тестов вы слепы. Не пишете код сами — значит, обязаны заставлять ИИ покрывать всё тестами. Это ваши глаза и страховка. Лучше сразу на старте прописать это правило в документации Клода.
  3. Держите продовую дисциплину как взрослые. Паритет сред, миграции с аудитом, гейт тестов перед деплоем, бэкапы. ИИ с радостью выкатит вам что угодно — тормоза ставите вы.
  4. Скорость — сумасшедшая, но контроль на вас. То, что заняло бы у небольшой команды годы и серьёзный бюджет, делается силами пары человек и подписки на ИИ. Но «быстро» без «в проде и не падает» ничего не стоит.

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

Я аналитик, а не программист. Мы вывели в прод блогплатформу с вебсокетами, поиском и 1300 тестами — и сами не написали ни строчки кода

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

Если стало любопытно — можно зайти почитать или завести свой блог: dumaite.ru А если вы сами что-то строите с ИИ — расскажите в комментариях, где у вас были свои «грабли». Соберём коллекцию боли.

1