Egység 2 / 12

Szkriptelés és automatikus kiegészítés

Nyereség:

  • Lehetőség a csevegési mód megfelelő feladattípushoz való leképezésére soron belüli befejezéssel
  • Képes hatékony termelési promptokat írni, amelyek tartalmazzák a bemeneti/kimeneti szerződéseket, az éles eseteket és a stíluskorlátozásokat
  • Lehetőség a generált kód és az új javasolt függőségek ellenőrzésére az összevonás előtt

A fejlesztő első kapcsolati pontja az MI-vel gyakran az automatikus kiegészítés – egy olyan funkció, amely a következő sort javasolja gépelés közben – vagy azt mondja, hogy „írja be azt a funkciót” egy csevegőablakba. Mindkettő ugyanazt a motort használja, de eltérő tudományokat igényel. Ebben az egységben a kódgenerálást egy véletlenszerű "leírásból" alakítjuk át egy olyan tervezési lépéssé, amelynek kimenete megjósolható és ellenőrizhető.

A cél az, hogy a mesterséges intelligencia egy olyan eszközből, amely felgyorsítja a gépelést, olyan tanulóvá váljon, amely az Ön által meghatározott korlátok között dolgozik. A jól irányított gyakornok időt takarít meg; Egy irányítatlan tanítvány rendetlenséget hoz létre, amelyet később el kell takarítania.

Két használati mód: soron belüli kiegészítés és csevegés

A szövegközi kiegészítés a szerkesztőbe való gépelés közben jön szóba; Beír egy függvényaláírást vagy egy megjegyzéssort, és az javasolja a többit. Sebesség szempontjából remek, de szűk kontextusa van: csak a közvetlen környezetében látja a kódot. Ezért működik a legjobban, ha kommentben egyértelműen leírod szándékodat. Például a //validate felhasználói e-mail, dobja a ValidationError parancsot, ha az érvénytelen megjegyzés jelentősen javítja az alábbi javaslatot.

A csevegési mód nagyobb és strukturált feladatokhoz való: "Oldalszám hozzáadása ehhez az osztályhoz", "Az adott szolgáltatás felületének kibontása". Itt megvan a luxus, hogy szerepet, kontextust és formát adjon. Az általános szabály: kis és gördülékeny feladatoknál befejezés, gondolkodást, strukturált feladatoknál beszélgetés.

Tipp: Ne fogadja el vakon a „Tab” billentyűvel történő kiegészítési javaslatot. Olvassa el a javasolt sort egy másodpercig; Leggyakrabban egy helytelen változónév vagy egy fordított feltétel szivárog ki innen.

A szándék kódra fordításának lépései

  1. Határozza meg a szerződést. Mi a függvény bemeneti, kimeneti és hibaviselkedése? Például: "Get email, normalize if valid, throw error if invalid".
  2. Mondja el a korlátokat. Nem használ külső függőséget? Konkrét stíluskalauz? Van teljesítménykorlát?
  3. Mondj egy példát. Egy bemenet-kimenet pár („ali@x.com → érvényes, ali@ → hiba”) a modell szándékfelfogását az előrejelzéstől a pontosság felé mozgatja.
  4. Kérjen apró darabokat. Egy funkció, egy felelősség. Ezután lépjen a következőre.
  5. Olvassa el és futtassa a generált kódot. A fordítás + egy gyors kézi próbálkozás a legolcsóbb biztosítási lépés.

Három mini tok

1. eset – A megjegyzésvezérelt gyártás növeli a pontosságot. Egy fejlesztő először egy dátumelemző függvényt kért üres törzstel, és 3 körben megkapta a helyes eredményt. A második próbálkozásnál, amikor egy 4 soros megjegyzéssel (elfogadott formátumok, időzóna szabály, hibafeltétel) definiáltam a függvényt és lekértem, jött az első körben működő kód. Ugyanaz a modell, ugyanaz a nap; a különbség csak a szándék egyértelműsége volt.

2. eset – A verzió megadása költséges. Az egyik csapat küzdött a régi visszahívás-alapú API-val, amely felváltotta az fs.promises fájlt a Node.js számára készített kódban. Amikor a "20-as csomópont használata, ESM, async/wait" sort hozzáadtuk a prompthoz, a termelés először követte a projektet; A korrekcióra fordított átlagos 12 perc visszaállításra került.

3. eset – Valódi nyereség az alapkódban. Egy mikroszolgáltatáshoz 6 új DTO-ra (Data Transfer Object – egy egyszerű adatosztályra, amely rétegek között adatokat szállít) és ezek érvényesítési szabályaira volt szükség. A korábban hozzávetőlegesen 90 perces kézi munka időtartama 35 percre csökkent, amikor az MI elkészítette és felülvizsgálta; Mivel a kód ismétlődése magas és a minta egyértelmű, az AI itt a leghatékonyabb területen dolgozott.

Négy másolható sablon

Szerződés alapú függvénygenerálás:

Szerep: Ön egy szorgalmas {{nyelv}} fejlesztő.Funkciószerződés:- Név: {{név}}- Bemenet: {{típusok és jelentésük}}- Kimenet: {{típus és jelentés}}- Hibaállapot: {{mi kerül kidobásra/visszaadáskor}}Korlátozások: {{nincs külső függőség / stílus_ / teljesítmény}}}Példa: {{output_1}}- {{entry_2}} -> {{error_2}}Először adjon aláírást + rövid tervet, majd kódot. Tesztírás, csak funkció.

A meglévő stílushoz igazítás (igazítás a kódalaphoz):

Az alábbiakban egy példa funkció a projektünkből; Tanulja meg az elnevezést, a hibakezelést és a megjegyzések stílusát itt. Írjon függvényt az {{új_feladat}} számára UGYANAZON stílussal. Példa: {{current_code}}

A csontváztól a töltésig (csonk → megvalósítás):

Töltse ki az alábbi függvényvázlatot a megjegyzésekben szereplő TODO-k szerint. MÓDOSÍTSA MEG az aláírást és a visszaküldés típusát. Ne csinálj olyan segítő függvényt, ami nem létezik; ha kell, jelezd, hogy "szükség van erre a segítőre". {{skelet_kod}}

Alternatív alkalmazások összehasonlítása:

Adjon meg 2 különböző megvalósítást a {{feladat}} számára: (a) az olvashatóság prioritása, (b) a teljesítmény prioritása. Mindegyik alá írjon 1 mondatot, hogy "mikor érdemesebb".

Gyenge felszólítás / Erős felszólítás

Gyenge: "Írjon nekem egy e-mail-ellenőrző funkciót."
Erős: "TypeScript 5, csak szabványos könyvtár. Írja be az isValidEmail(bemenet: string): logikai értéket. Vágja le a szóközöket, tegye különbséget a kis- és nagybetűk között, az a@b.co érvényes, a@, @b.co, az üres karakterlánc érvénytelen. Ha regex-et akar használni, ne legyen túl bonyolult; adjon hozzá 2 sornyi megjegyzést."

Erőteljes változat; Visszaadja a nyelvet, a verziót, az aláírást, az éles eseteket és a stíluskényszert. Így a generált kód működik és illeszkedik a projektbe.

Megközelítés

Mikor kell használni

Figyelem

Soron belüli kiegészítés

Kis betétek áramlásban

Ne fogadja el a javaslatot anélkül, hogy elolvasná

Szerződés alapú gyártás chatben

Új funkció/osztály

Adjon példát és éles esetet!

Gyártás stílusminta szerint

Hozzáadás a meglévő kódhoz

Válassza ki az aktuális mintakódot

csontváz töltelék

Az aláírás javítva, a törzs üres

Az aláírás megváltoztatása

Kódduplikáció és a függőségi csapda

Az AI gyakran új könyvtárat javasol, hogy megkönnyítse a munkáját. Néha ez pontos, néha szükségtelen függőséget ad a projekthez, vagy olyan csomagot javasol, amely nem létezik (hallucináció). Szabály: minden új függőséget megerősít. Ne adja hozzá a projekthez anélkül, hogy ellenőrizné, hogy a csomag valóban létezik, karban van-e, és rendelkezik-e a megfelelő licenccel. Legtöbbször jobb egy segítő, aki már részt vesz a projektben, mint egy új csomag.

Figyelem: Tekintse át az AI által javasolt importvonalakat. A nem létező csomagnév (amely hamis csomagokra is hasonlíthat, az úgynevezett "typo-squatting") megszakítja a fordítást, és biztonsági kockázatot is jelent.

Gyakori hibák

  • A modell által meghatározott aláírással. Ha nem javítja ki a bemeneti/kimeneti típusokat, minden egyes termeléshez más aláírás érkezik, és az integráció megnehezül.
  • Az éles esetekről nem is beszélve. Üres bemenet, nulla, negatív szám, nagyon nagy érték – ha ezeket nem adjuk meg, a modell a „boldog utat” írja ki, kihagyva az éleket.
  • A javaslat kombinálása tesztelés nélkül. A kód, amelyik működik, nem jelenti azt, hogy működik.
  • A szükségtelen függőség elfogadása. Egy teljes könyvtár hozzáadása egy egysoroshoz technikai adósságot eredményez.
  • A stílus inkonzisztenciája. A projekt többi részétől eltérő elnevezés és hibakezelés a kódbázist foltossá teszi.

Összefoglalva

A kódgenerálás hatékony, ha a szándékot egyértelmű szerződéssé alakítja. Használja a soron belüli kiegészítést kis, adatfolyamba ágyazott feladatokhoz, valamint olyan feladatokhoz, amelyek struktúrát alakítanak ki a beszélgetésben. Megadhatja a bemeneti/kimeneti típusokat, az éles eseteket, a verziót és a stílust; Adjon példát a modellre; minden új függőséget ellenőrizni; és fuss és olvass el minden elkészített darabot. A mesterséges intelligencia legjobban a képlet, ismétlődő kódban kifizetődő – futtassa ott, a beállított határokon belül.

Pályázati feladat

Válasszon ki egy tényleges kis függvényt a projektből, amelyet meg kell írnia. Először nyomtassa ki az AI-ba a „szerződésalapú függvénygenerálás” sablonnal, amely bemeneti/kimeneti típusokat, két szélső esetet és egy stíluskorlátozást ad meg. Fordítsa le a generált kódot, és próbálja ki két különböző bemenettel. Ezután kérdezze meg újra ugyanazt a függvényt, ezúttal „írja meg ezt” minden kontextus nélkül, és hasonlítsa össze soronként a két kimenetet: melyik éleset hiányzott, hány javításra volt szükség?

ellenőrző lista

  • [ ] Tudom, hol kell használni a csevegési módot soron belüli kiegészítéssel.
  • [ ] Meghatározom a bemeneti/kimeneti szerződést és az éleseteket a függvénygenerálás során.
  • [ ] Szokásommá vált, hogy nyelvi és verzióinformációkat adjak a prompthoz.
  • [ ] Minden legyártott darabot összeállítok és tesztelek összeszerelés előtt.
  • [ ] Megerősítem az AI által javasolt minden új függőséget annak létezésének és szükségességének igazolásával.
  • [ ] Ellenőrzöm, hogy a generált kód megfelel-e a projekt stílusának.