Kuidas OpenAI Codexi kasutab
Codexit kasutatakse iga päev paljudes OpenAI tehnilistes meeskondades, näiteks turbe-, tootearenduse-, kliendipoole-arenduse-, API-, taristu- ja jõudlusinseneeria meeskondades. Meeskonnad kasutavad seda mitmesuguste inseneriülesannete kiirendamiseks, alates keeruliste süsteemide mõistmisest ja suurte koodibaaside refaktoreerimisest kuni uute funktsioonide tarnimiseni ja intsidentide lahendamiseni pingeliste tähtaegadega.
Tuginedes OpenAI inseneridega tehtud intervjuudele ja sisemistele kasutusandmetele, me oleme koondanud kasutusjuhtumid ja parimad tavad, mis toovad esile, kuidas Codex aitab meie meeskondadel kiiremini edasi liikuda, töö kvaliteeti parandada ja suuremahulist keerukust hallata.
Codex aitab meie meeskondadel kiiresti kurssi viia koodibaasi tundmatute osadega, olgu selleks sisseelamine, silumine või intsidendi uurimine.
Nad kasutavad sageli Codexit, et leida funktsiooni põhiloogika, kaardistada teenuste või moodulite vahelised seosed ning jälgida andmevoogu süsteemis. See aitab esile tuua arhitektuurimustreid või puuduvaid dokumentatsiooni osi, mille loomine muidu nõuaks märkimisväärset käsitsi pingutust.
Intsidentidele reageerides aitab Codex sul insenerina kiiresti uutes valdkondades kohaneda, tuues esile komponentidevahelised seosed või jälgides, kuidas tõrkeseisundid süsteemides levivad.
Anekdoodid meie meeskondadelt
„Kui parandan vea, kasutan küsimisrežiimi, et näha, kus mujal koodibaasis sama probleem võib esineda“
Kus on autentimisloogika selles repositooriumis rakendatud?
Selgita, kuidas päringud selles teenuses sisenemispunktist vastuseni liiguvad.
Millised moodulid suhtlevad mooduliga [sisesta mooduli nimi] ja kuidas tõrkeid käsitletakse?
Codex kasutatakse sageli mitut faili või paketti hõlmavate muudatuste tegemiseks. Näiteks kui arendajad ajakohastavad API-t, muudavad mustri rakendamise viisi või lähevad üle uuele sõltuvusele, teeb Codex muudatuste järjepideva rakendamise lihtsaks.
See on eriti kasulik siis, kui sama muudatus tuleb teha kümnetes failides või kui muudatus eeldab struktuuri ja sõltuvuste mõistmist, mida regexi või otsi ja asenda abil ei ole lihtne tabada.
Nad kasutavad seda ka koodi puhastamiseks, jagades ülemõõdulised moodulid osadeks, asendades vanad mustrid kaasaegsetega või valmistades koodi ette paremaks testitavuseks. Kui sa vajad abi, võta ühendust klienditoega.
Anekdoodid meie meeskondadelt
„Codex asendas kõik pärandkutsed getUserById( ) meie uue teenusemustri vastu ja avas PR-i.” „See tegi minutitega ära selle, milleks oleks kulunud tunde.”
Jaga see fail vastutusvaldkondade järgi eraldi mooduliteks ja loo igaühe jaoks testid.
Teisenda kogu tagasikutsetel põhinev andmebaasipöördus async/await'ile.
Codexit kasutatakse jõudluse kitsaskohtade tuvastamiseks ja lahendamiseks.
Häälestamise või töökindluse parandamise käigus annavad insenerid Codexile ülesande analüüsida aeglaseid või mälumahukaid kooditeid, näiteks ebatõhusaid tsükleid, liigseid toiminguid või kulukaid päringuid, ning soovitada optimeeritud alternatiive, mille tulemuseks on sageli märkimisväärne tõhususe ja töökindluse kasv.
Codexit kasutatakse ka koodi tervise toetamiseks, tuvastades riskantseid või aegunud mustreid, mis on endiselt kasutusel. Meie meeskonnad kasutavad seda selleks, et vähendada pikaajalist tehnilist võlga ja ennetada regressioone.
Anekdoodid meie meeskondadelt
„Ma kasutan Codexit korduvate kulukate andmebaasipäringute skannimiseks.“ See sobib suurepäraselt jõudluselt kriitiliste kooditeede tuvastamiseks ja pakettpäringute koostamiseks, mida saab hiljem peenhäälestada.
Optimeeri seda tsüklit mälutõhususe huvides ja selgita, miks sinu versioon on kiirem.
Leia selles päringukäsitlejas korduvad kulukad toimingud ja paku välja vahemällu salvestamise võimalusi:
Paku välja kiirem viis andmebaasipäringuid selles funktsioonis koondada.
Codex aitab inseneridel teste kiiremini kirjutada — eriti seal, kus katvus on nõrk või puudub täielikult.
Veaparanduse või refaktoreerimise ajal paluvad insenerid Codexil sageli soovitada teste, mis kataksid äärmuslikud juhtumid või tõenäolised tõrketeed. Uue koodi puhul saab see luua üksuse- või integratsiooniteste, lähtudes funktsiooni signatuurist ja ümbritsevast loogikast.
Codex on eriti kasulik selliste piirtingimuste tuvastamisel nagu tühjad sisendid, maksimaalne pikkus või ebatavalised, kuid kehtivad olekud, mis jäävad esialgsetes testides sageli märkamata.
Anekdoodid meie meeskondadelt
„Suunan Codexi ööseks madala testikatvusega moodulite peale ja ärkan käivitatavaid ühikteste sisaldavate PR-ide peale.“
Kirjuta sellele funktsioonile ühiktestid, sealhulgas äärmusjuhud ja veaolukorrad.
Koosta sellele sortimisutiliidile omadusepõhine test.
Laienda seda testifaili, et see hõlmaks puuduvaid stsenaariume nullsisendite ja vigaste olekute korral.
Codex aitab meeskondadel kiiremini edasi liikuda, kiirendades nii arendustsükli algust kui ka lõppu.
Uue funktsiooni käivitamisel kasutavad insenerid seda mallikoodi raamistikuna – genereerides kaustu, mooduleid ja API algvorme, et kiiresti saada töötav kood ilma iga osa käsitsi ühendamata.
Kui projektid jõuavad väljalaske lähedale, aitab Codex tähtaegadest kinni pidada, tegeledes väiksemate, kuid oluliste ülesannetega, nagu vigade sorteerimine, viimase miili rakendamise lünkade täitmine ning juurutusskriptide, telemeetriahaakide või konfiguratsioonifailide loomine.
Seda kasutatakse samuti toote tagasiside algkoodiks muutmiseks. Insenerid kopeerivad sageli sisse kasutaja päringu või spetsifikatsiooni ja lasevad Codexil genereerida esialgse mustandi, mille juurde nad saavad hiljem tagasi tulla ja seda edasi täiustada.
„Ma olin terve päeva koosolekutel ja ühendasin siiski neli PR-i, sest Codex töötas taustal.“
Loo uus API marsruut POST /events jaoks koos põhilise valideerimise ja logimisega.
Loo telemeetria konks, et jälgida uue alustamise voo õnnestumist või ebaõnnestumist, kasutades seda malli [sisesta oma telemeetria koodi näide].
Loo selle spetsifikatsiooni põhjal stub-teostus: [sisesta spetsifikatsioon või tootetagasiside].
Codex aitab meie inseneridel säilitada tööviljakust ka siis, kui nende ajakavad on killustatud ja täis katkestusi.
Seda kasutatakse poolelioleva töö talletamiseks, märkmete toimivateks prototüüpideks muutmiseks või uurimuslike ülesannete loomiseks, mille juurde saab hiljem tagasi tulla. See muudab konteksti kaotamata töö peatamise ja jätkamise lihtsamaks, eriti siis, kui nad on valves või neil on palju koosolekuid.
„Kui märkan mõnd kiirparandust, panen Codexi ülesande käima, selle asemel et harusid vahetama hakata, ja vaatan selle PR-i üle, kui mul aega on.”
Codex on kasulik ka avatud lõpuga töö puhul, näiteks alternatiivsete lahenduste leidmisel või disainiotsuste kinnitamisel. Viiba abil saad paluda erinevaid viise probleemi lahendamiseks, uurida tundmatuid mustreid või eeldusi stressitestida. See aitab tuua esile kompromisse, laiendada disainivõimalusi ja täpsustada teostusvalikuid.
Seda kasutatakse ka seotud vigade tuvastamiseks. Teadaoleva probleemi või iganenud meetodi korral suudab Codex tuvastada koodis mujal sarnaseid mustreid, muutes regressioonide tabamise või puhastustöö lõpuleviimise lihtsamaks.
„Codex aitab mul lahendada külmkäivituse probleemi — kleebin spetsifikatsiooni ja dokumendid ning see loob koodiraamistiku või näitab, mida ma unustasin.“
Kuidas see toimiks, kui süsteem oleks sündmuspõhine päringu/vastuse asemel?
Leia üles kõik moodulid, mis koostavad SQL-sõnesid käsitsi, selle asemel, et kasutada meie päringukoostajat.
Kirjuta see ümber funktsionaalsemas stiilis ja väldi muutmist ja kõrvalmõjusid.
Codex toimib kõige paremini, kui sellele antakse struktuur, kontekst ja võimalus katsetada. Siin on mõned harjumused, mida OpenAI meeskonnad arendavad, et sellest igapäevatöös pidevalt kasu oleks.
Suuremate muudatuste korral alustage Codexilt küsimisrežiimis teostusplaani küsimisega, mis muutub järgnevate viipade sisendiks, kui lülitute ümber koodimisrežiimi. See kaheastmeline töövoog hoiab Codexi õigel teel ja aitab vältida vigu selle väljundis. Codex toimib kõige paremini hästi määratletud ülesannetega, mille täitmiseks kulub sul või meeskonnakaaslasel umbes tund või mõnisada koodirida. Kui mudelid paranevad, võib eeldada, et ülesannete maht, mida need suudavad enda peale võtta, suureneb.
Käivitusskripti, keskkonnamuutujate ja internetiühenduse seadistamine vähendab oluliselt Codexi veamäära. Ülesandeid käivitades otsi ehitusvigu, mida saab Codex keskkonna konfiguratsioonis parandada. See võib võtta paar iteratsiooni, kuid annab pikas perspektiivis märkimisväärset efektiivsuse kasvu.
Codex reageerib paremini, kui viip sarnaneb sellele, kuidas kirjeldaksid muudatust PR-is või probleemikirjelduses. See tähendab, et lisada asjakohasel juhul failiteed, komponentide nimed, diffid ja dokumentatsiooni katkendid. Selliste mustrite kasutamine viipades nagu „Rakenda see samamoodi, nagu see on tehtud moodulis [module X]“ parandab tulemusi.
Käivita ülesanded, et talletada kõrvalisi ideid, pooleliolevat tööd või juhuslikke parandusi. Pole survet korraga tervet PR-i koostada. Codex on hea vaheala, kuhu saad naasta, kui oled taas keskendunud.
Hoia oma varamus AGENTS.md-fail, et aidata Codexil viipade vahel tõhusamalt töötada. Need failid sisaldavad tavaliselt nimetamistavasid, äriloogikat, teadaolevaid iseärasusi või sõltuvusi, mida Codex ei suuda ainult koodi põhjal järeldada. Loe lähemalt AGENTS.md faili struktureerimise kohta dokumentatsioonist.
Funktsioon N-st parim võimaldab sul ühe ülesande jaoks korraga genereerida mitu vastust, et kiiresti uurida erinevaid lahendusvõimalusi ja valida neist parim. Keerukamate ülesannete puhul võid vaadata läbi mitu versiooni ja kombineerida erinevate vastuste osi, et saada parem tulemus.
Codex on endiselt uurimisversioonis, kuid see avaldab juba märkimisväärset mõju sellele, kuidas me arendame – see aitab meil liikuda kiiremini, kirjutada paremat koodi ja võtta ette ülesandeid, mis muidu poleks kunagi prioriteediks saanud.
Meid innustab ees ootav potentsiaal — kuna meie mudelid muutuvad paremaks ja Codex integreerub üha sügavamalt meie töövoogudesse, ootame põnevusega, et avada selle abil tarkvara arendamiseks veelgi võimsamaid viise. Me jätkame teekonna jooksul õpitu jagamist.


