Модели очень любят слово «готово».
«Я исправил ошибку, теперь всё работает».
«Код проверен, проблем не обнаружено».
Звучит уверенно. Проблема в том, что модель вполне могла ничего не запускать. Просто прочитала собственный код и решила, что он хороший.
Примерно как автор, который вычитал собственный текст и не нашёл опечаток, потому что помнит, что хотел написать.
Это не попытка обмануть. Модель может уверенно описывать результат, которого на самом деле не проверяла. Но мне от этого не легче, когда программа падает на первой же строке.
Поэтому «всё работает» я воспринимаю как «я думаю, что всё работает». Это разные утверждения, и разница между ними иногда стоит минут двадцати отладки.
Несколько правил, которых я стараюсь придерживаться:
01 / Запускать код.
Звучит очевидно, но соблазн принять результат на глаз велик. Особенно когда изменение кажется незначительным.
02 / Смотреть дифф.
Не только итоговый файл, но и конкретные изменения. Модель могла заодно поменять то, о чём её никто не просил.
03 / Проверять неудобные случаи.
Пустой ввод, кириллица в названии файла, отсутствие интернета. На идеальных данных работает почти всё.
04 / Требовать подтверждений.
Не просто «исправлено», а тест или конкретные шаги для воспроизведения ошибки и проверки исправления. Если тест падает, это тоже полезный результат.
Когда среда позволяет модели самостоятельно запускать код и тесты, ситуация заметно лучше. Но даже тогда важно смотреть, что именно проверялось.
«Все тесты прошли» иногда означает, что прошли два теста, которые модель только что написала под собственное решение.
ИИ сильно ускоряет работу, и я не собираюсь от него отказываться.
Просто последнее слово «работает» я оставляю за собой.
«Я исправил ошибку, теперь всё работает».
«Код проверен, проблем не обнаружено».
Звучит уверенно. Проблема в том, что модель вполне могла ничего не запускать. Просто прочитала собственный код и решила, что он хороший.
Примерно как автор, который вычитал собственный текст и не нашёл опечаток, потому что помнит, что хотел написать.
Это не попытка обмануть. Модель может уверенно описывать результат, которого на самом деле не проверяла. Но мне от этого не легче, когда программа падает на первой же строке.
Поэтому «всё работает» я воспринимаю как «я думаю, что всё работает». Это разные утверждения, и разница между ними иногда стоит минут двадцати отладки.
Несколько правил, которых я стараюсь придерживаться:
01 / Запускать код.
Звучит очевидно, но соблазн принять результат на глаз велик. Особенно когда изменение кажется незначительным.
02 / Смотреть дифф.
Не только итоговый файл, но и конкретные изменения. Модель могла заодно поменять то, о чём её никто не просил.
03 / Проверять неудобные случаи.
Пустой ввод, кириллица в названии файла, отсутствие интернета. На идеальных данных работает почти всё.
04 / Требовать подтверждений.
Не просто «исправлено», а тест или конкретные шаги для воспроизведения ошибки и проверки исправления. Если тест падает, это тоже полезный результат.
Когда среда позволяет модели самостоятельно запускать код и тесты, ситуация заметно лучше. Но даже тогда важно смотреть, что именно проверялось.
«Все тесты прошли» иногда означает, что прошли два теста, которые модель только что написала под собственное решение.
ИИ сильно ускоряет работу, и я не собираюсь от него отказываться.
Просто последнее слово «работает» я оставляю за собой.
Просмотры: 2