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.