Njësia 12 / 12

Kufijtë: Siguria, Privatësia, Licenca dhe Etika

Fitimet:

  • Aftësia për të njohur dhe verifikuar që AI mund të prodhojë API false, kode të pasigurta dhe përmbajtje me të drejtë autori
  • Aftësia për të menaxhuar përdorimin e AI brenda kufijve të konfidencialitetit të kodit burimor, të dhënave personale dhe politikës së korporatës
  • Të kuptuarit se përgjegjësia përfundimtare për pajtueshmërinë, sigurinë dhe etikën e licencës i mbetet inxhinierit.

Provimi i Modulit

1. Si inxhinier kompjuteri, kur punoni me një mjet për gjenerimin e kodit të AI, përgjegjësia përfundimtare për cilën nga sa vijon duhet t'i mbetet gjithmonë njeriut?

  • A) Miratimi përfundimtar i korrektësisë, sigurisë dhe rishikimi dhe testimi i kodit të vënë në prodhim ✔
  • B) Krijimi i skeletit të parë të kodit për një funksion
  • C) Krijimi i një liste sugjerimesh për emrat e variablave
  • D) Përgatitja e një draft teksti për komentet e kodit

Përshkrimi: AI; Mund të shpejtojë detyra të tilla si skeleti i kodit, drafti i testimit dhe dokumentacioni. Megjithatë, është përgjegjësi e inxhinierit të rishikojë, testojë dhe miratojë kodin e krijuar për t'u siguruar që ai është i saktë, i sigurt dhe në përputhje me kërkesat, dhe për ta vënë atë në prodhim; kjo nuk mund t'i delegohet AI pa verifikim të pavarur.

2. AI ka prodhuar një funksion për ju dhe duket se po funksionon në rrugën e lumtur. Cili është hapi më i mirë përpara se ta vini në prodhim?

  • A) Meqenëse funksioni duket se funksionon, vendoseni drejtpërdrejt në prodhim
  • B) Verifikoni sjelljen duke shkruar dhe ekzekutuar teste të njësive të vogla që përfshijnë rastet e skajeve ✔
  • C) Vetëm duke parë numrin e rreshtave të funksionit
  • D) Bërja e emrit të funksionit më përshkrues

Shpjegim: Të paraqitesh në punë nuk do të thotë të kesh të drejtë. Shkrimi dhe ekzekutimi i testeve të njësive të vogla që mbulojnë rastet e skajeve të tilla si hyrje bosh, zero, negative, vlerë shumë të madhe dhe mospërputhje verifikojnë sjelljen aktuale të funksionit pa e zhvendosur atë në mjedisin e drejtpërdrejtë.

3. AI sugjeroi një metodë të quajtur 'array.sortStable()' që nuk ekziston në gjuhën tuaj dhe e shpjegoi atë në një mënyrë të qartë. Cili është veprimi i parë i saktë që duhet ndërmarrë?

  • A) Përdorimi i metodës drejtpërdrejt sepse AI duket i sigurt
  • B) Përcaktoni vetë metodën dhe përdorni saktësisht emrin e saj
  • C) Verifikimi i ekzistencës së metodës nga dokumentacioni zyrtar i gjuhës/bibliotekës ✔
  • D) Mbyllni paralajmërimin e përpiluesit dhe vazhdoni

Shpjegim: Modelet gjuhësore mund të krijojnë në mënyrë të besueshme emra të bibliotekave, paketave ose metodave që nuk ekzistojnë në të vërtetë (të halucinojnë). Çdo API e propozuar duhet të verifikohet fjalë për fjalë kundrejt dokumentacionit zyrtar dhe aktual të gjuhës ose bibliotekës; Nëse nuk përfshihet në dokument, nuk duhet të përdoret.

4. Ju dëshironi të ngjisni kodin burimor konfidencial të kompanisë suaj dhe një çelës të integruar API në një mjet publik të AI dhe të kërkoni ndihmë. Cila është qasja më e saktë?

  • A) Ngjitja e kodit siç është me tastin API për shpejtësi
  • B) Mjafton vetëm të fshini emrin e kompanisë dhe të ndani gjithçka tjetër
  • C) Ndarja e kodit dhe më pas kërkimi i AI që ta fshijë atë
  • D) Heqja e sekreteve dhe logjikës së fshehur dhe reduktimi i problemit në një shembull përfaqësues ose përdorimi i një mjeti institucional ✔

Përshkrimi: Kodi burimor sekret dhe kredencialet (çelësi API, fjalëkalimi, vargu i lidhjes); Është e rrezikshme përsa i përket sekretit dhe sigurisë së kompanisë. Është e nevojshme të zhveshni sekretet dhe logjikën e fshehur të biznesit dhe ta zvogëloni problemin në një shembull anonim/përfaqësues ose të përdorni një mjet ndërmarrjeje/jo të shkëmbimit të të dhënave.

5. AI tha se kompleksiteti i një funksioni kërkimi që ai shkroi ishte O(n); por ka dy sythe të mbivendosur në kod. Cila është sjellja e saktë inxhinierike?

  • A) Analizoni kodin me dorë dhe nxirrni vetë kompleksitetin dhe matni nëse është e nevojshme ✔
  • B) Prano O(n) dhe vazhdo sepse tha AI
  • C) Supozimi i numrit të cikleve nuk ka të bëjë fare me performancën
  • D) Thjesht ndryshoni emrin e funksionit

Shpjegim: Kompleksiteti kohor (Big-O) tregon se si rritet numri i operacioneve me rritjen e hyrjes. Dy sythe të mbivendosur zakonisht nënkuptojnë O(n^2). Pretendimi i kompleksitetit të AI duhet të verifikohet duke analizuar manualisht kodin dhe duke matur me rritjen e inputeve nëse është e nevojshme; Mbështetja në pretendimin prodhon një supozim të rremë të performancës.

6. Kodi i gjeneruar nga AI që fut direkt hyrjen e përdoruesit në një pyetje SQL duke bashkuar tekstin. Cili është problemi kryesor dhe zgjidhja e duhur këtu?

  • A) Nuk ka problem; Bashkimi i tekstit është metoda më e shpejtë
  • B) Ekziston rreziku i injektimit SQL; Duhet të përdoret një pyetje e parametrizuar (deklaratë e përgatitur) që ndan hyrjen ✔
  • C) Mjafton vetëm konvertimi i pyetjes në shkronja të mëdha
  • D) Shkrimi më i shkurtër i pyetjes do ta zgjidhë problemin

Përshkrimi: Shtimi i hyrjes së përdoruesit direkt në tekstin e pyetjes krijon një cenueshmëri të injektimit SQL; Sulmuesi mund të modifikojë pyetjen me hyrjen. Zgjidhja e saktë është përdorimi i një pyetjeje të parametrizuar (deklaratë e përgatitur) që ndan hyrjen nga teksti i pyetjes. Ky është një nga gabimet e sigurisë më të humbura në kodin AI.

7. Ju keni kohë të kufizuar kur rishikoni një pjesë të kodit të prodhuar nga AI. Cilat çështje janë më të mira për t'u dhënë përparësi?

  • A) Formatoni vetëm detaje të tilla si dhëmbëzimi dhe hapësira
  • B) Vetëm gjatësia e emrave të ndryshoreve
  • C) Korrektësia logjike, dobësitë dhe sjellja e rastit të skajshëm ✔
  • D) Vetëm numri i përgjithshëm i rreshtave të skedarit

Përshkrimi: Rreziku më i lartë në rishikimin e kodit; Këto janë çështje që shkaktojnë dëme serioze, të tilla si gabime logjike, dobësi të sigurisë dhe rrjedhje informacioni konfidencial. Problemet e formatit dhe stilit rregullohen me mjete automatike; Vëmendja kryesore e njeriut duhet t'i kushtohet saktësisë, sigurisë dhe sjelljes së rastit.

8. Ju dëshironi që AI të zgjidhë një problem. Cili hyrje do ta ndihmonte më mirë AI-në të gjente shkakun rrënjësor?

  • A) Thjesht duke thënë 'kodi nuk funksionon, rregullojeni'
  • B) Thjesht jepni emrin e skedarit
  • C) Thjesht duke thënë rezultatin e pritur, pa tekstin e gabimit
  • D) Jep mesazhin e plotë të gabimit, gjurmën e stivës, kodin përkatës dhe shembullin minimal të riprodhimit ✔

Shpjegim: Për korrigjimin efektiv, është e nevojshme t'i jepni AI mesazhin e plotë të gabimit, gjurmën e stivës, fragmentin përkatës të kodit dhe mostrën më të vogël të riprodhueshme që prodhon gabimin. Deklarata e paqartë 'nuk funksionon' e detyron AI të hamendësojë dhe të bëjë rekomandime të përgjithshme.

9. Të gjitha testet e njësive të prodhuara nga AI kalojnë në hapin e parë. Cili rrezik nuk duhet të injorohet në këtë situatë?

  • A) Testet mund të konfirmojnë gjendjen aktuale të kodit, por jo sjelljen aktuale/pritëse ✔
  • B) Kodi është absolutisht pa gabime sepse të gjitha testet kaluan
  • C) Cilësia është e garantuar nëse numri i testeve është i madh
  • D) Kalimi i testit dëshmon se mbulimi është i plotë

Shpjegim: Testet mund të vërtetojnë sjelljen aktuale (ndoshta me gabime) të kodit, jo sjelljen e synuar të tij; ose mund të mos përmbajë ndonjë pohim kuptimplotë dhe kalohet gjithmonë. Për të parë që testet po kontrollojnë pritshmërinë reale, është e nevojshme të thyeni me vetëdije kodin dhe të konfirmoni që testi kthehet në të kuqe.

10. AI ju ka prodhuar një bllok të gatshëm kodi për një problem. Ju dyshoni se kodi mund të jetë kopjuar fjalë për fjalë nga një projekt me burim të hapur. Cila është qasja e duhur?

  • A) Përdorimi i licencës pa u menduar sepse kodi funksionon
  • B) Kontrollimi i burimit/licencës së kodit, rishkrimi nëse është e nevojshme dhe në përputhje me politikën e korporatës ✔
  • C) Thjesht ndryshoni emrat e variablave dhe konsideroni problemin të zgjidhur
  • D) Duke supozuar se licencimi ka të bëjë vetëm me kompanitë e mëdha

Përshkrimi: AI mund të riprodhojë fjalë për fjalë kodin e mbrojtur/të licencuar në të dhënat e trajnimit. Shkelja e licencës në një produkt komercial krijon rreziqe serioze ligjore. Është e nevojshme të kontrolloni burimin dhe licencën e kodit, ta rishkruani me fjalët tuaja nëse është e nevojshme dhe të pajtoheni me politikën e licencimit të institucionit.

11. AI sugjeroi që të kaloni menjëherë në arkitekturën e mikroshërbimeve për projektin tuaj. Cila është qasja më e përshtatshme inxhinierike kur vlerësohet ky propozim?

  • A) Ndani menjëherë të gjithë sistemin në mikroshërbime sepse sugjeron AI
  • B) Duke supozuar se mikroshërbimi është gjithmonë zgjidhja më e mirë
  • C) Vlerësoni propozimin sipas nevojës reale, ngarkesës, strukturës së ekipit dhe bilancit plus-minus ✔
  • D) Marrja e vendimit bazuar vetëm në popullaritetin e arkitekturës

Shpjegim: Vendimet arkitekturore varen nga konteksti; Mikroshërbimet shtojnë vlerë në nevoja të tilla si shkalla dhe ndarja e ekipit, por vijnë me kosto të tilla si kompleksiteti operacional, korrigjimi i shpërndarë dhe kostoja. Vlerësoni propozimin sipas nevojës aktuale, ngarkesës, strukturës së ekipit dhe bilancit pro dhe kundër; Këshillat e përgjithshme nuk duhet të ndiqen verbërisht.

12. AI prodhoi një dokumentacion të thjeshtë README dhe API për kodin tuaj; por disa pika fundore dhe parametra nuk përputhen në kod. Cila është sjellja e duhur?

  • A) Publikimi i dokumentit ashtu siç është sepse teksti është i rrjedhshëm
  • B) Thjesht rregulloni titullin dhe lëreni pjesën tjetër ashtu siç është
  • C) Shtimi i dokumentit në magazinë pa e lexuar atë
  • D) Krahasoni çdo pikë fundore dhe parametër me kodin aktual dhe rregulloni ato që nuk përputhen ✔

Përshkrimi: Dokumentacioni duhet të jetë një pasqyrim i saktë i kodit aktual; Dokumenti i gabuar i shtyn zhvilluesit që e lexojnë atë ta përdorin gabimisht. Çdo pikë fundore, parametër dhe vlerë e kthimit duhet të verifikohet kundrejt kodit aktual dhe çdo mospërputhje duhet të korrigjohet.

13. Cila qasje hyrëse është e duhura për dalje të cilësisë më të lartë kur kërkohet kod nga AI?

  • A) Ofrimi i qartë i gjuhës/versionit, kontratës hyrëse-dalëse, kufizimeve dhe situatave të gabimit ✔
  • B) Thjesht duke thënë 'më shkruani një kod pune'
  • C) Shkruani kërkesën më të shkurtër pa dhënë asnjë kontekst
  • D) Thjesht specifikoni sa rreshta kodi do të ketë

Përshkrimi: Prompt i fuqishëm; Ai përfshin gjuhën dhe versionin e përdorur, kontratën hyrëse-dalëse, kufizimet e performancës dhe stilit, kushtet e gabimit dhe udhëzimin "qëndroni vetëm brenda fushës së kërkuar". Një kërkesë pa kontekst 'më shkruaj një funksion' është e përgjithshme dhe shpesh prodhon kod të papërshtatshëm.

14. AI gjeneroi një konfigurim për tubacionin tuaj CI/CD (integrim/vendosje e vazhdueshme) dhe futi fjalëkalimin e bazës së të dhënave në të në tekst të thjeshtë. Cili është rregullimi i duhur?

  • A) Lënia e fjalëkalimit si tekst i thjeshtë sepse funksionon
  • B) Lëvizja e sekreteve përmes variablës së mjedisit ose mjetit të menaxhimit sekret, duke mos vendosur tekst të thjeshtë në depo ✔
  • C) Zhvendosni fjalëkalimin vetëm në linjën e komenteve
  • D) Ndryshimi i emrit të skedarit e zgjidh problemin

Shpjegim: Shkrimi i sekreteve të tilla si fjalëkalimet dhe çelësat në tekst të thjeshtë në skedarin e konfigurimit paraqet rrezikun e rrjedhjes së kontrollit të versionit dhe aksesit të paautorizuar. sekretet; Ai duhet të mbahet jashtë nga variablat e mjedisit ose një menaxher special i sekreteve dhe nuk duhet të futet kurrë në depo në tekst të thjeshtë.