Блог

Как я перестал бояться и полюбил AI

Юрий Мельников

Сначала AI казался продвинутым автодополнением кода, потом — конкурентом, а теперь — помощником.

Когда я впервые попробовал AI в редакторе кода, то подумал: ну, прикольное автодополнение. Подсказывает строчки, иногда даже удачно. Главное — смотреть, что он там написал.

Потом он начал писать целые классы. Потом появились агенты, которым можно поручить целый микросервис.

И тут я обнаружил, что работаю медленнее.

Потому что AI уже всё написал, а я ещё сижу и читаю. Проверяю каждую строчку. Пытаюсь разобраться, почему он сделал именно так, а не иначе.

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

И вот тут стало тревожно. Не то чтобы я прямо испугался, но мысль появилась: а программисты теперь вообще нужны?

Если AI уже умеет писать код, а я только хожу за ним и проверяю — как-то странно это выглядит.

Потом мне попалась мысль: а зачем вообще вычитывать за ним каждую строчку? Может, часть этой проверки тоже можно поручить инструментам?

Есть тесты. Есть проверки качества кода. Можно заранее задать ограничения: как всё должно быть устроено, что с чем может взаимодействовать, чего делать нельзя.

Конечно, зелёная галочка сама по себе ещё не значит, что всё хорошо. Можно сделать вообще не то, что требуется, но прекрасно пройти тесты. Особенно если тесты проверяют то же самое, что агент сам только что придумал.

Но это уже совсем другой вопрос: что именно мы проверяем? Как понять, что задача действительно решена?

Недавно я менял микросервис приёма запросов в Adal Cloud. И решил посмотреть, как справится AI, если просто поставить ему задачу. Без подробного разбора: а что делаем в этом случае, а что — в другом, а если что-то пойдёт не так?

Он всё сделал. Но когда я начал разбираться, нашёл и ошибки, и кучу спорных решений. В тех местах, которые я не продумал и не объяснил, агент решил сам. И далеко не всегда так, как было нужно.

Вот об этом всё равно кому-то нужно подумать. И объяснить агенту, как должно быть.

Чем дольше я с этим работаю, тем яснее понимаю, сколько всего в программировании происходит ещё до того, как начинаешь писать код.

Нужно понять задачу. Решить, как её встроить в то, что уже работает. Предусмотреть, где всё может сломаться. А потом проверить, что получилось именно то, что нужно.

И если ты этого не понимаешь, агент может очень быстро сделать тебе что-нибудь убедительное. Только разбираться с последствиями всё равно придётся тебе.

Наверное, на этом месте меня и отпустило.

Я столько лет учился разбираться, как всё работает. И это никуда не делось оттого, что код теперь можно написать без меня.

Просто раньше между решением и результатом нужно было ещё самому набрать все эти строчки. А теперь эту часть работы можно делегировать.

И, честно говоря, именно эту часть я готов отдать с удовольствием.