Jednotka 12 / 12

Hranice: Bezpečnost, soukromí, licence a etika

zisky:

  • Schopnost rozpoznat a ověřit, že umělá inteligence může produkovat falešná rozhraní API, nezabezpečený kód a obsah chráněný autorským právem
  • Schopnost řídit používání AI v mezích důvěrnosti zdrojového kódu, osobních údajů a podnikové politiky
  • Pochopení, že konečnou odpovědnost za dodržování licenčních podmínek, zabezpečení a etiku nese technik.

Modulová zkouška

1. Jako počítačový inženýr, když pracujete s nástrojem pro generování kódu AI, konečnou odpovědnost za to, co z následujícího by měl vždy zůstat člověk?

  • A) Konečné schválení správnosti, zabezpečení a revize a testování kódu uvedeného do výroby ✔
  • B) Vytvoření první kostry kódu pro funkci
  • C) Vytvoření seznamu návrhů na názvy proměnných
  • D) Příprava návrhu textu pro komentáře ke kódu

Popis: AI; Může urychlit úkoly, jako je kostra kódu, testovací návrh a dokumentace. Je však odpovědností inženýra zkontrolovat, otestovat a schválit vygenerovaný kód, aby se ujistil, že je správný, bezpečný a v souladu s požadavky, a zavést jej do výroby; toto nelze delegovat na AI bez nezávislého ověření.

2. AI pro vás vytvořila funkci a zdá se, že funguje na šťastné cestě. Jaký je nejlepší krok před uvedením do výroby?

  • A) Protože se zdá, že funkce funguje, dejte ji přímo do výroby
  • B) Ověřte chování napsáním a spuštěním testů malých jednotek, které zahrnují okrajové případy ✔
  • C) Stačí se podívat na počet řádků funkce
  • D) Vytvoření popisnějšího názvu funkce

Vysvětlení: Vypadat, že pracujete, neznamená mít pravdu. Psaní a spouštění testů malých jednotek, které pokrývají okrajové případy, jako je prázdný vstup, nula, zápor, velmi velká hodnota a neshoda, ověřují skutečné chování funkce, aniž by ji přesunuli do živého prostředí.

3. AI navrhla metodu nazvanou 'array.sortStable()', která ve vašem jazyce neexistuje, a vysvětlila ji jasným způsobem. Jaké je první správné opatření?

  • A) Použití metody přímo, protože AI vypadá sebevědomě
  • B) Sami si definujte metodu a použijte její název přesně
  • C) Ověření existence metody z oficiální dokumentace jazyka/knihovny ✔
  • D) Zavřete varování kompilátoru a pokračujte

Vysvětlení: Jazykové modely mohou věrohodně tvořit názvy knihoven, balíčků nebo metod, které ve skutečnosti neexistují (halucinují). Každé navrhované API by mělo být ověřeno doslovně podle oficiální a aktuální dokumentace jazyka nebo knihovny; Pokud není součástí dokumentu, neměl by být použit.

4. Chcete vložit důvěrný zdrojový kód vaší společnosti a vložený klíč API do veřejného nástroje AI a požádat o pomoc. Jaký je nejsprávnější přístup?

  • A) Vložení kódu tak, jak je s klíčem API pro rychlost
  • B) Stačí smazat název firmy a vše ostatní sdílet
  • C) Sdílení kódu a poté požádání AI o jeho smazání
  • D) Odstranění tajemství a skryté logiky a redukce problému na reprezentativní příklad nebo použití institucionálního nástroje ✔

Popis: Tajný zdrojový kód a přihlašovací údaje (klíč API, heslo, připojovací řetězec); Je to riskantní z hlediska firemního tajemství a bezpečnosti. Je nutné odstranit tajemství a skrytou obchodní logiku a zredukovat problém na anonymní/reprezentativní příklad nebo použít podnikový/nesdílený nástroj pro sdílení dat.

5. AI řekl, že složitost vyhledávací funkce, kterou napsal, byla O(n); ale v kódu jsou dvě vnořené smyčky. Jaké je správné technické chování?

  • A) Ručně analyzujte kód a sami extrahujte složitost a v případě potřeby ji změřte ✔
  • B) Přijměte O(n) a pokračujte, protože AI řekla
  • C) Předpokládejme, že počet cyklů nemá nic společného s výkonem
  • D) Stačí změnit název funkce

Vysvětlení: Časová složitost (Big-O) ukazuje, jak se zvyšuje počet operací s rostoucím vstupem. Dvě vnořené smyčky obvykle znamenají O(n^2). Tvrzení o složitosti AI by mělo být ověřeno manuální analýzou kódu a v případě potřeby měřením se zvyšujícími se vstupy; Spoléhání se na tvrzení vytváří nesprávný předpoklad plnění.

6. AI generovaný kód, který přímo vkládá vstup uživatele do dotazu SQL zřetězením textu. Jaký je zde hlavní problém a správné řešení?

  • A) Žádný problém; sloučení textu je nejrychlejší metoda
  • B) Existuje riziko vložení SQL; Měl by být použit parametrizovaný dotaz (připravený příkaz), který odděluje vstup ✔
  • C) Stačí převést dotaz na velká písmena
  • D) Napsáním dotazu kratším problém vyřešíte

Popis: Přidání uživatelského vstupu přímo do textu dotazu vytváří zranitelnost SQL injection; Útočník může upravit dotaz pomocí vstupu. Správným řešením je použít parametrizovaný dotaz (připravený příkaz), který odděluje vstup od textu dotazu. Toto je jedna z nejčastějších chyb zabezpečení v kódu AI.

7. Na kontrolu části kódu vytvořeného AI máte omezený čas. Které problémy je nejlepší upřednostnit?

  • A) Formátujte pouze detaily, jako je odsazení a mezery
  • B) Pouze délka názvů proměnných
  • C) Logická správnost, zranitelnosti a chování okrajových případů ✔
  • D) Pouze celkový počet řádků souboru

Popis: Nejvyšší riziko při kontrole kódu; Jedná se o problémy, které způsobují vážné škody, jako jsou logické chyby, zranitelnosti zabezpečení a úniky důvěrných informací. Problémy s formátem a stylem jsou opraveny automatickými nástroji; Hlavní lidská pozornost by měla být věnována přesnosti, bezpečnosti a chování hraničních případů.

8. Chcete, aby umělá inteligence vyřešila chybu. Který vstup by nejlépe pomohl AI najít hlavní příčinu?

  • A) Stačí říct „kód nefunguje, opravte to“
  • B) Stačí zadat název souboru
  • C) Stačí říct očekávaný výsledek, bez textu chyby
  • D) Poskytněte úplnou chybovou zprávu, trasování zásobníku, příslušný kód a příklad minimální reprodukce ✔

Vysvětlení: Pro efektivní ladění je nutné předat AI úplnou chybovou zprávu, trasování zásobníku, relevantní fragment kódu a nejmenší reprodukovatelný vzorek, který chybu způsobil. Vágní prohlášení „nefunguje“ nutí AI hádat a vydávat paušální doporučení.

9. Všechny testy jednotky vytvořené AI projdou při prvním spuštění. Které riziko by se v této situaci nemělo ignorovat?

  • A) Testy mohou potvrdit aktuální stav kódu, ale ne skutečné/očekávané chování ✔
  • B) Kód je absolutně bez chyb, protože všechny testy prošly
  • C) Kvalita je zaručena, pokud je počet testů velký
  • D) Absolvování testu prokazuje, že pokrytí je kompletní

Vysvětlení: Testy mohou ověřovat aktuální (možná chybné) chování kódu, nikoli jeho zamýšlené chování; nebo nemusí obsahovat žádné smysluplné tvrzení a je vždy předán. Aby bylo vidět, že testy prověřují skutečné očekávání, je nutné vědomě prolomit kód a potvrdit, že test zčervená.

10. AI vám vytvořila hotový blok kódu pro problém. Máte podezření, že kód mohl být doslovně zkopírován z projektu s otevřeným zdrojovým kódem. Jaký je správný přístup?

  • A) Použití licence bez přemýšlení, protože kód funguje
  • B) Kontrola zdroje/licence kódu, v případě potřeby přepsání a dodržování firemních zásad ✔
  • C) Stačí změnit názvy proměnných a považovat problém za vyřešený
  • D) Za předpokladu, že se licencování týká pouze velkých společností

Popis: Umělá inteligence dokáže doslovně reprodukovat kód chráněný autorskými právy/licencovaný v trénovacích datech. Porušení licence v komerčním produktu vytváří vážná právní rizika. Je nutné zkontrolovat zdroj a licenci kódu, v případě potřeby jej přepsat vlastními slovy a dodržovat licenční politiku instituce.

11. AI navrhla, abyste pro svůj projekt okamžitě přešli na architekturu mikroslužeb. Jaký je nejvhodnější technický přístup při hodnocení tohoto návrhu?

  • A) Okamžitě rozdělte celý systém na mikroslužby, protože AI navrhuje
  • B) Za předpokladu, že mikroservis je vždy nejlepší volbou
  • C) Vyhodnoťte návrh podle skutečné potřeby, zatížení, struktury týmu a plus-minus bilanci ✔
  • D) Rozhodnutí pouze na základě oblíbenosti architektury

Vysvětlení: Architektonická rozhodnutí závisí na kontextu; Mikroslužby přidávají hodnotu v potřebách, jako je rozsah a oddělení týmů, ale přicházejí s náklady, jako je provozní složitost, distribuované ladění a náklady. Vyhodnoťte návrh podle skutečné potřeby, zatížení, struktury týmu a vyváženosti pro a proti; Obecné rady by se neměly slepě dodržovat.

12. AI vytvořila pro váš kód zjednodušenou dokumentaci README a API; ale některé koncové body a parametry se v kódu neshodují. Jaké je správné chování?

  • A) Publikování dokumentu tak, jak je, protože text je plynulý
  • B) Opravte název a zbytek nechte tak, jak je
  • C) Přidání dokladu na sklad bez jeho čtení
  • D) Porovnejte každý koncový bod a parametr se skutečným kódem a opravte všechny, které se neshodují ✔

Popis: Dokumentace by měla přesně odrážet skutečný kód; Nesprávný dokument tlačí vývojáře, kteří jej četli, k nesprávnému použití. Každý koncový bod, parametr a návratová hodnota by měly být ověřeny proti skutečnému kódu a jakékoli neshody by měly být opraveny.

13. Který vstupní přístup je správný pro výstup nejvyšší kvality, když požadujete kód od AI?

  • A) Jasné uvedení jazyka/verze, vstupní a výstupní smlouvy, omezení a chybových situací ✔
  • B) Stačí říct „napiš mi nějaký pracovní kód“
  • C) Napište nejkratší požadavek bez uvedení jakéhokoli kontextu
  • D) Stačí zadat, kolik řádků kódu bude

Popis: Výkonná výzva; Zahrnuje použitý jazyk a verzi, vstupní a výstupní smlouvu, omezení výkonu a stylu, chybové stavy a pokyn „zůstaňte pouze v požadovaném rozsahu“. Bezkontextový požadavek „napiš mi funkci“ je obecný a často produkuje nevhodný kód.

14. AI vygenerovala konfiguraci pro váš kanál CI/CD (nepřetržitá integrace/nasazování) a vložila do něj heslo databáze ve formě prostého textu. Jaká je správná oprava?

  • A) Ponechat heslo jako prostý text, protože to funguje
  • B) Přesouvání tajemství ven pomocí proměnných prostředí nebo nástroje pro správu tajemství, nevkládání prostého textu do úložiště ✔
  • C) Přesuňte heslo pouze do řádku komentáře
  • D) Problém vyřeší změna názvu souboru

Vysvětlení: Zápis tajných informací, jako jsou hesla a klíče v prostém textu do konfiguračního souboru, představuje riziko úniku řízení verzí a neoprávněného přístupu. Tajemství; Mělo by být chráněno proměnnými prostředí nebo speciálním správcem tajemství a nikdy by nemělo vstupovat do úložiště jako prostý text.