TakoiTip
TakoiTip личный блог
Вчера в 15:51

5–7 вайб-итераций до кода, который не работает. Разбор провального рефакторинга.

Кофе 11.26, робот на Альфа-Про. В части 0 писал: «Решил

допилить проблемный модуль — и сломал то, что работало».

Вот разбор — по дням, как было.

Отправная точка. Пятница, конец сессии: v4.6 (лесенка + EMA)

работала в советнике — виртуальные позиции, реальных заявок

не было. Финал в журнале: «Не удалось закрыть 8 лот после 3

попыток — ЗАКРОЙТЕ ВРУЧНУЮ!». Рынок уже уходил в закрытие —

закрывать руками было нечего и некогда, но сам факт, что

движок не смог выполнить свою процедуру конца дня, всё

решал: пока нет доверия к движку, любой результат — шум.

В части 0 я написал «закрыл руками» — повторил формулировку

лога; точнее так: руками закрывать было нечего, но робота

я остановил и ушёл пересобирать. В субботу начался допил.

5–7 вайб-итераций до кода, который не работает. Разбор провального рефакторинга.

Суббота. Исправлял вайб-кодингом: сформулировал нейросети,

что не так — получил правку — применил — проверил. Цикл

повторился пять-семь раз, и дальше пошло по нарастающей:

правка — ошибка компиляции — правка, чтобы её починить —

новая ошибка. Компиляция то вставала, то падала. Когда

наконец собралось — оказалось, что это ещё не победа: код

на выходе не работал, а интерфейс поплыл — окна наезжали

на текст. Я смотрел на экран и не мог сказать, какая из

правок что сломала, — потому что не было ни истории

изменений, ни точки возврата.

Воскресенье. Пересборка заново. К вечеру в папке проекта

лежали четыре генерации нового кода — в проверку советником

пошла четвёртая. Три предыдущие отбраковал сам: где-то данные

приходили не те, где-то не приходили, где-то просто потёк

интерфейс — окна наезжали на текст. Уже не помню, что именно

было в какой: итерации шли так плотно, что между ними
не оставалось точек, которые можно было бы вспомнить.

Понедельник — и тут повезло дважды. MМВБ в те выходные

работала, но остальные рынки отдыхали — штиль, поэтому

воскресный код проверялся не на торговле, а на сборе цен,

гвардах, подключении. Вышел в советник в понедельник — и

только вечером по логам понял: рынок тихий, в рабочий режим

робот не выходил. Понедельник был выходным в США — те самые

«0 сделок, сессия в ожидании» из отчёта, день 1 первой

пятёрки. Сырой код встретил пустой рынок, первые сделки пошли

во вторник, на живом. Попадание в выходной — случайность,

но удачная.

И для масштаба — сравнение с первой сборкой. v4.6 собиралась

3–5 дней и около 50–60 итераций до ввода в работу. Я

рассчитывал, что, зная её грабли, соберу новую быстрее.

Не собралось: четыре генерации, три отбраковки, выходные

целиком. И главное — новый робот получился другим: не

«v4.6 без багов», а пересобранный заново — другая логика,

другой GUI. Ошибки старой версии не стали спецификацией

новой, они стали опытом, который изменил замысел. Вот почему

быстрее не вышло: переписать «то же самое, но правильно»

быстро нельзя, потому что получилось не «то же самое».

Чему это меня научило — четыре правила, каждое оплачено:

1. Вайб-кодинг без тестов — рулетка. Один-два цикла «поправь-

проверь» — нормальная скорость. Пять-семь подряд — вы уже

не правите код, вы играете в испорченный телефон с

нейросетью. Она всё помнит, но иногда ломается или

придумывает — и тогда правка задевает соседний узел.

2. Точка возврата — до первой правки, не после. Если после

пяти итераций нельзя откатиться к работавшему — значит,

работоспособность не была защищена. Это моя главная

ошибка: не сами правки, а отсутствие точки, к которой

можно вернуться.

3. Компиляция — это ещё не тест. Та суббота прошла два

круга: сначала пять-семь итераций борьбы за то, чтобы код

вообще собрался. Собрался — и оказалось, что не работает,

плюс поплывший интерфейс. Компиляция отвечает ровно на

один вопрос — «собралось или нет» — и ни на один из

настоящих: «работает ли», «не сломал ли соседнее». Между

«компилируется» и «работает» — вся пропасть, в которую

я тогда упал.

4. Пересборка заново — нормальный ход, когда есть два ответа:

почему предыдущая версия умерла и по какому критерию

считается готовой новая. Без этих ответов пересборка —

не метод, а лотерея.

Финальная ирония: проблемный модуль, ради которого всё

затевалось, в новой версии работает. А всё остальное могло

бы не пострадать — если бы в субботу между правками стояли

проверки.

Это дневник разработки. Вопросы — в комментарии.

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
12 Комментариев
  • Az72
    Вчера в 15:53
    чо бл. ?:)
  • Az72
    Вчера в 15:55
    все эти ваши роботы в конце концов вас  раззоряют:) это известно стало еще на заре роботов-нейросетей, году эдак в 2006-08
  • лайк за борьбу и победу))
  • bocha
    Вчера в 16:15
    — Сделайте, пожалуйста, яичницу с колбасой.
    — Извините, вайб-итерация не сработала. Рефакторинга будете ждать?

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн