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

Ondřej Surý, direktør for DNS-ingeniørarbejde hos ISC og tidligere skaber af CZ.NIC Labs, som udvikler DNS-serveren Knot, opsummerede eksperimenterne med store sprogmodellers brug til analyse, reparation og modernisering af kodebasen til DNS-serveren BIND 9, oprettelse af prototyper af nye projekter og forberedelse af materiale til undervisning af studerende. Indtrykkene fra brugen af AI gav anledning til, at store sprogmodeller er velegnede til hurtig prototyping, forståelse af ukendt kode og automatisering af simple rutineopgaver, men ved brug til løsning af større opgaver er det tvivlsomt, om de sparer tid, da der går meget tid med at definere opgaven, studere og verificere resultatet samt efterfølgende forbedring.

I det første eksperiment blev AI-assistenten Claude Code bedt om at opdage problemer i kodebasen til DNS-serveren BIND 9 med fokus på sikkerhedsproblemer og kodemodernisering. Ingen af de foreslåede rettelser blev accepteret i kodebasen, da Claude genererede teknisk korrekt, men praktisk set ubrugelig kode. For eksempel blev der påpeget problemer med reserverede identifikatorer og potentielle heltalsoverløb, som blev forhindret af compileren og ikke krævede rettelse. Eksperimentet blev anset for en nytteløs spild af tid.

I det andet eksperiment bad Ondřej Claude om at skrive et telemetri-system integreret med forskellige pakker og minimere lækager af metadata. Claude Code forberedte prototyper af klienten og server, men uden tilstrækkelig forståelse af miljøet og de problemer, der opstod under testningen. Derudover blev Google Gemini og ChatGPT involveret i evalueringen, og hver AI-model fandt fejl i resultaterne fra de andre modeller.

Metoden viste sig at være nyttig til hurtig prototyping, men Ondřej bemærkede, at han følte sig som robotens sekretær under arbejdet. I starten gav den hurtige prototyping optimismen, men til sidst opstod der en følelse af, at hele udviklingsprocessen med AI tog længere tid end manuelt at skrive koden fra bunden. Meget tid blev brugt på at forstå den løsning, AI foreslog, kontrollere for meningsløse ændringer og revidere — prototypen måtte omarbejdes, da kvaliteten af koden efter AI var middelmådig, og koden indeholdt mange gentagne konstruktioner.

Det tredje eksperiment var at generere en belastningsbalanceret i Rust ved hjælp af crate-pakkerne Domain og Tokio. Claude Code kunne generere den anmodede fungerende prototype, men Ondřej kender ikke Rust og de involverede biblioteker godt nok til at vurdere kvaliteten af arbejdet.

Det fjerde eksperiment handlede om at forberede støttematerialer, test og spørgsmål til et kursus, som Ondřej underviser på universitetet, i Google Gemini. Dette eksperiment blev anset for det mest succesfulde, selvom der opstod problemer — AI opfandt et ikke-eksisterende tjekkisk ord for en kryptografiterm. Der blev også bemærket en overflod af studenterarbejde, genereret af store sprogmodeller, som måtte returneres til omarbejdning på grund af manglende overensstemmelse med universitetets niveau og henvisninger til ukorrekte kilder.

Der kan desuden nævnes et andet eksperiment, udført af ingeniørdirektøren for Cloudflare. Ved hjælp af modellen Claude Code, brugte han cirka en uge og 1100 dollars på tokens til at forberede en alternativ implementering af API-rammen Next.js, præsenteret som et plugin til Vite-værktøjet. Projektet fik navnet vinext og blev offentliggjort på GitHub. Den nye implementering er fire gange hurtigere end at bygge Next.js med Turbopack og genererer bundter til frontend, der optager 57% mindre plads.

Projektet implementerer 94% af de seksten grundlæggende Next.js API'er og kan bruges som en gennemsigtig erstatning for Next.js samt til implementering af projekter på Cloudflare Workers uden brug af yderligere lag som OpenNext og uden binding til Node.js. Den primære funktion af vinext er at give mulighed for at bruge Next.js API'er på platforme, der ikke er Vercel, og uden at skulle implementere en egen server. I sin nuværende form understøttes kun Cloudflare Workers, og der findes en prototype til Vercel, men i fremtiden forventes der support for flere serverløse compute-platforme, som Vite kan arbejde med, inklusive Netlify og AWS Lambda.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster