Jednotka 12 / 12

Hranice: Bezpečnosť, súkromie, licencia a etika

zisky:

  • Schopnosť rozpoznať a overiť, že AI môže produkovať falošné API, nezabezpečený kód a obsah chránený autorskými právami
  • Schopnosť riadiť používanie AI v rámci obmedzení dôvernosti zdrojového kódu, osobných údajov a firemnej politiky
  • Pochopenie, že konečná zodpovednosť za súlad s licenciou, bezpečnosť a etiku zostáva na inžinierovi.

Modulová skúška

1. Ako počítačový inžinier, keď pracujete s nástrojom na generovanie kódu AI, konečná zodpovednosť za to, čo z nasledujúceho by mala vždy zostať na človeku?

  • A) Konečné schválenie správnosti, bezpečnosti a kontrola a testovanie kódu uvedeného do výroby ✔
  • B) Vytvorenie prvej kostry kódu pre funkciu
  • C) Vytvorenie zoznamu návrhov na názvy premenných
  • D) Príprava návrhu textu pre komentáre kódu

Popis: AI; Môže urýchliť úlohy, ako je kostra kódu, testovací návrh a dokumentácia. Je však zodpovednosťou inžiniera skontrolovať, otestovať a schváliť vygenerovaný kód, aby sa zaistilo, že je správny, bezpečný a v súlade s požiadavkami, a zaviesť ho do výroby; toto nemožno delegovať na AI bez nezávislého overenia.

2. AI pre vás vytvorila funkciu a zdá sa, že funguje na dobrej ceste. Aký je najlepší krok pred uvedením do výroby?

  • A) Keďže sa zdá, že funkcia funguje, dajte ju priamo do výroby
  • B) Overte správanie napísaním a spustením testov malých jednotiek, ktoré zahŕňajú okrajové prípady ✔
  • C) Stačí sa pozrieť na počet riadkov funkcie
  • D) Vytvorenie popisnejšieho názvu funkcie

Vysvetlenie: Zdá sa, že pracujete, neznamená mať pravdu. Písanie a spúšťanie testov malých jednotiek, ktoré pokrývajú okrajové prípady, ako je prázdny vstup, nula, zápor, veľmi veľká hodnota a nesúlad, overuje skutočné správanie funkcie bez jej presunu do živého prostredia.

3. AI navrhla metódu s názvom 'array.sortStable()', ktorá vo vašom jazyku neexistuje, a vysvetlila ju jasným spôsobom. Aké je prvé správne opatrenie?

  • A) Použitie metódy priamo, pretože AI pôsobí sebavedomo
  • B) Sami si definujte metódu a presne použite jej názov
  • C) Overenie existencie metódy z oficiálnej dokumentácie jazyka/knižnice ✔
  • D) Zatvorte varovanie kompilátora a pokračujte

Vysvetlenie: Jazykové modely môžu vierohodne tvoriť názvy knižníc, balíkov alebo metód, ktoré v skutočnosti neexistujú (halucinujú). Každé navrhované API by malo byť overené doslovne oproti oficiálnej a aktuálnej dokumentácii jazyka alebo knižnice; Ak nie je súčasťou dokumentu, nemal by sa používať.

4. Chcete vložiť dôverný zdrojový kód vašej spoločnosti a vložený kľúč API do verejného nástroja AI a požiadať o pomoc. Ktorý prístup je najsprávnejší?

  • A) Prilepenie kódu tak, ako je to s kľúčom API pre rýchlosť
  • B) Stačí len vymazať názov firmy a všetko ostatné zdieľať
  • C) Zdieľanie kódu a potom požiadanie AI o jeho vymazanie
  • D) Odstránenie tajomstiev a skrytej logiky a redukcia problému na reprezentatívny príklad alebo použitie inštitucionálneho nástroja ✔

Popis: Tajný zdrojový kód a poverenia (API kľúč, heslo, reťazec pripojenia); Je to riskantné z hľadiska firemného tajomstva a bezpečnosti. Je potrebné odstrániť tajomstvá a skrytú obchodnú logiku a zredukovať problém na anonymný/reprezentatívny príklad alebo použiť podnikový/neúdajový nástroj na zdieľanie.

5. AI povedal, že zložitosť funkcie vyhľadávania, ktorú napísal, bola O(n); ale v kóde sú dve vnorené slučky. Aké je správne technické správanie?

  • A) Manuálne analyzujte kód a sami extrahujte zložitosť a v prípade potreby ju zmerajte ✔
  • B) Prijmite O(n) a pokračujte, pretože AI povedala
  • C) Predpokladajme, že počet cyklov nemá nič spoločné s výkonom
  • D) Stačí zmeniť názov funkcie

Vysvetlenie: Časová zložitosť (Big-O) ukazuje, ako sa zvyšuje počet operácií s rastúcim vstupom. Dve vnorené slučky zvyčajne znamenajú O(n^2). Nárok AI na zložitosť by sa mal overiť manuálnou analýzou kódu a meraním so zvyšujúcimi sa vstupmi, ak je to potrebné; Spoliehanie sa na tvrdenie vytvára nesprávny predpoklad plnenia.

6. Kód generovaný AI, ktorý priamo vkladá vstup používateľa do dotazu SQL zreťazením textu. Aký je tu hlavný problém a správne riešenie?

  • A) Žiadny problém; zlučovanie textov je najrýchlejšia metóda
  • B) Existuje riziko injekcie SQL; Mal by sa použiť parametrizovaný dotaz (pripravený príkaz), ktorý oddeľuje vstup ✔
  • C) Stačí previesť dopyt na veľké písmená
  • D) Ak napíšete dotaz kratšie, problém sa vyrieši

Popis: Pridaním používateľského vstupu priamo do textu dotazu sa vytvorí zraniteľnosť vstrekovania SQL; Útočník môže upraviť dotaz pomocou vstupu. Správnym riešením je použiť parametrizovaný dotaz (pripravený príkaz), ktorý oddeľuje vstup od textu dopytu. Toto je jedna z najčastejšie vynechaných bezpečnostných chýb v kóde AI.

7. Na kontrolu časti kódu vytvoreného AI máte obmedzený čas. Ktoré problémy je najlepšie uprednostniť?

  • A) Formátujte iba detaily, ako je odsadenie a medzery
  • B) Iba dĺžka názvov premenných
  • C) Logická správnosť, slabé miesta a okrajové správanie ✔
  • D) Len celkový počet riadkov súboru

Popis: Najvyššie riziko pri kontrole kódu; Ide o problémy, ktoré spôsobujú vážne škody, ako sú logické chyby, slabé miesta v zabezpečení a úniky dôverných informácií. Problémy s formátom a štýlom sú opravené automatickými nástrojmi; Hlavná ľudská pozornosť by sa mala venovať presnosti, bezpečnosti a správaniu okrajových prípadov.

8. Chcete, aby AI vyriešila chybu. Ktorý vstup by najlepšie pomohol AI nájsť hlavnú príčinu?

  • A) Stačí povedať „kód nefunguje, opravte ho“
  • B) Stačí zadať názov súboru
  • C) Stačí povedať očakávaný výsledok bez textu chyby
  • D) Poskytnite úplné chybové hlásenie, sledovanie zásobníka, príslušný kód a príklad minimálnej reprodukcie ✔

Vysvetlenie: Pre efektívne ladenie je potrebné poskytnúť AI úplnú chybovú správu, sledovanie zásobníka, relevantný úryvok kódu a najmenšiu reprodukovateľnú vzorku, ktorá spôsobuje chybu. Nejasné vyhlásenie „nefunguje“ núti AI hádať a robiť všeobecné odporúčania.

9. Všetky jednotkové testy vytvorené AI prejdú pri prvom spustení. Ktoré riziko by sa v tejto situácii nemalo ignorovať?

  • A) Testy môžu potvrdiť aktuálny stav kódu, ale nie skutočné/očakávané správanie ✔
  • B) Kód je absolútne bez chýb, pretože všetky testy prešli
  • C) Kvalita je zaručená, ak je počet testov veľký
  • D) Úspešné absolvovanie testu dokazuje, že pokrytie je úplné

Vysvetlenie: Testy môžu overovať aktuálne (možno chybné) správanie kódu, nie jeho zamýšľané správanie; alebo nemusí obsahovať žiadne zmysluplné tvrdenie a vždy sa prejde. Aby ste videli, že testy kontrolujú skutočné očakávania, je potrebné vedome prelomiť kód a potvrdiť, že test sa zmení na červenú.

10. AI vám vytvorila hotový blok kódu pre problém. Máte podozrenie, že kód mohol byť doslovne skopírovaný z projektu s otvoreným zdrojovým kódom. Aký je správny prístup?

  • A) Používanie licencie bez rozmýšľania, pretože kód funguje
  • B) Kontrola zdroja/licencie kódu, v prípade potreby prepísanie a dodržiavanie firemnej politiky ✔
  • C) Stačí zmeniť názvy premenných a považovať problém za vyriešený
  • D) Za predpokladu, že udeľovanie licencií sa týka len veľkých spoločností

Popis: AI dokáže doslovne reprodukovať kód chránený autorskými právami/licencovaný v tréningových údajoch. Porušenie licencie v komerčnom produkte vytvára vážne právne riziká. Je potrebné skontrolovať zdroj a licenciu kódu, v prípade potreby ho prepísať vlastnými slovami a dodržiavať licenčnú politiku inštitúcie.

11. AI navrhla, aby ste pre svoj projekt okamžite prešli na architektúru mikroslužieb. Aký je najvhodnejší inžiniersky prístup pri hodnotení tohto návrhu?

  • A) Okamžite rozdeľte celý systém na mikroslužby, pretože to navrhuje AI
  • B) Za predpokladu, že mikroservis je vždy najlepšou voľbou
  • C) Vyhodnoťte návrh podľa skutočnej potreby, zaťaženia, štruktúry tímu a plus-mínus bilancie ✔
  • D) Rozhodovanie založené výlučne na popularite architektúry

Vysvetlenie: Architektonické rozhodnutia závisia od kontextu; Mikroslužby pridávajú hodnotu v potrebách, ako je rozsah a oddelenie tímu, ale prinášajú náklady, ako je prevádzková zložitosť, distribuované ladenie a náklady. Vyhodnoťte návrh podľa skutočnej potreby, zaťaženia, štruktúry tímu a vyváženosti pre a proti; Všeobecné rady by sa nemali slepo dodržiavať.

12. AI vytvorila pre váš kód zjednodušenú dokumentáciu README a API; ale niektoré koncové body a parametre sa v kóde nezhodujú. Aké je správne správanie?

  • A) Publikovanie dokumentu tak, ako je, pretože text je plynulý
  • B) Opravte názov a zvyšok nechajte tak, ako je
  • C) Pridanie dokladu na sklad bez jeho prečítania
  • D) Porovnajte každý koncový bod a parameter so skutočným kódom a opravte všetky, ktoré sa nezhodujú ✔

Popis: Dokumentácia by mala presne odrážať skutočný kód; Nesprávny dokument tlačí vývojárov, ktorí ho čítali, aby ho používali nesprávne. Každý koncový bod, parameter a návratová hodnota by sa mali overiť v porovnaní so skutočným kódom a mali by sa opraviť všetky nezhody.

13. Ktorý vstupný prístup je správny pre výstup najvyššej kvality pri vyžiadaní kódu od AI?

  • A) Jasné poskytnutie jazyka/verzie, vstupno-výstupnej zmluvy, obmedzení a chybových situácií ✔
  • B) Stačí povedať „napíš mi nejaký pracovný kód“
  • C) Napíšte najkratšiu požiadavku bez uvedenia akéhokoľvek kontextu
  • D) Stačí zadať, koľko riadkov kódu bude

Popis: Výkonná výzva; Zahŕňa použitý jazyk a verziu, vstupno-výstupnú zmluvu, obmedzenia výkonu a štýlu, chybové stavy a pokyn „zostaňte len v požadovanom rozsahu“. Bezkontextová požiadavka „napíš mi funkciu“ je všeobecná a často vytvára nevhodný kód.

14. AI vygenerovala konfiguráciu pre váš kanál CI/CD (nepretržitá integrácia/nasadenie) a vložila doň heslo databázy vo forme obyčajného textu. Aká je správna oprava?

  • A) Ponechanie hesla ako obyčajný text, pretože to funguje
  • B) Presun tajomstiev von prostredníctvom premenných prostredia alebo nástroja na správu tajomstiev, neumiestňovanie čistého textu do úložiska ✔
  • C) Presuňte heslo iba do riadku komentára
  • D) Problém vyrieši zmena názvu súboru

Vysvetlenie: Zápis tajomstiev, ako sú heslá a kľúče v obyčajnom texte do konfiguračného súboru, predstavuje riziko úniku kontroly verzií a neoprávneného prístupu. Tajomstvá; Mal by byť chránený premennými prostredia alebo špeciálnym správcom tajomstiev a nikdy by nemal vstupovať do úložiska ako obyčajný text.