Oor die afgelope twee jaar het ek en my span by Work & Co KI-koderingsinstrumente soos Copilot, Cursor, Claude en ChatGPT getoets en geleidelik geïntegreer om ons te help om webervarings te stuur wat deur die massa gebruik word. Weliswaar, na 'n paar aanvanklike skeptisisme en 'n paar aha-oomblikke, het verskeie KI-instrumente hul weg gevind in my daaglikse gebruik. Met verloop van tyd het die lys van toepassings waar ons gevind het dit sinvol gemaak het om KI te laat oorneem, begin groei, so ek het besluit om 'n paar praktiese gebruiksgevalle vir KI-nutsgoed te deel vir wat ek die "verantwoordelike ontwikkelaar" noem. Wat bedoel ek met 'n verantwoordelike ontwikkelaar? Ons moet seker maak dat ons kwaliteitkode lewer soos wat ons belanghebbendes en kliënte verwag. Ons bydraes (d.w.s. trekversoeke) behoort nie 'n las op ons kollegas te word wat ons werk sal moet hersien en toets nie. Ook, as jy vir 'n maatskappy werk: Die gereedskap wat ons gebruik moet deur ons werkgewer goedgekeur word. Sensitiewe aspekte soos sekuriteit en privaatheid moet behoorlik hanteer word: Moenie geheime, kliëntdata (PII) of eie kode in nutsgoed plak sonder beleidsgoedkeuring nie. Behandel dit soos kode van 'n vreemdeling op die internet. Toets en verifieer altyd. Let wel: Hierdie artikel veronderstel 'n baie basiese vertroudheid met AI-koderingsinstrumente soos Copilot binne VSCode of Cursor. As dit alles vir jou heeltemal nuut en onbekend klink, kan die Github Copilot-video-tutoriale 'n fantastiese beginpunt vir jou wees.
Nuttige toepassings van AI-koderingsinstrumente Let wel: Die volgende voorbeelde sal hoofsaaklik fokus op werk in JavaScript-gebaseerde webtoepassings soos React, Vue, Svelte of Angular. Kry 'n begrip van 'n onbekende kodebasis Dit is nie ongewoon om aan gevestigde kodebasisse te werk nie, en om by 'n groot erfeniskodebasis aan te sluit kan intimiderend wees. Maak eenvoudig jou projek en jou KI-agent oop (in my geval, Copilot Chat in VSCode) en begin vrae vra net soos jy 'n kollega sou vra. Oor die algemeen hou ek daarvan om met enige KI-agent te praat net soos ek met 'n medemens sou wou. Hier is 'n meer verfynde voorbeeldopdrag: “Give me a high-level architecture overview: entrypoints, routing, auth, data layer, build tooling. Then list 5 files to read in order. Treat explanations as hypotheses and confirm by jumping to referenced files.”
Jy kan aanhou om opvolgvrae te vra soos "Hoe werk die roetering in detail?" of "Praat my deur die verifikasieproses en -metodes" en dit sal jou lei na nuttige aanwysings om lig te laat skyn in die donker van 'n onbekende kodebasis. Verander veranderinge tydens die opgradering van afhanklikhede Die opdatering van npm-pakkette, veral wanneer dit met breekveranderinge kom, kan vervelige en tydrowende werk wees, en maak dat jy 'n redelike hoeveelheid regressies ontfout. Ek moes onlangs die datavisualiseringsbiblioteek plotly.js een groot weergawe van weergawe 2 na 3 opgradeer, en as gevolg daarvan het die as-etikettering in sommige van die grafieke opgehou werk. Ek het verder vir ChatGPT gevra: "Ek het my Angular-projek opgedateer wat Plotly gebruik. Ek het die plotly.js - dist-pakket vanaf weergawe 2.35.2 na 3.1.0 - opgedateer en nou is die etikette op die x- en y-as weg. Wat het gebeur?"
Die agent het dadelik met 'n oplossing teruggekom (sien self hieronder). Let wel: Ek het steeds die verduideliking teen die amptelike migrasiegids geverifieer voordat ek die oplossing gestuur het.
Herhaal Refaktore veilig oor lêers Groeiende kodebasisse onthul beslis geleenthede vir kodekonsolidasie. Byvoorbeeld, jy sien kode duplisering oor lêers wat in 'n enkele funksie of komponent onttrek kan word. As gevolg hiervan besluit jy om 'n gedeelde komponent te skep wat in plaas daarvan ingesluit kan word en die herfaktor in een lêer uit te voer. Nou, in plaas daarvan om daardie veranderinge met die hand aan jou oorblywende lêers uit te voer, vra jy jou agent om die refaktor vir jou uit te rol. Agente laat jou verskeie lêers as konteks kies. Sodra die herfaktor vir een lêer klaar is, kan ek beide die herfaktore en onaangeraakte lêers in konteks byvoeg en die agent vra om die veranderinge na ander lêers soos volg uit te rol: "Repliseer die veranderinge wat ek in lêer A gemaak het ook na lêer B". Implementering van kenmerke in onbekende tegnologieë Een van my gunsteling aha-oomblikke met behulp van AI-koderingsinstrumente was toe dit my gehelp het om 'n redelik komplekse geanimeerde gradiënt-animasie in GLSL te skep, 'n taal waarmee ek nogal onbekend was. Op 'n onlangse projek het ons ontwerpers met 'n geanimeerde gradiënt vorendag gekom as 'n laaitoestand op 'n 3D-voorwerp. Ek het baie van die konsep gehou en wou iets uniek en opwindend aan ons kliënte lewer. Dieprobleem: Ek het net twee dae gehad om dit te implementeer, en GLSL het nogal die steil leerkurwe. Weereens, 'n KI-instrument (in hierdie geval, ChatGPT) het handig te pas gekom, en ek het dit eenvoudig begin vra om 'n selfstandige HTML-lêer vir my te skep wat 'n doek en 'n baie eenvoudige geanimeerde kleurgradiënt weergee. Stap vir stap het ek die KI aangespoor om meer finesse daaraan toe te voeg totdat ek by 'n ordentlike resultaat uitgekom het sodat ek die skakering in my werklike kodebasis kon begin integreer. Die eindresultaat: Ons kliënte was baie gelukkig, en ons het 'n komplekse kenmerk in 'n kort tydjie gelewer danksy KI. Skryf van toetse Volgens my ervaring is daar selde genoeg tyd aan projekte om voortdurend 'n behoorlike reeks eenheid- en integrasietoetse te skryf en in stand te hou, en boonop geniet baie ontwikkelaars nie regtig die taak om toetse te skryf nie. Om jou KI-helper te vra om toetse vir jou op te stel en te skryf, is heeltemal moontlik en kan binne 'n kort tydjie gedoen word. Natuurlik moet jy as ontwikkelaar steeds seker maak dat jou toetse werklik na die kritieke dele van jou toepassing kyk en sinvolle toetsbeginsels volg, maar jy kan die skryf van die toetse aan ons KI-helper “uitkontrakteer”. Voorbeeld opdrag: "Skryf eenheidstoetse vir hierdie funksie met behulp van Jest. Dek gelukkige pad, randgevalle en mislukkingsmodusse. Verduidelik hoekom elke toets bestaan."
Jy kan selfs die toetsghoeroe Kent C. Dodds se toetspraktyke as riglyne aan jou agent deurgee, soos hieronder:
Interne gereedskap Ietwat soortgelyk aan die shader-voorbeeld wat vroeër genoem is, het ek onlangs die taak gekry om kodeduplisering in 'n kodebasis te ontleed en voor en na 'n herfaktor te vergelyk. Beslis nie 'n onbenullige taak as jy nie die tydrowende roete wil volg om lêers met die hand te vergelyk nie. Met die hulp van Copilot het ek 'n skrip geskep wat kodeduplisering vir my ontleed het, die uitvoer in 'n tabel gerangskik en gerangskik het en dit na Excel uitgevoer het. Toe neem ek dit 'n stap verder. Toe ons kode-refaktor klaar was, het ek die agent gevra om my bestaande Excel-blad as die basislyn te neem, die huidige toestand van duplisering in aparte kolomme by te voeg en die delta te bereken. Opdatering van kode wat lank gelede geskryf is Onlangs het 'n ou kliënt van my my getref, want met verloop van tyd het 'n paar funksies nie meer behoorlik op sy webwerf gewerk nie. Die vangplek: Die webwerf is amper tien jaar gelede gebou, en die JavaScript en SCSS het nogal ou samestellingsnutsmiddels soos requireJS gebruik, en die opstelling het 'n ouer weergawe van Node.js vereis wat nie eers op my 2025 MacBook sou werk nie. Om die hele bouproses met die hand by te werk sou my dae geneem het, so ek het besluit om die KI-agent te vra: "Kan jy die JS- en SCSS-bouproses opdateer na 'n skraal 2025-stapel soos Vite?" Dit het sekerlik gedoen, en na ongeveer 'n uur se verfyn met die agent, het ek my SCSS- en JS-bou na Vite laat oorskakel, en ek kon fokus op die werklike foutoplossing. Maak net seker dat u die uitvoer en saamgestelde lêers behoorlik bekragtig wanneer u sulke integrale veranderinge aan u bouproses doen. Opsomming En Opstel Wil jy al jou onlangse kodeveranderings in een sin opsom vir 'n commit-boodskap, of 'n lang lys commits hê en wil dit graag in drie kolpunte opsom? Geen probleem nie, laat die KI daarvoor sorg, maar maak asseblief seker dat u dit proeflees. 'n Voorbeeldopdrag is so eenvoudig soos om 'n medemens boodskap te stuur: "Som asseblief my onlangse veranderinge in bondige kolpunte op". My raad hier sal wees om GPT te gebruik om met omsigtigheid te skryf, en soos met kode, gaan asseblief die afvoer na voordat u dit stuur of indien. Aanbevelings en beste praktyke Prompting Een van die nie-so-vanselfsprekende voordele van die gebruik van KI is dat hoe meer spesifiek en pasgemaak jou opdragte is, hoe beter is die uitset. Die proses om 'n KI-agent aan te spoor dwing ons om ons vereistes so spesifiek moontlik te formuleer voordat ons skryf en kodeer. Dit is hoekom ek, as 'n algemene reël, sterk aanbeveel om so spesifiek as moontlik te wees met jou aansporing. Ryan Florence, mede-outeur van Remix, stel 'n eenvoudige dog kragtige manier voor om hierdie proses te verbeter deur jou aanvanklike opdrag met die sin af te handel: "Voor ons begin, het jy enige vrae vir my?"
Op hierdie stadium kom die KI gewoonlik terug met nuttige vrae waar jy jou spesifieke voorneme kan verduidelik, wat die agent lei om jou 'n meer pasgemaakte benadering vir jou taak te gee.
Gebruik weergawebeheer en werk in verteerbare stukke Die gebruik van weergawebeheer soos git is nie net handig wanneer u as 'n span op 'n enkele kodebasis saamwerk nie, maar ook om u as 'nindividuele bydraer met stabiele punte om na terug te rol in geval van 'n noodgeval. As gevolg van die nie-deterministiese aard daarvan, kan KI soms skelm raak en veranderinge aanbring wat eenvoudig nie nuttig is vir wat jy probeer bereik nie en uiteindelik dinge onherstelbaar breek. Deur jou werk in veelvuldige verbintenisse op te deel, sal dit jou help om stabiele punte te skep waarna jy kan terugkeer as dinge sywaarts gaan. En jou spanmaats sal jou ook bedank, want hulle sal 'n makliker tyd hê om jou kode te hersien wanneer dit in semanties goed gestruktureerde stukke opgedeel word. Hersien deeglik Dit is meer 'n algemene beste praktyk, maar na my mening word dit selfs belangriker wanneer KI-nutsmiddels vir ontwikkelingswerk gebruik word: Wees die eerste kritiese beoordelaar van jou kode. Maak seker dat jy 'n rukkie neem om reël vir reël oor jou veranderinge te gaan, net soos jy iemand anders se kode sou hersien, en dien eers jou werk in sodra dit jou eie selfhersiening geslaag het. "Twee dinge is albei waar vir my op die oomblik: KI-agente is wonderlik en 'n groot produktiwiteit-hupstoot. Hulle is ook massiewe slopmasjiene as jy jou brein afskakel en heeltemal los. "- Armin Ronacher in sy blogpos Agent Psychosis: Are We Going Insane?
Gevolgtrekking En Kritiese Gedagtes Na my mening kan KI-koderingsinstrumente ons produktiwiteit as ontwikkelaars op 'n daaglikse basis verbeter en verstandelike kapasiteit vrymaak vir meer beplanning en hoëvlakdenke. Hulle dwing ons om ons gewenste uitkoms met noukeurige detail te verwoord. Enige KI kan soms hallusineer, wat basies beteken dit lê in 'n selfversekerde toon. Maak dus seker dat u dit nagaan en toets, veral as u twyfel. AI is not a silver bullet, and I believe, excellence and the ability to solve problems as a developer will never go out of fashion. Vir ontwikkelaars wat pas in hul loopbaan begin, kan hierdie instrumente baie aanloklik wees om die meeste van die werk vir hulle te doen. Wat hier dalk verlore kan gaan, is die dikwels dreinerende en pynlike werk deur foute en kwessies wat moeilik is om te ontfout en op te los, oftewel “the grind”. Selfs Cursor AI se eie Lee Robinson bevraagteken dit in een van sy plasings:
KI-koderingsinstrumente ontwikkel teen 'n vinnige pas, en ek is opgewonde oor wat volgende gaan kom. Ek hoop jy het hierdie artikel en sy wenke nuttig gevind en is opgewonde om sommige hiervan vir jouself te probeer.