Pelnas:
- Galimybė atpažinti ir patikrinti, ar dirbtinis intelektas gali sukurti netikras API, nesaugų kodą ir autorių teisių saugomą turinį
- Gebėjimas valdyti dirbtinio intelekto naudojimą šaltinio kodo konfidencialumo, asmens duomenų ir įmonės politikos ribose
- Supratimas, kad galutinė atsakomybė už licencijos laikymąsi, saugumą ir etiką tenka inžinieriui.
Modulio egzaminas
1. Kaip kompiuterių inžinierius, dirbant su AI kodo generavimo įrankiu, galutinė atsakomybė už ką iš toliau nurodytų dalykų visada turėtų tekti žmogui?
- A) Galutinis kodo, pradėto gaminti, teisingumo, saugumo patvirtinimas ir peržiūra bei testavimas ✔
- B) Pirmojo funkcijos kodo skeleto sukūrimas
- C) kintamųjų pavadinimų pasiūlymų sąrašo sudarymas
- D) teksto juodraščio paruošimas kodo komentarams
Aprašymas: AI; Tai gali pagreitinti tokias užduotis kaip kodo skeletas, bandymo juodraštis ir dokumentacija. Tačiau inžinieriaus pareiga yra peržiūrėti, išbandyti ir patvirtinti sugeneruotą kodą, kad įsitikintų, jog jis yra teisingas, saugus ir atitinka reikalavimus, ir pradėti jį gaminti; to negalima perduoti AI be nepriklausomo patikrinimo.
2. AI sukūrė jums funkciją ir atrodo, kad ji veikia laimingu keliu. Koks yra geriausias žingsnis prieš pradedant jį gaminti?
- A) Kadangi atrodo, kad funkcija veikia, įtraukite ją tiesiai į gamybą
- B) Patikrinkite elgseną rašydami ir vykdydami mažų vienetų testus, apimančius kraštutinius atvejus ✔
- C) Tiesiog žiūrint į funkcijos eilučių skaičių
- D) Funkcijos pavadinimo patobulinimas
Paaiškinimas: pasirodyti darbe nereiškia būti teisiam. Rašant ir vykdant mažų vienetų testus, apimančius kraštutinius atvejus, pvz., tuščią įvestį, nulį, neigiamą, labai didelę reikšmę ir neatitikimą, patikrinama tikroji funkcijos elgsena, neperkeliant jos į tiesioginę aplinką.
3. AI pasiūlė metodą, vadinamą „array.sortStable()“, kurio jūsų kalboje nėra, ir jį aiškiai paaiškino. Koks yra pirmasis teisingas veiksmas?
- A) Metodo naudojimas tiesiogiai, nes AI atrodo pasitikintis
- B) Pats apibrėžkite metodą ir tiksliai naudokite jo pavadinimą
- C) Metodo egzistavimo patikrinimas iš oficialių kalbos / bibliotekos dokumentų ✔
- D) Uždarykite kompiliatoriaus įspėjimą ir tęskite
Paaiškinimas: Kalbos modeliai gali sudaryti bibliotekų, paketų ar metodų pavadinimus, kurie iš tikrųjų neegzistuoja (haliucinuoti). Kiekviena siūloma API turėtų būti pažodžiui patikrinta pagal oficialius ir esamus kalbos ar bibliotekos dokumentus; Jei jis neįtrauktas į dokumentą, jis neturėtų būti naudojamas.
4. Norite įklijuoti savo įmonės konfidencialų šaltinio kodą ir įterptąjį API raktą į viešąjį AI įrankį ir paprašyti pagalbos. Kuris metodas yra teisingiausias?
- A) Įklijuokite kodą tokį, koks yra su API raktu, kad padidintumėte greitį
- B) Pakanka tik ištrinti įmonės pavadinimą ir pasidalinti visa kita
- C) Bendrinkite kodą ir paprašykite AI jį ištrinti
- D) Paslapčių ir paslėptos logikos pašalinimas ir problemos sumažinimas iki reprezentatyvaus pavyzdžio arba institucinio įrankio naudojimas ✔
Aprašymas: slaptas šaltinio kodas ir kredencialai (API raktas, slaptažodis, ryšio eilutė); Tai rizikinga įmonės paslapties ir saugumo požiūriu. Būtina pašalinti paslaptis ir paslėptą verslo logiką ir sumažinti problemą iki anoniminio / reprezentatyvaus pavyzdžio arba naudoti įmonės / ne duomenų bendrinimo įrankį.
5. AI pasakė, kad jo parašytos paieškos funkcijos sudėtingumas yra O(n); bet kode yra dvi įdėtos kilpos. Koks yra teisingas inžinerinis elgesys?
- A) Rankiniu būdu išanalizuokite kodą ir patys išskirkite sudėtingumą ir, jei reikia, išmatuokite ✔
- B) Priimkite O(n) ir tęskite, nes AI pasakė
- C) Darant prielaidą, kad ciklų skaičius neturi nieko bendra su našumu
- D) Tiesiog pakeiskite funkcijos pavadinimą
Paaiškinimas: Laiko sudėtingumas (Big-O) rodo, kaip operacijų skaičius didėja didėjant įvesties kiekiui. Dvi įdėtos kilpos paprastai reiškia O(n^2). AI sudėtingumo teiginys turėtų būti patikrintas rankiniu būdu analizuojant kodą ir, jei reikia, išmatuojant padidinant įvestis; Remiantis ieškiniu, daroma klaidinga prielaida apie įvykdymą.
6. AI sugeneruotas kodas, kuris tiesiogiai įterpia vartotojo įvestį į SQL užklausą sujungdamas tekstą. Kokia čia pagrindinė problema ir teisingas sprendimas?
- A) Jokių problemų; teksto sujungimas yra greičiausias būdas
- B) Kyla SQL įpurškimo pavojus; Reikėtų naudoti parametrizuotą užklausą (parengtą teiginį), kuri atskiria įvestį ✔
- C) Užtenka tik konvertuoti užklausą į didžiąsias raides
- D) Užklausą parašę trumpiau, problema bus išspręsta
Aprašymas: vartotojo įvestį įtraukus tiesiai į užklausos tekstą, sukuriamas SQL įterpimo pažeidžiamumas; Užpuolikas gali modifikuoti užklausą naudodamas įvestį. Teisingas sprendimas yra naudoti parametrizuotą užklausą (paruoštą teiginį), kuri atskiria įvestį nuo užklausos teksto. Tai viena iš dažniausiai praleistų saugos klaidų AI kode.
7. Turite ribotą laiką peržiūrėdami AI sukurtą kodo dalį. Kurioms problemoms geriausia teikti pirmenybę?
- A) Tik formato detalės, tokios kaip įtrauka ir tarpai
- B) Tik kintamųjų pavadinimų ilgis
- C) Loginis teisingumas, pažeidžiamumas ir elgsena kraštutiniais atvejais ✔
- D) Tik visas failo eilučių skaičius
Aprašymas: Didžiausia rizika peržiūrint kodą; Tai yra rimtą žalą sukeliančios problemos, pvz., loginės klaidos, saugumo spragos ir konfidencialios informacijos nutekėjimas. Formato ir stiliaus problemos sprendžiamos automatiniais įrankiais; Pagrindinis žmogaus dėmesys turėtų būti skiriamas tikslumui, saugumui ir elgesiui.
8. Norite, kad AI išspręstų klaidą. Kuris įvestis geriausiai padėtų AI rasti pagrindinę priežastį?
- A) Tiesiog pasakyk „kodas neveikia, pataisykite“
- B) Tiesiog nurodykite failo pavadinimą
- C) Tiesiog pasakykite laukiamą rezultatą, be klaidos teksto
- D) Pateikite visą klaidos pranešimą, dėklo pėdsaką, atitinkamą kodą ir minimalaus atkūrimo pavyzdį ✔
Paaiškinimas: norint veiksmingai derinti, būtina AI pateikti visą klaidos pranešimą, dėklo pėdsaką, atitinkamą kodo fragmentą ir mažiausią atkuriamą pavyzdį, kuris sukelia klaidą. Neaiškus teiginys „neveikia“ verčia dirbtinį intelektą spėlioti ir pateikti bendras rekomendacijas.
9. Visi DI atlikti vienetų testai praeina pirmuoju paleidimu. Kokios rizikos šioje situacijoje nereikėtų ignoruoti?
- A) Testai gali patvirtinti esamą kodo būseną, bet ne faktinį / numatomą elgesį ✔
- B) Kode visiškai nėra klaidų, nes visi testai buvo išlaikyti
- C) Kokybė garantuojama, jei bandymų skaičius yra didelis
- D) Testo išlaikymas įrodo, kad aprėptis baigta
Paaiškinimas: Testai gali patvirtinti esamą (galbūt klaidingą) kodo elgseną, o ne jo numatytą elgesį; arba jame gali nebūti jokio prasmingo tvirtinimo ir jis visada yra perduodamas. Norint pamatyti, kad testai tikrina tikruosius lūkesčius, būtina sąmoningai sulaužyti kodą ir patvirtinti, kad testas nusidažo raudonai.
10. AI sukūrė jums paruoštą kodo bloką problemai spręsti. Įtariate, kad kodas galėjo būti nukopijuotas pažodžiui iš atvirojo kodo projekto. Kuris yra teisingas požiūris?
- A) Licencijos naudojimas negalvojant, nes kodas veikia
- B) Kodo šaltinio / licencijos patikrinimas, jei reikia, perrašymas ir įmonės politikos laikymasis ✔
- C) Tiesiog pakeiskite kintamųjų pavadinimus ir apsvarstykite, kaip problema išspręsta
- D) Darant prielaidą, kad licencijavimas taikomas tik didelėms įmonėms
Aprašymas: AI gali pažodžiui atkurti autorių teisių saugomą / licencijuotą kodą mokymo duomenyse. Licencijos pažeidimas komerciniame gaminyje kelia rimtą teisinę riziką. Būtina patikrinti kodo šaltinį ir licenciją, prireikus perrašyti savais žodžiais ir laikytis įstaigos licencijavimo politikos.
11. AI pasiūlė nedelsiant savo projektui pereiti prie mikro paslaugų architektūros. Koks yra tinkamiausias inžinerinis požiūris vertinant šį pasiūlymą?
- A) Nedelsdami padalinkite visą sistemą į mikropaslaugas, nes AI siūlo
- B) Darant prielaidą, kad mikro paslauga visada yra geriausias pasirinkimas
- C) Įvertinkite pasiūlymą pagal realų poreikį, krūvį, komandos struktūrą ir plius-minus balansą ✔
- D) Sprendimo priėmimas remiantis tik architektūros populiarumu
Paaiškinimas: Architektūriniai sprendimai priklauso nuo konteksto; Mikropaslaugos suteikia papildomos vertės tokiems poreikiams kaip masto ir komandos atskyrimas, tačiau patiriamos išlaidos, tokios kaip veiklos sudėtingumas, paskirstytas derinimas ir išlaidos. Pasiūlymą vertinti pagal faktinį poreikį, krūvį, komandos struktūrą bei pliusų ir minusų balansą; Bendrųjų patarimų nereikėtų aklai laikytis.
12. AI sukūrė supaprastintą README ir API dokumentaciją jūsų kodui; bet kai kurie galiniai taškai ir parametrai kode nesutampa. Koks yra teisingas elgesys?
- A) Paskelbkite dokumentą tokį, koks jis yra, nes tekstas sklandus
- B) Tiesiog pataisykite pavadinimą, o likusią dalį palikite taip, kaip yra
- C) Dokumento įtraukimas į sandėlį jo neskaitant
- D) Palyginkite kiekvieną galinį tašką ir parametrą su tikruoju kodu ir pataisykite visus, kurie neatitinka ✔
Aprašymas: dokumentai turi tiksliai atspindėti tikrąjį kodą; Netinkamas dokumentas verčia jį perskaitytus kūrėjus jį naudoti neteisingai. Kiekvienas galutinis taškas, parametras ir grąžinimo reikšmė turi būti patikrinta pagal tikrąjį kodą ir visi neatitikimai turi būti ištaisyti.
13. Kuris įvesties metodas tinka aukščiausios kokybės išvestiei, kai prašoma kodo iš AI?
- A) Aiškiai nurodykite kalbą / versiją, įvesties-išvesties sutartį, apribojimus ir klaidų situacijas ✔
- B) Tiesiog pasakyk „parašyk man darbo kodą“
- C) Parašykite trumpiausią užklausą, nepateikdami jokio konteksto
- D) Tiesiog nurodykite, kiek kodo eilučių bus
Aprašymas: Galingas raginimas; Tai apima naudojamą kalbą ir versiją, įvesties-išvesties sutartį, našumo ir stiliaus apribojimus, klaidų sąlygas ir nurodymą „likti tik reikalaujamoje srityje“. Be konteksto užklausa „parašyti man funkciją“ yra bendra ir dažnai sukuria netinkamą kodą.
14. AI sugeneravo jūsų CI/CD (nuolatinio integravimo/diegimo) konfigūraciją ir į jį įterpė duomenų bazės slaptažodį paprastu tekstu. Kuris yra teisingas pataisymas?
- A) Slaptažodį palikite kaip paprastą tekstą, nes jis veikia
- B) Paslapčių perkėlimas naudojant aplinkos kintamąjį arba paslapčių valdymo įrankį, nededant paprasto teksto į saugyklą ✔
- C) Perkelkite slaptažodį tik į komentaro eilutę
- D) Pakeitus failo pavadinimą, problema išspręsta
Paaiškinimas: Įrašant paslaptis, pvz., slaptažodžius ir raktus, paprastu tekstu į konfigūracijos failą kyla versijos valdymo nutekėjimo ir neteisėtos prieigos rizika. Paslaptys; Jį turėtų saugoti aplinkos kintamieji arba specialus paslapčių tvarkytuvas, ir jis niekada neturėtų patekti į saugyklą paprastu tekstu.