Production-аудит: готов ли проект к реальным пользователям
На твоём компе работает. А чужие придут - выживет?
Production-аудит для вайбкодера: чем «работает у меня» отличается от «работает у всех», какие зоны бьют первыми и как заставить ИИ дать вердикт можно/нельзя.
Что такое production-аудит простыми словами
Испёк дома один торт. Для себя. Вкусно - ты доволен. А теперь представь: завтра к тебе ввалятся 300 гостей. Каждому подавай кусок, у пятерых аллергия на орехи, трое норовят утащить торт целиком, а один невозмутимо просит чек.
Чувствуешь разницу? «Испёк торт дома» и «накормил 300 человек» - это две разные профессии. Первое - твой проект на ноутбуке. Второе - прод (production): момент, когда им начинают пользоваться чужие, незнакомые и совершенно непредсказуемые люди.
Почему «работает у меня» не равно «готово к запуску»
Ты вайбкодер. Собрал штуку, она работает, и руки чешутся показать её миру - выложить, кинуть ссылку друзьям, врубить рекламу. Самый сладкий момент. И самый опасный. Потому что именно тут чаще всего и прилетает:
- кто-то залогинился под чужим аккаунтом и спокойно листает чужие данные;
- человек заплатил, а товар не пришёл - или пришёл дважды, и деньги списались дважды;
- ты выкатил обновление, всё легло, а откатить нечем;
- форма идеально работает у тебя, а на телефоне до кнопки просто не дотянуться.
Аудит готовности - это не паранойя. Это как осмотреть машину перед дальней дорогой: спущенное колесо приятнее находить на парковке, чем на трассе под ливнем.
Прод Прод (production) - «боевая» версия проекта, которой пользуются реальные люди. Противоположность - твой локальный компьютер или тестовая площадка, где можно ломать что угодно без последствий. прощает куда меньше твоего ноутбука. Хорошая новость: ИИ умеет прогнать проект по чек-листу готовности. Надо только знать, что просить.
Как ИИ проводит аудит готовности к запуску
Грамотный аудит - это не «глянь, всё ли ок». Это строгий порядок проверок, от дешёвых к дорогим. Скилл production-audit идёт ровно так.
Шаг 1. Что вообще выкатываем в прод
Сначала ИИ смотрит, что изменилось и что поедет на боевой сервер: последние правки, текущая ветка, чем эта версия отличается от прошлой. Логика простая - нельзя проверять то, чего не понимаешь.
Шаг 2. Опасные зоны, где всё ломается чаще всего
Дальше агент идёт по «горячим точкам»: вход и доступы, работа с данными, оплата, фоновые задачи, деплой. Это не случайные места. Это те самые стыки, где проекты складываются как карточный домик.
Шаг 3. Короткий вердикт можно или нельзя
Никакого «ну вроде норм». По делу: можно запускать или нет. А если нельзя - что чинить в первую очередь.
Четыре зоны, где чаще всего падает прод
Скилл production-audit смотрит на проект через несколько «линз». Вот четыре главные. Выучи их - это твой личный чек-лист готовности.
Вход и доступ: безопасность пользователей
Самый страшный сон - чужой видит то, что не должен. ИИ проверяет: разделены ли публичные страницы и админка; проверяется ли доступ на сервере, а не по принципу «спрятали кнопку, и сойдёт»; не утекли ли секреты Секреты - пароли, ключи доступа к API, токены оплаты. То, что должно лежать в защищённом месте, а не быть зашитым прямо в коде сайта, который видит любой пользователь. в код, который браузер раздаёт каждому встречному.
Деньги и оплата без двойных списаний
Есть платежи - есть зона повышенного риска. Ключевое слово тут - идемпотентность Идемпотентность - заумное слово с простым смыслом: если одно и то же действие случайно повторится дважды, результат должен быть как от одного раза. Заказ оплатили один раз - товар уходит один раз, даже если система прислала уведомление трижды. . Платёжные системы обожают слать одно уведомление по нескольку раз. Не готов к этому - человек заплатит один раз, а получит (или потеряет) дважды.
Данные и путь назад
Главный вопрос: есть ли путь назад? Обновление испортило базу - можно вернуть как было? ИИ проверяет, что изменения базы накатываются чисто и что план отката не на словах, а наготове.
Запуск с нуля на чистом сервере
Звучит банально, а валит проекты с завидной регулярностью. Поднимется ли проект на чистом компьютере строго по инструкции? У тебя-то всё настроено годами и держится на памяти. А новый сервер пустой. И памяти у него нет.
Путь отката: главное правило безопасного запуска
Если из всего урока ты унесёшь одну-единственную вещь - пусть будет эта. Никогда не запускай то, что нельзя откатить.
Путь отката Путь отката (rollback) - заранее подготовленный способ быстро вернуть проект к рабочему состоянию, если новая версия всё сломала. Как кнопка «отменить», но для целого сайта. - твоя страховка. Любой, кто запускался не раз, твёрдо знает: рано или поздно ты выкатишь обновление, и оно что-нибудь сломает. Вопрос не «если», а «когда». И в этот момент всё решает ровно одно - можешь ли ты быстро вернуть как было.
Готов к людям или ещё нет: чек-лист готовности
- Доступ проверяется на сервере: чужой не зайдёт под чужим аккаунтом.
- Секреты спрятаны - их нет ни в коде страницы, ни в логах.
- Есть путь отката, и он реально проверен, а не «ну должен сработать».
- Проект стартует с нуля по записанной инструкции, без магии в голове автора.
- Главные сценарии проверены и на телефоне, а не только на большом экране.
- Доступ держится на спрятанной кнопке - её обходят за минуту.
- Ключи и пароли зашиты прямо в код, видимый любому желающему.
- Отката нет: сломал - живи с этим.
- Запуск стоит на честном «ну у меня же работает» - на чистом сервере не стартует.
- Что-то падает - пользователь видит пустой белый экран без единой подсказки.
Пример из жизни: три пожара за один вечер
Ты сделал сайт по продаже стикерпаков. Всё крутится: товар добавляется, оплата проходит, друзья потестили - красота. Врубаешь рекламу, за вечер приходит 200 человек. И понеслось:
- Платёжная система прислала уведомление об оплате дважды (так бывает чаще, чем кажется) - и один покупатель получил два списания. Идемпотентности не было.
- Кто-то поменял в адресной строке номер заказа на чужой - и увидел чужой адрес доставки. Доступ проверялся только на странице, а не на сервере.
- Ты в панике выкатил «фикс», он доломал остальное, а рабочей версии у тебя уже нет. Отката не было.
Один вечер - три пожара. И все три ИИ нашёл бы заранее, попроси ты его до запуска. Вот как просить.
Проведи аудит готовности моего проекта к запуску для реальных пользователей. Не верь тому, что тесты зелёные - это не значит, что прод не сломается.
Проверь по порядку и для каждого пункта прямо скажи: в порядке оно или нет.
- Безопасность. Проверяется ли доступ на стороне сервера, а не только спрятанной кнопкой. Не утекли ли пароли и ключи в код, который видит браузер.
- Деньги. Если есть оплата - что будет, если уведомление о платеже придёт дважды. Не спишется ли и не выдастся ли товар повторно.
- Данные. Можно ли откатить изменения базы, если новая версия их испортит.
- Запуск. Поднимется ли проект на чистом сервере по инструкции, без знаний, которые есть только в моей голове.
- Телефон. Работают ли главные сценарии и формы на мобильном экране.
В конце дай короткий вердикт: можно запускать или нет. Если нет - список того, что чинить в первую очередь, по важности. И перечисли, что именно ты проверил: какие файлы и места.
Вердикт аудита: можно, нельзя или с оговорками
Хороший аудит заканчивается решением, а не задумчивым вздохом. Скилл production-audit пользуется для этого простой шкалой - переведём её на человеческий:
- Заблокировано - не запускай, пока не починишь главное (нет проверки доступа к чужим данным, оплата может списать дважды, нет отката).
- Рискованно - запускай осторожно, на маленькой группе, а не на всю аудиторию разом.
- Можно с оговорками - запускай, если осознанно принимаешь оставшиеся мелкие риски.
- Уверенно - явных блокеров не видно.
Частые ошибки при запуске в прод
- Считать зелёные тесты готовностью. Тесты - про «код делает задуманное». Аудит - про «прод не упадёт под людьми». Разные вопросы.
- Запускать без отката. Рано или поздно что-то сломается. Без кнопки «вернуть как было» это уже катастрофа, а не просто неприятность.
- Проверять доступ только на странице. Спрятать кнопку - не защита, а фиговый листок. Доступ обязан проверяться на сервере.
- Зашивать секреты в код. Пароли и ключи в коде страницы видны любому. Им место в защищённом хранилище, а не на витрине.
- Забывать про идемпотентность в оплате. Двойное уведомление о платеже равно двойному списанию, если проект к этому не готов.
- Тестировать только на своём большом экране. Половина людей придёт с телефона. Форму, которую там не нажать, никто не заполнит.
- Принимать вердикт без списка проверенного. Не сказал ИИ, что именно смотрел, - значит, это не аудит, а догадка с уверенным лицом.
TL;DR - если коротко
- «Работает у меня» и «выдержит толпу» - две разные планеты. Аудит про вторую.
- Зелёные тесты - не готовность. Они про «код делает задуманное», а не «прод не ляжет».
- Ломается почти всегда в одних и тех же местах: вход и доступ, деньги, данные, запуск с нуля.
- Без пути отката не запускайся. Кнопка «вернуть как было» - не роскошь, а парашют.
- Половина придёт с телефона. Кнопку, до которой там не дотянуться, никто не нажмёт.
- Требуй у ИИ вердикт можно/нельзя и список блокеров - а не уютное «вроде норм».