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

Ondřej Surý, a DNS engineering director at ISC and former creator of the CZ.NIC Labs project, which develops the Knot DNS server, summarized the experiments on using large language models for analyzing, correcting, and modernizing the codebase of the BIND 9 DNS server, prototyping new projects, and preparing materials for student education. The impressions from using AI concluded that large language models are well-suited for rapid prototyping, understanding unfamiliar code, and automating simple routine tasks, but when used for solving larger problems, it's questionable whether they save time, as a lot of time is spent on task formulation, studying, and verifying results, as well as subsequent refinements.

In the first experiment, the AI assistant Claude Code was tasked with identifying issues in the BIND 9 DNS server codebase, focusing on security problems and code modernization. None of the proposed fixes were accepted into the codebase, as Claude generated technically correct but practically useless code. For example, issues noted included reserved identifiers and potential integer overflows, which are prevented by the compiler and do not require fixing. The experiment was deemed a waste of time.

In the second experiment, Ondřej asked Claude to write a telemetry system that integrates with various packages and minimizes metadata leaks. Claude Code prepared client prototypes and a szerver, but without a proper understanding of the environment and the issues arising during testing. Additionally, Google Gemini and ChatGPT were involved for verification, and each AI model identified errors in the results produced by the other models.

A gyors prototípus létrehozására a módszer megfelelőnek bizonyult, de Ondřej megjegyezte, hogy a munka során roboturalom titkárának érezte magát. Kezdetben a prototípus gyors megszerzése optimizmust keltett, de a végén az egész AI által irányított fejlesztési folyamat több időt vett igénybe, mint ha manuálisan, nulláról írták volna meg a kódot. Sok időt töltöttek az AI által javasolt megoldás elemzésével, a értelmetlen változtatások ellenőrzésével és újraalkotásával — a prototípust át kellett dolgozni, mivel az AI által generált kód minősége közepes volt, és nagyszámú ismétlődő konstrukciót tartalmazott.

A harmadik kísérlet a Rust nyelvű terheléselosztó generálása volt a Domain és Tokio crate-csomagok használatával. A Claude Code sikeresen generálta a megkért működő prototípust, de Ondřej nem ismeri annyira jól a Rust-ot és a kapcsolódó könyvtárakat, hogy értékelni tudja az elvégzett munka minőségét.

A negyedik kísérlet a Google Gemini-ben a segédanyagok, tesztek és kérdések előkészítésére vonatkozott az előadás tanfolyamához, amelyet Ondřej tanít az egyetemen. Ez a kísérlet a legjobbnak bizonyult, bár problémák nélkül nem ment — az AI kitalált egy nem létező cseh szót a kriptográfiai kifejezéshez. Ezenkívül megemlítésre került, hogy számos tanulmányi munka érkezett hozzá, amelyeket nagy nyelvi modellek generáltak, és ezeket vissza kellett küldeni átdolgozásra az egyetemi szintű munkának való meg nem felelés és a helytelen forrásokra való hivatkozások miatt.

Továbbá említésre méltó egy másik kísérlet, amelyet a Cloudflare mérnöki igazgatója hajtott végre. A Claude Code modell használatával, körülbelül egy hét és 1100 dollár token elköltése után sikerült egy alternatív implementációt előkészíteni a Next.js API keretrendszerhez, amely a Vite eszközkészletéhez készült plugin formájában valósult meg. A projekt elnevezése vinext, és publikálva lett a GitHub-on. Az új implementáció négyszer gyorsabb, mint a Next.js Turbopack használatával végzett összeállítása, és a frontendek számára 57%-kal kevesebb helyet foglal.

A projekt a Next.js tizenhat alapvető API-jának 94%-át valósítja meg, és átlátható helyettesítőként használható a Next.js-hez, valamint a Cloudflare Workers platformon való projektek telepítésére további rétegek, mint például az OpenNext, alkalmazása nélkül, és anélkül, hogy Node.js-hez lenne kötve. A vinext fő célja, hogy lehetővé tegye a Next.js API használatát olyan platformokon, amelyek különböznek a Verceltől, és anélkül, hogy saját szervert kellene telepíteni. Jelenlegi állapotában csak a Cloudflare Workers-t támogatja, és van prototípus a Vercel számára, de a jövőben várhatóan más szerver nélküli számítási platformok támogatása is megvalósul, amelyekkel a Vite együttműködik, beleértve a Netlify-t és az AWS Lambda-t is.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster