Бартов: про работу с ИТ- и медтекстами и про всякое
Здоровье · 30 сентября 2026 г.
Вайб-кодинг с отладкой — 30 сентября 2026 г. в 08:10:55.207
Вайб-кодинг с отладкой Этот пост — для тех, кто пишет свои скрипты для автоматизации. Делюсь граблями и, возможно, приёмом, который помогает наступать на них реже. Недавно выяснилось: я писал свои скрипты неправильно. Раньше как было? 1. Пишу запрос: «Сделай мне Python-скрипт, который делает то-то и то-то. И ещё вот это, это и это». 2. Дипсик что-то выкатывает. Пробегаю глазами по коду. Похоже на то, что я хотел, — вставляю в VS Code, запускаю. Поехали. 3. Вылазят ошибки. Они всегда вылазят. Скидываю лог, Дипсик думает, выдвигает версию и пишет что-нибудь в духе: «Ну вот теперь-то 200% заработает». 4. Запускаю снова. Что-то начинает работать, что-то перестаёт. Дальше — тяни-толкай: Дипсик правит две ошибки, попутно сносит логику двух других функций, появляются ещё две ошибки. В эту игру можно играть долго. Каждый раз Дипсик авторитетно заявляет: «Ну вот сейчас я ВАЩЕ ВСЁ-ВСЁ-ВСЁ учёл, стопудово заработает». Ты запускаешь код — и он опять через минуту, пять, пятнадцать или сорок выбрасывает ошибку. • • • Как вы помните, я недавно писал статью для своего клиента про эксперимент с вайб-кодингом (статья, кстати, даже залетела в топ Хабра) , где клиент мне описывал фанатов ИИ, гоняющихся за линией горизонта за шансом ухватить версию работающего кода, глядя на обещания ИИ. Я узнал себя. В разговоре, когда мы обсуждали саму статью, клиент сказал: реализовать тот или иной алгоритм программно — никаких проблем, с этим справится junior-разработчик. Проблема не в этом. Проблема в том, что вокруг программной реализации алгоритма и «идеального сценария его использования» (happy path) нужно написать кучу сценариев того, как всё пойдёт не по плану. А это уже 95% оставшегося кода. Выходит, сначала надо проговорить с ИИ основную логику. Потом подолгу обсуждать краевые/запасные варианты развития событий. И только потом давать команду на выкатывание кода. Выглядит это так. Пишу промпт: Хочу Python-скрипт, который делает то-то и то-то (далее пошаговый идеальный алгоритм). Проанализируй предложенную реализацию, выяви слабые и спорные места, предложи оптимизации. Никогда не выводи код, пока не прояснишь все уточняющие вопросы. Код выводи только после моей команды «Выводи полный код». • • • И тут начинается нудный многочасовой допрос. Примеры из обсуждения скрипта для дедупликации книг в библиотеке: — Хэширование текста без полного извлечения — принципиально? Предлагаю такую-то реализацию. Согласен? — Что значит «уникальный файл»? — Где живёт индекс? Как скрипт узнаёт, что файл «новый»? — Что если имя файла уже содержит [Число_страниц]_? Убирать старый префикс и ставить новый? Или оставлять как есть? — По твоему правилу выживает PDF (он в LIB\), а EPUB удаляется. Это правильно? Или EPUB всё-таки должен выжить — он ведь более редактируемый? — Дубликаты внутри LIB\ тоже идут в _duplicates, а не в _trash? Вопросы идут бесконечным, как кажется, потоком. Ответишь на двадцать — он найдёт слабые места в твоих ответах и сгенерирует ещё двадцать. Таких сессий вопросов-ответов может быть 20-30. Главное — не давать себе слабину. Каждый раз, отправляя пачку ответов, снова и снова спрашивать: Если есть ещё уточняющие вопросы, задавай. • • • В итоге Дипсик выдаёт заветное «Вопросов больше нет, я готов вывести код» — и выкатывает код, который работает почти сразу. У меня возник всего один косяк: библиотеку Дипсик импортировал чуть позже, чем положено. Исправилось легко. Эксперимент с таким допросом я провёл дважды: апдейтил скрипт для извлечения глоссария и вот этот, для дедупликации книг в библиотеке. Результатом пока доволен (на скриншоте лог работы скрипта, работает уже 12 часов без единой ошибки, со скоростью обработки примерно 32 файла/книги в минуту): Таким образом, хоть ИИ и выкатывает за 2-3 минуты — это, как вы понимаете, самая финальная операция. А вот обсуждение параметров, ограничений и уточнений занимает 2-3 часа и больше даже на мелкий скрипт. Источник: https://teletype.in/@bartov/KWfbFa56Vx-