Комментарии 23
Rust - странный выбор для такого проекта. Почему так случилось?
Странный — в смысле редкий, согласен: доски объявлений на Rust почти не пишут. Но ошибкой не считаю. Сервер отвечает за 0,1 с, памяти ест мало, компилятор ловит часть ошибок модели до прода, 200 дней на нём стоит без переписывания. Цена известна: сборка 4 минуты, библиотек меньше, разработчика искать дольше.
Выбор мой, и осознанный. В феврале я просил у DeepSeek не «быстро запуститься», а фундамент, который выдержит рост без переделки: сначала одноэтажный домик, потом этажи сверху, и чтобы основание не дало трещину. Он предложил Rust + Axum + PostgreSQL. В марте консилиум из десяти моделей советовал уйти на WordPress или Bubble ради скорости запуска — я отказался.
На самом деле логика простая: конечно, я заинтересовался, как устроен Авито, и узнал, что он начинался на PHP и потом годами перестраивал его на ходу. Мне хотелось сразу заложить то, что не придётся переписывать, — пусть на старте это и выглядит избыточно.
Я уверен, что Авито тоже хотелось сразу заложить то, что не придётся переписывать. Просто за годы эксплуатации появляются новые требования, меняются условия, уходят и приходят технологии. И то, что много лет назад казалось (и, вероятно, на тот момент было) правильным решением по истечении времени становится legacy.
Мне кажется, что проблема не в вайб кодинге. В самом начале, стоило потратить пару часов на обсуждение с нейронкой подходящих инструментов и сэкономить несколько месяцев
Конечно, да! Но я начинал делать сайт, имея только очень поверхностное понимание того, что он из себя может представлять. Честнее — я ничего не понимал и даже не думал об этом. Я спросил у DeepSeek: «А мы с тобой можем сделать сайт объявлений типа Авито, но немного другой?» Он ответил «да», и мы приступили. Я и не думал, что это меня так затянет.
И тут важный момент — почему именно DeepSeek. С 2025 года я иногда использовал его для мелких задач, потому что он был бесплатный и работал без VPN. Февраль и март он писал код, я вставлял его в терминале, сохранял, пушил, деплоил — и это работало. А Claude Code и Cursor на таком объёме — это была бы подписка.
Когда я стал уставать, задумался об упрощении, об автоматизации. DeepSeek предложил построить свою «фабрику», и я поверил — потерял на этом пару недель. Потом он начал ходить по кругу: исправлял исправленное и возвращался к уже исправленному. Я пробовал ChatGPT и Gemini, а выбраться из этой головоломки помог Claude. К тому моменту я уже полностью погрузился в проект и для себя решил, что подписка того стоит.
Так что это были не столько проблемы, сколько трудности, которые пришлось решать разной ценой.
Любая иишка на абстрактный вопрос выдаст одинаково убедительные аргументы за любой стек. Она с одинаковым энтузиазмом распишет преимущества и связки на микросервисах, и монолита на WordPress. Чтобы задать правильные граничные условия, нужен опыт эксплуатации, которого на старте у новичка просто не было
Интересная история. Круто, что довели до MVP. Не пробовали chain-промптинг? У меня контекст часто вмешивается в инференс в негативном ключе, отбирает внимание от начальных требований. Некоторые вопросы закрывают субагенты, но не всегда.
Спасибо! По сути так и работаю, только без этого названия. Роли разделены: чат-архитектор пишет задание, исполнитель (Claude Code) получает его одним блоком. Большую задачу целиком не отдаю: сначала разведка только на чтение, потом план — если правок больше пяти, исполнитель обязан показать план и ждать одобрения, — и только потом работа по пунктам с докладом. Чтобы контекст не уводил в сторону, в начале каждой сессии он читает реестры проекта — STATE.md (что сейчас на проде и что в работе) и TECH_DEBT.md (открытые долги), — а не опирается на то, что «помнит». Разведку по коду отдаёт субагентам, в основной контекст возвращается только вывод. А когда чат разрастается и модель начинает терять нить — конспект и новый чат. Полностью проблему это не снимает, но дрейф от исходных требований стал заметно реже.
Вам проще запустить среду с агентом, там это всё делается автоматически (сжатие контекста, роли Plan/Build) и настраивается... Opencode, например, бесплатный и позволяет подключаться к любой другой модели.
Я немного про другую технику писал. Но да ладно, это тема целой статьи.
Понял, спасибо — значит, я ответил про своё, а не про технику. Claude Code, которым пользуюсь, как раз такая среда: и сжатие контекста, и режим плана в нём есть. Ручное сверху — реестры и второй чат как архитектор — это скорее мой способ держать решения не только в памяти модели. Про Opencode посмотрю, спасибо за наводку. А про цепочки — напишите статью, прочитаю.
как выглядят 70 тысяч строк Rust
Сейчас строки кода воспринимаются иначе - это раньше 70 тыс. огого. А сегодня - недавно писал про дизассемблер в одном HTML-файле. Так вот, новая версия на Rust (WASM) - около 87 800 строк и примерно 74 700 строк кода без пустых строк и комментариев намолотило: 62 тыс. Rust и 12 на TypeScript. Так я на него потратил суммарно дня 2, и то оно в фоне работало, я иногда отвлекался на него.
Сгенерировать тысячи строк шаблонов ума много не надо, вы попробуйте это потом отладить без исходного автора)
Согласен, строки сами по себе сегодня ничего не значат — модель намолотит сколько угодно. Для меня цифра была не про объём, а про то, что всё это 200 дней живёт на проде и не разваливается: 940 тестов, миграции, выкаты. Написать оказалось самой лёгкой частью, сложнее — держать в рабочем состоянии, не умея читать код.
Наверняка уже существует что то готовое. Зачем надо было делать с нуля не имея опыта. Тупо выбросил кучу времени и усилий в окно.
История про фейковую фабрику на Python которая две недели слала липовые отчеты в тг просто шедевр)
Спасибо интересная статья. Выбор раст для веб сайта правда странный, но с ИИшками в принципе все равно, что использовать в технологиях - особенно, если не с одной нету опыта. Любопытно почему дипсик рекомендовал раст и как это оправдывал, в статье чего-то не нашел, про ответ сервера видел приимущества, но под малой нагрузкой + с хорошим железом сервер написаный на любом языке будет отвечать скорее всего в районе 100 миллисекунд. Ну и скорее всего у вас нету никакой особо логики где Раст начнет сиять, т.к. думаю не ошибусь если предположу, что у вас во основном достать из базы и положить в базу логика, а не что бы посчитать вычисления какие-то русурсо емкие, вы упираетесь больше в перфоменс базы данных и SQL запросов.
Интересно провести нагрузучное тестирование, что бы оправдать выбор раст, правда ли хорошо там все написано и держит нагрузку, а то плохо написано код, даже Раст не спасёт))
А можете немного больше рассказать про маркетинговую составляющую. Где давали рекламу как продвегали, откуда пришли в основном пользователи после рекламы или просто из поисковика?
Спасибо за разбор, по делу.
Почему Rust. Его подсказал Gemini: когда я искал, с кем строить проект, он заметил, что DeepSeek особенно силён в бэкенде на Rust. С этим я и пришёл к DeepSeek — сказал, что делаем не пробную версию, а фундамент под большую площадку, и раз работаю с ИИ, хочу брать самые современные инструменты. DeepSeek выбор поддержал и обосновал тремя доводами: меньше серверов, строгий компилятор, скорость. Go и Node всерьёз не сравнивали — это честный пробел. Сейчас понимаю, что Go был бы равноценной альтернативой, попроще. Но для меня оказался важен как раз строгий компилятор: часть ошибок модели он не пропускает ещё до запуска, а для человека, который код не читает, это контролёр, которого иначе нет.
Про 100 мс вы правы: при нынешней нагрузке быстро ответит что угодно, и доказательством это не служит. Фундамент закладывался под нагрузку, которой пока нет, — это ставка, а не результат.
Про базу тоже согласен: у доски объявлений основная работа — взять из базы и положить в базу, и узкое место будет там, а не в языке. Rust поблёскивал бы под большой нагрузкой и на обработке фото — у нас сжатие и миниатюры делаются прямо в сервере, — но медленный SQL он не спасёт. Поэтому базу готовили отдельно: партиции объявлений, индексы, дерево рубрик.
Нагрузочного теста не было — спасибо за идею, проведём и выложу цифры.
Про маркетинг — честно: пользователей пока почти нет. Пробовали рекламу во ВКонтакте и платные посты в пабликах: переходы были, подач объявлений — ноль. Стали разбираться и нашли причину у себя: на телефоне витрина весила 6,8 МБ из-за фото в полном размере, первый экран не объяснял, что делать, форма была на три экрана. Починили, теперь будем пробовать заново — и, наверное, это тема для следующей статьи.
Автор красавчик! Потому что я делаю тоже самое на Rust, только не доску а сообщество для таких же ребят, которые не программисты, но хотят строить свое. Но в отличии от автора я вначале пути, а делаю я это не потому что надо, а поэтому что по кайфу придумать логику интерфейс и пр. Почему Rust? Он быстрый и безопасный, следовательно закрывает сразу целый пласт уязвимостей. Правильно говорит народ, что не важно на чем, главное инструмент в виде ИИ.
Ну а если кому интересно вот что наворотил hitin.skin

Вайбкодинг без розовых очков: как металлообработчик построил сайт на Rust с Claude Code — 200 дней и 12 поломок