Эксперименты с использованием AI для улучшения кода BIND 9 и переработки Next.js

Ондржей Сури (Ondřej Surý), директор по инжинирингу DNS в организации ISC, в прошлом создавший проект CZ.NIC Labs, развивающий DNS-сервер Knot, подытожил эксперименты с использованием больших языковых моделей для анализа, исправления и модернизации кодовой базы DNS-сервера BIND 9, создания прототипов новых проектов и подготовки материалов для обучения студентов. Впечатления от использования AI свелись к тому, что большие языковые модели хорошо подходят для быстрого прототипирования, понимания незнакомого кода и автоматизации простых рутинных задач, но при решении масштабных задач маловероятно, что они экономят время, так как много времени уходит на формулирование задачи, изучение и проверку результата, а также последующую доработку.

В первом эксперименте AI-ассистенту Claude Code была поставлена задача по обнаружению проблем в кодовой базе DNS-сервера BIND 9, с акцентом на проблемы с безопасностью и модернизацию кода. Ни одно из предложенных исправлений не было принято в кодовую базу, так как Claude сгенерировал технически корректный, но практически бесполезный код. Например, среди проблем отмечались зарезервированные идентификаторы и потенциальные целочисленные переполнения, предотвращаемые компилятором и не требующие правки. Эксперимент был признан бесполезной тратой времени.

Во втором эксперименте Ондржей попросил Claude разработать систему телеметрии, которая интегрируется с различными пакетами и минимизирует утечки метаданных. Claude Code подготовил прототипы клиента и сървър, но без должного понимания окружения и возникающих в процессе тестирования проблем. Дополнительно для проверки были задействованы Google Gemini и ChatGPT, и каждая AI-модель находила ошибки в результатах работы других моделей.

За бързото създаване на прототип методът се оказа подходящ, но Ондржей отбеляза, че по време на работата се е чувствал като секретар на робота-управител. В началото бързото получаване на прототип вдъхновяваше оптимизъм, но в крайна сметка възникна усещането, че целият процес на разработка с помощта на AI е отнел повече време, отколкото ако се беше писало код на ръка от нулата. Много време беше похарчено за разбор на решението, предложено от AI, проверка на излишните промени и преработка – прототипът трябваше да бъде преработен, тъй като качеството на кода след AI се оказа посредствено и кодът включваше значителен брой повторения на конструкции.

Третият експеримент беше за генериране на балансировчик на натоварването на езика Rust с използване на crate-пакетите Domain и Tokio. Claude Code успя да генерира искания работен прототип, но Ондржей не познава толкова добре Rust и засегнатите библиотеки, че да оцени качеството на извършената работа.

Четвъртият експеримент беше свързан с подготовката в Google Gemini на помощни материали, тестове и въпроси за курса на лекции, който Ондржей преподава в университета. Този експеримент беше признат за най-успешен, макар и да не мина без проблеми — AI измисли не съществуваща чешка дума за термин в криптографията. Също така беше отбелязано обилието от студенстки работи, генерирани от големи езикови модели, които трябва да бъдат върнати за преработка поради несъответствие на работата с университетското ниво и препратки към некоректни източници.

Допълнително може да се отбележи още един експеримент, проведен от директора по инженерство на компанията Cloudflare. С помощта на модела Claude Code, следвайки около седмица работа и разходвайки 1100 долара за токени, успяха да подготвят алтернативна реализация на API фреймворка Next.js, оформена като плъгин за инструментариума Vite. Проектът получи името vinext и беше публикуван в GitHub. Новата реализация е четири пъти по-бърза от компилацията на Next.js с помощта на Turbopack и форматира бандли за фронтендове, които заемат с 57% по-малко място.

Проект реализира 94% от шестнайсет основни API на Next.js и може да се използва като прозрачен заместител на Next.js и за разгръщане на проекти на платформата Cloudflare Workers без използване на допълнителни прослойки, като OpenNext, и без зависимост от Node.js. Основната цел на vinext е да предостави възможност за използване на API на Next.js на платформи, различни от Vercel, и без разгръщане на собствен сървър. В текущия си вид се поддържат само Cloudflare Workers и има прототип за Vercel, но в бъдеще се очаква поддръжка и на други платформи за безсървърни изчисления, с които може да работи Vite, включително Netlify и AWS Lambda.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster