Unitate 12 / 12

Limite: securitate, confidențialitate, licență și etică

Câștiguri:

  • Abilitatea de a recunoaște și de a verifica dacă AI poate produce API-uri false, cod nesigur și conținut protejat prin drepturi de autor
  • Abilitatea de a gestiona utilizarea AI în limitele confidențialității codului sursă, a datelor personale și a politicii corporative
  • Înțelegerea faptului că responsabilitatea finală pentru conformitatea licenței, securitatea și etică rămâne a inginerului.

Examenul modulului

1. În calitate de inginer informatic, atunci când lucrați cu un instrument de generare a codului AI, responsabilitatea finală pentru care dintre următoarele ar trebui să rămână întotdeauna în seama omului?

  • A) Aprobarea finală a corectitudinii, securității și revizuirea și testarea codului pus în producție ✔
  • B) Crearea primului schelet de cod pentru o funcție
  • C) Producerea unei liste de sugestii pentru nume de variabile
  • D) Pregătirea unui proiect de text pentru comentarii la cod

Descriere: AI; Poate accelera sarcini precum scheletul de cod, schița de testare și documentația. Cu toate acestea, este responsabilitatea inginerului să revizuiască, să testeze și să aprobe codul generat pentru a se asigura că este corect, sigur și în conformitate cu cerințele și pentru a-l pune în producție; acest lucru nu poate fi delegat AI fără o verificare independentă.

2. AI a produs o funcție pentru tine și se pare că funcționează pe calea fericită. Care este cel mai bun pas înainte de a-l pune în producție?

  • A) Deoarece funcția pare să funcționeze, puneți-o direct în producție
  • B) Verificați comportamentul prin scrierea și rularea de teste unitare mici care includ cazuri marginale ✔
  • C) Privind doar numărul de linii ale funcției
  • D) Facerea numelui funcției mai descriptiv

Explicație: A arăta la locul de muncă nu înseamnă a avea dreptate. Scrierea și desfășurarea de teste unitare mici care acoperă cazuri de margine, cum ar fi intrarea goală, valoarea zero, negativă, foarte mare și nepotrivire, verifică comportamentul real al funcției fără a o muta în mediul activ.

3. AI a sugerat o metodă numită „array.sortStable()” care nu există în limba dumneavoastră și a explicat-o într-un mod clar. Care este prima acțiune corectă de luat?

  • A) Folosind metoda direct pentru că AI pare încrezător
  • B) Definiți singur metoda și folosiți-i exact numele
  • C) Verificarea existenței metodei din documentația oficială a limbii/bibliotecii ✔
  • D) Închideți avertismentul compilatorului și continuați

Explicație: Modelele de limbaj pot alcătui în mod plauzibil nume de biblioteci, pachete sau metode care nu există de fapt (halucinate). Fiecare API propus ar trebui să fie verificat textual în raport cu documentația oficială și actuală a limbii sau a bibliotecii; Dacă nu este inclus în document, nu trebuie utilizat.

4. Doriți să inserați codul sursă confidențial al companiei dvs. și o cheie API încorporată într-un instrument public AI și să solicitați ajutor. Care este cea mai corectă abordare?

  • A) Lipirea codului așa cum este cu cheia API pentru viteză
  • B) Este suficient să ștergeți numele companiei și să partajați orice altceva
  • C) Partajarea codului și apoi solicitarea AI-ului să-l ștergă
  • D) Înlăturarea secretelor și a logicii ascunse și reducerea problemei la un exemplu reprezentativ sau utilizarea unui instrument instituțional ✔

Descriere: cod sursă secret și acreditări (cheie API, parolă, șir de conexiune); Este riscant în ceea ce privește secretul companiei și securitatea. Este necesar să eliminați secretele și logica de afaceri ascunsă și să reduceți problema la un exemplu anonim/reprezentativ sau să utilizați un instrument de partajare de întreprindere/non-date.

5. AI a spus că complexitatea unei funcții de căutare pe care a scris-o a fost O(n); dar există două bucle imbricate în cod. Care este comportamentul ingineresc corect?

  • A) Analizați manual codul și extrageți singur complexitatea și măsurați-l dacă este necesar ✔
  • B) Acceptați O(n) și continuați pentru că a spus AI
  • C) Presupunând că numărul de cicluri nu are nimic de-a face cu performanța
  • D) Schimbați doar numele funcției

Explicație: Complexitatea timpului (Big-O) arată cum crește numărul de operațiuni pe măsură ce crește input-ul. Două bucle imbricate înseamnă de obicei O(n^2). Afirmația de complexitate a AI ar trebui verificată prin analiza manuală a codului și măsurarea cu intrări crescătoare, dacă este necesar; Bazarea pe afirmație produce o presupunere falsă a performanței.

6. Cod generat de AI care inserează direct intrarea utilizatorului într-o interogare SQL prin concatenarea textului. Care este problema principală și soluția corectă aici?

  • A) Nicio problemă; fuzionarea textului este cea mai rapidă metodă
  • B) Există riscul injectării SQL; Ar trebui utilizată o interogare parametrizată (instrucțiune pregătită) care separă intrarea ✔
  • C) Este suficientă conversia interogării în majuscule
  • D) Scrierea mai scurtă a interogării va rezolva problema

Descriere: Adăugarea intrărilor utilizatorului direct la textul interogării creează o vulnerabilitate de injectare SQL; Atacatorul poate modifica interogarea cu intrarea. Soluția corectă este utilizarea unei interogări parametrizate (instrucțiune pregătită) care separă intrarea de textul interogării. Aceasta este una dintre cele mai frecvent ratate greșeli de securitate în codul AI.

7. Aveți timp limitat când revizuiți o bucată de cod produsă de AI. Care sunt problemele cel mai bine de prioritizat?

  • A) Formatați numai detalii, cum ar fi indentarea și spațierea
  • B) Numai lungimea numelor de variabile
  • C) Corectitudine logică, vulnerabilități și comportament marginal ✔
  • D) Numai numărul total de rânduri ale dosarului

Descriere: Cel mai mare risc în revizuirea codului; Acestea sunt probleme care cauzează daune grave, cum ar fi erori logice, vulnerabilități de securitate și scurgeri de informații confidențiale. Problemele de format și stil sunt rezolvate cu instrumente automate; Atenția umană principală ar trebui să fie dedicată acurateței, securității și comportamentului de margine.

8. Vrei ca AI să rezolve o eroare. Ce intrare ar ajuta cel mai bine AI să găsească cauza principală?

  • A) Spunând doar „codul nu funcționează, remediați-l”
  • B) Dați doar numele fișierului
  • C) Spune doar rezultatul așteptat, fără textul de eroare
  • D) Furnizați mesajul de eroare complet, urmărirea stivei, codul relevant și exemplu de reproducere minimă ✔

Explicație: Pentru o depanare eficientă, este necesar să furnizați AI mesajul de eroare complet, urmărirea stivei, fragmentul de cod relevant și cel mai mic eșantion reproductibil care produce eroarea. Afirmația vagă „nu funcționează” obligă AI să ghicească și să facă recomandări generale.

9. Toate testele unitare produse de AI trec la prima rulare. Ce risc nu trebuie ignorat în această situație?

  • A) Testele pot confirma starea curentă a codului, dar nu și comportamentul real/așteptat ✔
  • B) Codul este absolut lipsit de erori, deoarece toate testele au trecut
  • C) Calitatea este garantată dacă numărul de teste este mare
  • D) Trecerea testului dovedește că acoperirea este completă

Explicație: Testele pot valida comportamentul curent (poate cu erori) al codului, nu comportamentul dorit; sau poate să nu conțină nicio afirmație semnificativă și este întotdeauna transmisă. Pentru a vedea că testele verifică așteptările reale, este necesar să rupeți în mod conștient codul și să confirmați că testul devine roșu.

10. AI v-a produs un bloc de cod gata făcut pentru o problemă. Bănuiți că este posibil ca codul să fi fost copiat literal dintr-un proiect open source. Care este abordarea corectă?

  • A) Folosind licența fără a sta pe gânduri, deoarece codul funcționează
  • B) Verificarea sursei/licenței codului, rescrierea dacă este necesar și respectarea politicii corporative ✔
  • C) Schimbați doar numele variabilelor și considerați problema rezolvată
  • D) Presupunând că licențierea se referă doar la companiile mari

Descriere: AI poate reproduce codul cu drepturi de autor/licențiat în datele de antrenament text. Încălcarea licenței pentru un produs comercial creează riscuri legale serioase. Este necesar să verificați sursa și licența codului, să o rescrieți cu propriile cuvinte dacă este necesar și să respectați politica de licențiere a instituției.

11. AI a sugerat să treceți imediat la arhitectura de microservicii pentru proiectul dvs. Care este cea mai potrivită abordare inginerească atunci când se evaluează această propunere?

  • A) Împărțiți imediat întregul sistem în microservicii, deoarece AI sugerează
  • B) Presupunând că microserviciul este întotdeauna cea mai bună alegere
  • C) Evaluați propunerea în funcție de nevoia reală, sarcina, structura echipei și echilibrul plus-minus ✔
  • D) Luarea deciziei bazată exclusiv pe popularitatea arhitecturii

Explicație: Deciziile arhitecturale depind de context; Microserviciile adaugă valoare în nevoi cum ar fi scara și separarea echipelor, dar vin cu costuri precum complexitatea operațională, depanarea distribuită și costuri. Evaluează propunerea în funcție de nevoia reală, sarcina, structura echipei și echilibrul pro și contra; Sfaturile generale nu trebuie urmate orbeste.

12. AI a produs o documentație README și API simplificată pentru codul dvs.; dar unele puncte finale și parametri nu se potrivesc în cod. Care este comportamentul corect?

  • A) Publicarea documentului așa cum este, deoarece textul este fluent
  • B) Fixați doar titlul și lăsați restul așa cum este
  • C) Adăugarea documentului în depozit fără a-l citi
  • D) Comparați fiecare punct final și parametru cu codul real și remediați orice punct care nu se potrivește ✔

Descriere: documentația ar trebui să fie o reflectare exactă a codului real; Documentul greșit îi împinge pe dezvoltatorii care îl citesc să-l folosească incorect. Fiecare punct final, parametru și valoare returnată ar trebui verificate în raport cu codul real și orice nepotrivire ar trebui corectată.

13. Ce abordare de intrare este potrivită pentru rezultate de cea mai înaltă calitate atunci când solicitați cod de la AI?

  • A) Furnizarea clară a limbii/versiunii, a contractului de intrare-ieșire, a constrângerilor și a situațiilor de eroare ✔
  • B) Spune doar „scrie-mi un cod de lucru”
  • C) Scrieți cea mai scurtă cerere fără a oferi niciun context
  • D) Specificând doar câte linii de cod vor fi

Descriere: prompt puternic; Include limba și versiunea utilizate, contractul de intrare-ieșire, constrângeri de performanță și stil, condiții de eroare și instrucțiunea „să rămâneți numai în domeniul de aplicare solicitat”. O solicitare fără context „scrie-mi o funcție” este generică și adesea produce cod neadecvat.

14. AI a generat o configurație pentru pipeline CI/CD (integrare/implementare continuă) și a încorporat parola bazei de date în ea în text simplu. Care este remedierea corectă?

  • A) Lăsând parola ca text simplu, deoarece funcționează
  • B) Mutarea secretelor prin variabila de mediu sau instrument de gestionare a secretelor, nu introducerea textului simplu în depozit ✔
  • C) Mutați parola numai în linia de comentarii
  • D) Schimbarea numelui fișierului rezolvă problema

Explicație: Scrierea secretelor, cum ar fi parolele și cheile în text simplu, în fișierul de configurare prezintă riscul de scurgere de control al versiunilor și acces neautorizat. Secrete; Ar trebui să fie exclus de variabilele de mediu sau de un manager special de secrete și nu ar trebui să intre niciodată în depozit în text simplu.