Vienība 12 / 12

Robežas: drošība, privātums, licence un ētika

Ieguvumi:

  • Spēja atpazīt un pārbaudīt, vai mākslīgais intelekts var radīt viltus API, nedrošu kodu un ar autortiesībām aizsargātu saturu
  • Spēja pārvaldīt AI izmantošanu pirmkoda konfidencialitātes, personas datu un korporatīvās politikas robežās
  • Izpratne par to, ka galīgā atbildība par licences atbilstību, drošību un ētiku paliek inženierim.

Moduļa eksāmens

1. Kā datorinženierim, strādājot ar AI koda ģenerēšanas rīku, galējā atbildība par to, kura no tālāk minētajām lietām vienmēr ir jāuzņemas cilvēkam?

  • A) Ražošanā nodotā koda pareizības, drošības un pārbaudes un testēšanas galīgā apstiprināšana ✔
  • B) Pirmā koda skeleta izveide funkcijai
  • C) Mainīgo nosaukumu ieteikumu saraksta izveide
  • D) Teksta projekta sagatavošana koda komentāriem

Apraksts: AI; Tas var paātrināt tādus uzdevumus kā koda skelets, testa melnraksts un dokumentācija. Taču inženiera pienākums ir pārskatīt, pārbaudīt un apstiprināt ģenerēto kodu, lai pārliecinātos, ka tas ir pareizs, drošs un atbilst prasībām, un lai tas būtu ražošanā; to nevar deleģēt AI bez neatkarīgas pārbaudes.

2. AI ir izveidojis jums funkciju, un šķiet, ka tā darbojas laimīgā ceļā. Kāds ir labākais solis pirms tā laišanas ražošanā?

  • A) Tā kā šķiet, ka funkcija darbojas, ievietojiet to tieši ražošanā
  • B) Pārbaudiet uzvedību, rakstot un izpildot mazu vienību testus, kas ietver malas gadījumus ✔
  • C) Skatoties tikai uz funkcijas rindu skaitu
  • D) Padarīt funkcijas nosaukumu aprakstošāku

Paskaidrojums: izskatīties darbā nenozīmē būt pareizi. Mazu vienību testu rakstīšana un izpilde, kas aptver tādus malas gadījumus kā tukša ievade, nulle, negatīva, ļoti liela vērtība un neatbilstība, pārbauda funkcijas faktisko darbību, nepārvietojot to uz tiešo vidi.

3. AI ieteica metodi ar nosaukumu “array.sortStable()”, kas jūsu valodā neeksistē, un to skaidri izskaidroja. Kāda ir pirmā pareizā darbība?

  • A) Metodes izmantošana tieši, jo AI šķiet pārliecināts
  • B) Definējiet metodi pats un precīzi izmantojiet tās nosaukumu
  • C) Metodes esamības pārbaude no valodas/bibliotēkas oficiālās dokumentācijas ✔
  • D) Aizveriet kompilatora brīdinājumu un turpiniet

Paskaidrojums. Valodas modeļi var ticami veidot bibliotēku, pakotņu vai metožu nosaukumus, kas patiesībā neeksistē (halucinācijas). Katra piedāvātā API ir burtiski verificēta, salīdzinot ar oficiālo un pašreizējo valodas vai bibliotēkas dokumentāciju; Ja tas nav iekļauts dokumentā, to nevajadzētu izmantot.

4. Jūs vēlaties ielīmēt sava uzņēmuma konfidenciālo pirmkodu un iegulto API atslēgu publiskā AI rīkā un lūgt palīdzību. Kura ir vispareizākā pieeja?

  • A) Ielīmējiet kodu, kā tas ir ar API atslēgu ātrumam
  • B) Pietiek tikai izdzēst uzņēmuma nosaukumu un dalīties ar visu pārējo
  • C) Kopīgojiet kodu un pēc tam lūdziet AI to izdzēst
  • D) Noslēpumu un slēptās loģikas noņemšana un problēmas samazināšana līdz reprezentatīvam piemēram vai institucionāla rīka izmantošana ✔

Apraksts: Slepenais pirmkods un akreditācijas dati (API atslēga, parole, savienojuma virkne); Tas ir riskanti uzņēmuma noslēpuma un drošības ziņā. Ir nepieciešams noņemt noslēpumus un slēpto biznesa loģiku un samazināt problēmu līdz anonīmam/reprezentatīvam piemēram vai izmantot uzņēmuma/ne-datu koplietošanas rīku.

5. AI teica, ka viņa uzrakstītās meklēšanas funkcijas sarežģītība ir O(n); bet kodā ir divas ligzdotas cilpas. Kāda ir pareizā inženierijas uzvedība?

  • A) Analizējiet kodu manuāli un pats izvelciet sarežģītību un, ja nepieciešams, izmēriet to ✔
  • B) Pieņemiet O(n) un turpiniet, jo AI teica
  • C) Pieņemot, ka ciklu skaits nav saistīts ar veiktspēju
  • D) Vienkārši mainiet funkcijas nosaukumu

Paskaidrojums: Laika sarežģītība (Big-O) parāda, kā operāciju skaits palielinās, palielinoties ievadei. Divas ligzdotas cilpas parasti nozīmē O(n^2). AI sarežģītības apgalvojums ir jāpārbauda, ​​manuāli analizējot kodu un veicot mērījumus, ja nepieciešams, palielinot ievades datus; Paļaušanās uz prasību rada nepareizu pieņēmumu par izpildi.

6. AI ģenerēts kods, kas tieši ievieto lietotāja ievadi SQL vaicājumā, savienojot tekstu. Kāda šeit ir galvenā problēma un pareizais risinājums?

  • A) nav problēmu; teksta sapludināšana ir ātrākā metode
  • B) Pastāv SQL injekcijas risks; Jāizmanto parametrizēts vaicājums (sagatavots paziņojums), kas atdala ievadi ✔
  • C) Pietiek tikai vaicājuma pārveidošanu par lielajiem burtiem
  • D) Uzrakstot vaicājumu īsāku, problēma tiks atrisināta

Apraksts: lietotāja ievades pievienošana tieši vaicājuma tekstam rada SQL injekcijas ievainojamību; Uzbrucējs var modificēt vaicājumu ar ievadi. Pareizais risinājums ir izmantot parametrizētu vaicājumu (sagatavotu paziņojumu), kas atdala ievadi no vaicājuma teksta. Šī ir viena no visbiežāk pieļautajām drošības kļūdām AI kodā.

7. Jums ir ierobežots laiks, pārskatot AI izveidoto koda daļu. Kurām problēmām vislabāk ir piešķirt prioritāti?

  • A) Tikai formāta detaļas, piemēram, atkāpes un atstarpes
  • B) Tikai mainīgo nosaukumu garums
  • C) Loģiskā pareizība, ievainojamības un malu gadījuma uzvedība ✔
  • D) Tikai kopējais faila rindu skaits

Apraksts: Augstākais risks koda pārskatīšanā; Tās ir problēmas, kas rada nopietnu kaitējumu, piemēram, loģiskas kļūdas, drošības ievainojamības un konfidenciālas informācijas noplūde. Formāta un stila problēmas tiek novērstas ar automātiskajiem rīkiem; Galvenā cilvēka uzmanība būtu jāvelta precizitātei, drošībai un izturēšanās pret malām.

8. Jūs vēlaties, lai AI atrisinātu kļūdu. Kura ievade vislabāk palīdzētu AI atrast galveno cēloni?

  • A) Vienkārši sakot "kods nedarbojas, izlabojiet to"
  • B) Vienkārši norādiet faila nosaukumu
  • C) Vienkārši pasakiet gaidīto rezultātu, bez kļūdas teksta
  • D) Norādiet pilnu kļūdas ziņojumu, steka izsekošanu, attiecīgo kodu un minimālās reproducēšanas piemēru ✔

Paskaidrojums. Lai veiktu efektīvu atkļūdošanu, AI ir jāiesniedz pilns kļūdas ziņojums, steka izsekošana, attiecīgais koda fragments un mazākais atkārtojamais paraugs, kas rada kļūdu. Neskaidrais paziņojums “nedarbojas” liek AI uzminēt un sniegt vispārīgus ieteikumus.

9. Visi AI izveidotie vienību testi tiek izturēti pirmajā piegājienā. Kuru risku šajā situācijā nevajadzētu ignorēt?

  • A) Testi var apstiprināt pašreizējo koda stāvokli, bet ne faktisko/paredzamo darbību ✔
  • B) Kods ir absolūti bez kļūdām, jo visi testi ir izturēti
  • C) Kvalitāte tiek garantēta, ja testu skaits ir liels
  • D) Pārbaudes nokārtošana pierāda, ka pārklājums ir pilnīgs

Paskaidrojums. Pārbaudes, iespējams, apstiprina pašreizējo (iespējams, kļūdainu) koda darbību, nevis tā paredzēto darbību; vai arī tas var nesaturēt nekādu jēgpilnu apgalvojumu un vienmēr tiek pieņemts. Lai redzētu, ka testi pārbauda patiesās cerības, ir nepieciešams apzināti izjaukt kodu un apstiprināt, ka tests kļūst sarkans.

10. AI ir radījis jums gatavu koda bloku problēmai. Jums ir aizdomas, ka kods, iespējams, ir burtiski nokopēts no atvērtā pirmkoda projekta. Kura ir pareizā pieeja?

  • A) Licences izmantošana nedomājot, jo kods darbojas
  • B) koda avota/licences pārbaude, nepieciešamības gadījumā pārrakstīšana un korporatīvās politikas ievērošana ✔
  • C) Vienkārši mainiet mainīgo nosaukumus un uzskatiet, ka problēma ir atrisināta
  • D) Pieņemot, ka licencēšana attiecas tikai uz lieliem uzņēmumiem

Apraksts: AI var burtiski reproducēt ar autortiesībām aizsargāto/licencēto kodu apmācības datos. Licences pārkāpums komerciālā produktā rada nopietnus juridiskus riskus. Nepieciešams pārbaudīt koda avotu un licenci, nepieciešamības gadījumā pārrakstīt saviem vārdiem un ievērot iestādes licencēšanas politiku.

11. AI ieteica nekavējoties pāriet uz mikropakalpojumu arhitektūru savam projektam. Kāda ir vispiemērotākā inženiertehniskā pieeja, izvērtējot šo priekšlikumu?

  • A) Nekavējoties sadaliet visu sistēmu mikropakalpojumos, jo to iesaka AI
  • B) Pieņemot, ka mikropakalpojumi vienmēr ir labākā izvēle
  • C) Izvērtējiet piedāvājumu pēc reālās vajadzības, slodzes, komandas struktūras un plus-mīnus bilances ✔
  • D) Lēmuma pieņemšana, pamatojoties tikai uz arhitektūras popularitāti

Paskaidrojums: Arhitektūras lēmumi ir atkarīgi no konteksta; Mikropakalpojumi rada pievienoto vērtību tādām vajadzībām kā mērogs un komandas nodalīšana, taču tiem ir saistītas tādas izmaksas kā darbības sarežģītība, izplatīta atkļūdošana un izmaksas. Izvērtēt piedāvājumu atbilstoši faktiskajai nepieciešamībai, slodzei, komandas struktūrai un plusu un mīnusu samēram; Vispārīgos ieteikumus nevajadzētu akli ievērot.

12. AI izveidoja racionalizētu README un API dokumentāciju jūsu kodam; bet daži galapunkti un parametri kodā nesakrīt. Kāda ir pareizā uzvedība?

  • A) Publicēt dokumentu tādu, kāds tas ir, jo teksts ir raiti
  • B) Vienkārši labojiet nosaukumu un atstājiet pārējo kā ir
  • C) Dokumenta pievienošana noliktavai, to neizlasot
  • D) Salīdziniet katru galapunktu un parametru ar faktisko kodu un izlabojiet visus, kas neatbilst ✔

Apraksts: dokumentācijai precīzi jāatspoguļo faktiskais kods; Nepareizs dokuments mudina izstrādātājus, kuri to lasa, to izmantot nepareizi. Katrs galapunkts, parametrs un atgriešanas vērtība ir jāpārbauda attiecībā pret faktisko kodu, un visas neatbilstības ir jāizlabo.

13. Kura ievades pieeja ir piemērota augstākās kvalitātes izvadei, pieprasot kodu no AI?

  • A) Skaidri norādot valodu/versiju, ievades-izvades līgumu, ierobežojumus un kļūdu situācijas ✔
  • B) Vienkārši sakot "uzrakstiet man kādu darba kodu"
  • C) Uzrakstiet īsāko pieprasījumu, nesniedzot kontekstu
  • D) Vienkārši norādot, cik koda rindu būs

Apraksts: Spēcīga uzvedne; Tajā ir iekļauta izmantotā valoda un versija, ievades-izejas līgums, veiktspējas un stila ierobežojumi, kļūdu nosacījumi un instrukcija “palikt tikai pieprasītajā darbības jomā”. Bezkonteksta pieprasījums “rakstiet man funkciju” ir vispārīgs un bieži rada nepiemērotu kodu.

14. AI ģenerēja jūsu CI/CD (nepārtrauktas integrācijas/izvietošanas) konveijera konfigurāciju un iegula tajā datu bāzes paroli vienkāršā tekstā. Kurš ir pareizais labojums?

  • A) Atstājiet paroli kā vienkāršu tekstu, jo tā darbojas
  • B) Noslēpumu pārvietošana, izmantojot vides mainīgo vai slepeno pārvaldības rīku, neievietojot repozitorijā vienkāršu tekstu ✔
  • C) Pārvietojiet paroli tikai uz komentāru rindiņu
  • D) Faila nosaukuma maiņa atrisina problēmu

Paskaidrojums: Noslēpumu, piemēram, paroļu un atslēgu ierakstīšana vienkāršā tekstā konfigurācijas failā rada versiju kontroles noplūdes un nesankcionētas piekļuves risku. Noslēpumi; Vides mainīgajiem vai īpašam noslēpumu pārvaldniekam tas ir jātur ārpusē, un tas nekad nedrīkst ievadīt repozitorijā vienkāršā tekstā.