Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Или не удалять постфактум (то есть после моих замечаний) свою строку. Я-то первый раз цитировал, когда она там еще была 
Я ничего не удалял.
PD>Вполне. Ради бога, я же не против. Я вполне за. Было N инструментов, добавился N+1-й. Очень хорошо. Только панацею из него делать не надо.
Никто и не делает. Вы спрашиваете — мы отвечаем.
PD>Как сказать... Вообще-то хороший набор тестов даст и то (в принципе даже все даст), что и статический анализ.
Нет. Термином "тест" называют в нашей отрасли вполне конкретную штуку, а именно
запуск тестируемого кода и последующий анализ рантайм-поведения.
А термином "статический анализ" называют другую вполне конкретную штуку, а именно попытки выявить особенности поведения кода
без запуска.
Смешивать термины не надо — это только снижает конструктивность дискуссии. Иначе "статическим анализом" можно назвать также и запуск кода в тестовом окружении на всём множестве возможных входных данных
PD>Другое дело, что статический анализ прост и для него есть инструменты. Натравил их — получи. А тесты делать надо, да и есть риск того, что именно под эту ошибку тест и не будет сделан.
Смиялсо. Статического анализа есть великое множество видов, и далеко не все из них сводятся к запуску инструмента на файле исходников.
Например, дедуктивная верификация и модел чекинг тоже относятся к статическому анализу (причём к самой ценной его разновидности — той, у которой нет false positives).
Но простой бы я их не назвал — требуются существенные усилия как при реализации инструментов, так и при подготовке кода к такой верификации.
PD>Все было бы верно, если бы не пресловутая удаленная фраза насчет работы ИИ после юнит-тестов.
Нет никакой удалённой строчки. Просто кое-кто прочёл "после" как "на основе", и отсюда пошла целая ветка заблуждений.
PD>Я эту фразу понял как способность ИИ запускать тесты и анализировать их прохождение.
И такая возможность тоже есть, но в том примере, ссылку на который я дал, она не использовалась.
PD>А это без методов типа профайлинга невозможно.
Конечно возможно. Человек вполне успешно может запускать тесты, смотреть на результат, и исправлять ошибки безо всякой помощи профайлера.
PD>Ну не совсем поверх, скорее параллельно. Поверх профайлера он все же не работает, как мы выяснили уже.
Повторю простую мысль: и поверх профайлера он тоже может работать. Просто в указанном мной примере он этого не делает.
PD>В том-то и дело, что черт его знает. Не принять точечное изменение, которое сделала IDEA — несложно. И то, если пустить ее на автомате делать эти изменения, потом придется просматривать все изменения. А вот если это сделает ИИ, да еще на per-project основе, внося изменения по данной проблеме в несколько файлов кода — поди потом найди изменения, относящиеся именно к этой проблеме и отличи их от других.
Что за странные фантазии?
Во-первых, есть системы контроля версий и инструменты diff.
Во-вторых, ИИ-агентов тоже не идиоты писали, поэтому любой агент
показывает, что именно он изменил, не заставляя разработчика бегать за ним вручную и реконструировать набор правок.
Более того, он эти диффы снабжает пояснениями на человеческом языке — что именно он сделал и зачем.
И в зависимости от настроек он эти диффы может не применять даже локально, пока пользователь их не подтвердит.
Рукоятку параноидальности можно крутить в обе стороны — от ручного подтверждения каждой правки в каждый файл, до автоматической отправки PR в репозиторий.
PD>А если он еще несколькими взаимосвязанными проблемами одновременно займется, то тут, боюсь, кроме полного отказа от его изменений ничего и не может быть.
Ну так это и к кожаным мешкам тоже относится. Как поставлена задача — так и будет делать. Попросишь решить сразу семь проблем — займётся семью проблемами.
Потребуешь решить одну — постарается решить одну, а если потребуется вылезти за пределы выданных полномочий — попросит разрешения.
PD>Звучит хорошо. Насколько реально все это можно, и не будет ли ситуации вроде ответа от вполне человеческих служб (ну вроде чата поддержки какого-то банка, где уже удалось пробиться через бота к реальному человеку, но этот человек все шлет и шлет свои стандартные ответы вместо того, чтобы ответить по существу — и делает это потому, что среди стандартных ответов у него ответа на мой вопрос нет, а за их пределы он выйти не имеет права) — не знаю. Но хотелось бы посмотреть на реальный лог таких общений по какому-то, пусть не слишком сложному проекту. Чтобы понять, что из этого фактически сейчас имеет место быть
А что останавливает? Сбер свои инструменты бесплатно вроде раздаёт. Это если жалко двух тыщ рублей за полноценного агента.
PD>Про тесты понятно. И покрыто было. И после его изменений половина тестов упала. А вот про любые идеи про починку понятно меньше. Я же написал — начиная проект, я на отладку этого кода и часа не запланировал, да и не помню уже его деталей. Так что на починку может уйти очень много времени.
Тогда делаем revert и едем дальше.
PD>В общем, я против автоматического редактирования кода.
Против так против. А зачем тогда спрашивать "а может ли ИИ автоматически редактировать код"?