Yunit 12 / 12

Mga Hangganan: Seguridad, Pagkapribado, Lisensya at Etika

Mga nadagdag:

  • Kakayahang kilalanin at i-verify na ang AI ay maaaring gumawa ng mga huwad na API, hindi secure na code, at naka-copyright na nilalaman
  • Kakayahang pamahalaan ang paggamit ng AI sa loob ng mga limitasyon ng pagiging kumpidensyal ng source code, personal na data at patakaran ng korporasyon
  • Ang pag-unawa na ang sukdulang responsibilidad para sa pagsunod sa lisensya, seguridad at etika ay nananatili sa engineer.

Pagsusulit sa Module

1. Bilang isang computer engineer, kapag nagtatrabaho gamit ang isang AI code generation tool, ang sukdulang responsibilidad para sa alin sa mga sumusunod ang dapat palaging manatili sa tao?

  • A) Panghuling pag-apruba ng kawastuhan, seguridad, at pagsusuri at pagsubok ng code na inilagay sa produksyon ✔
  • B) Paglikha ng unang code skeleton para sa isang function
  • C) Paggawa ng listahan ng mga mungkahi para sa mga variable na pangalan
  • D) Paghahanda ng draft na teksto para sa mga komento sa code

Paglalarawan: AI; Mapapabilis nito ang mga gawain tulad ng code skeleton, test draft at dokumentasyon. Gayunpaman, responsibilidad ng inhinyero na suriin, subukan at aprubahan ang nabuong code upang matiyak na ito ay tama, ligtas at sumusunod sa mga kinakailangan, at ilagay ito sa produksyon; hindi ito maaaring italaga sa AI nang walang independiyenteng pag-verify.

2. Gumawa ang AI ng isang function para sa iyo at tila gumagana ito sa masayang landas. Ano ang pinakamagandang hakbang bago ito ilagay sa produksyon?

  • A) Dahil ang function ay tila gumagana, ilagay ito nang direkta sa produksyon
  • B) I-verify ang gawi sa pamamagitan ng pagsulat at pagpapatakbo ng maliliit na unit test na may kasamang edge case ✔
  • C) Tinitingnan lamang ang bilang ng mga linya ng function
  • D) Gawing mas deskriptibo ang pangalan ng function

Paliwanag: Ang pagpapakita sa trabaho ay hindi nangangahulugan ng pagiging tama. Ang pagsulat at pagpapatakbo ng maliliit na unit test na sumasaklaw sa mga edge case gaya ng walang laman na input, zero, negatibo, napakalaking value, at mismatch ay nagpapatunay sa aktwal na gawi ng function nang hindi inililipat ito sa live na kapaligiran.

3. Iminungkahi ng AI ang isang pamamaraan na tinatawag na 'array.sortStable()' na wala sa iyong wika at ipinaliwanag ito sa isang malinaw na paraan. Ano ang unang tamang aksyon na dapat gawin?

  • A) Direktang paggamit ng pamamaraan dahil ang AI ay tila tiwala
  • B) Tukuyin ang pamamaraan sa iyong sarili at gamitin ang pangalan nito nang eksakto
  • C) Pagpapatunay ng pagkakaroon ng pamamaraan mula sa opisyal na dokumentasyon ng wika/aklatan ✔
  • D) Isara ang babala ng compiler at magpatuloy

Paliwanag: Ang mga modelo ng wika ay maaaring makabuo ng mga pangalan ng library, package, o pamamaraan na hindi talaga umiiral (hallucinate). Ang bawat iminungkahing API ay dapat na ma-verify verbatim laban sa opisyal at kasalukuyang dokumentasyon ng wika o library; Kung hindi ito kasama sa dokumento, hindi ito dapat gamitin.

4. Gusto mong i-paste ang kumpidensyal na source code ng iyong kumpanya at isang naka-embed na API key sa isang pampublikong AI tool at humingi ng tulong. Alin ang pinaka tamang diskarte?

  • A) Pag-paste ng code tulad ng sa API key para sa bilis
  • B) Ito ay sapat na upang tanggalin lamang ang pangalan ng kumpanya at ibahagi ang lahat ng iba pa
  • C) Pagbabahagi ng code at pagkatapos ay hilingin sa AI na tanggalin ito
  • D) Pag-alis ng mga lihim at nakatagong lohika at pagbabawas ng problema sa isang kinatawan na halimbawa o paggamit ng isang institusyonal na tool ✔

Paglalarawan: Lihim na source code at mga kredensyal (API key, password, string ng koneksyon); Ito ay mapanganib sa mga tuntunin ng sikreto at seguridad ng kumpanya. Kinakailangang alisin ang mga lihim at nakatagong lohika ng negosyo at bawasan ang problema sa isang hindi kilalang/kinatawan na halimbawa o gumamit ng tool sa pagbabahagi ng enterprise/hindi data.

5. Sinabi ng AI na ang pagiging kumplikado ng isang function ng paghahanap na isinulat niya ay O(n); ngunit mayroong dalawang nested na mga loop sa code. Ano ang tamang pag-uugali sa engineering?

  • A) Manu-manong suriin ang code at kunin ang pagiging kumplikado at sukatin ito kung kinakailangan ✔
  • B) Tanggapin ang O(n) at magpatuloy dahil sinabi ng AI
  • C) Ipagpalagay na ang bilang ng mga cycle ay walang kinalaman sa pagganap
  • D) Baguhin lamang ang pangalan ng function

Paliwanag: Ipinapakita ng pagiging kumplikado ng oras (Big-O) kung paano tumataas ang bilang ng mga operasyon habang lumalaki ang input. Ang dalawang nested loop ay karaniwang nangangahulugang O(n^2). Ang paghahabol sa pagiging kumplikado ng AI ay dapat na ma-verify sa pamamagitan ng manu-manong pagsusuri sa code at pagsukat sa pagtaas ng mga input kung kinakailangan; Ang pag-asa sa claim ay nagbubunga ng maling pagpapalagay ng pagganap.

6. Nabuo ng AI na code na direktang naglalagay ng input ng user sa isang SQL query sa pamamagitan ng pagsasama-sama ng text. Ano ang pangunahing problema at ang tamang solusyon dito?

  • A) Walang problema; ang pagsasama ng teksto ay ang pinakamabilis na paraan
  • B) May panganib ng SQL injection; Dapat gamitin ang isang parameterized na query (inihanda na pahayag) na naghihiwalay sa input ✔
  • C) Ang pag-convert lamang ng query sa uppercase ay sapat na
  • D) Ang pagsusulat ng query nang mas maikli ay malulutas ang problema

Paglalarawan: Ang pagdagdag ng input ng user nang direkta sa query text ay lumilikha ng isang kahinaan sa SQL injection; Maaaring baguhin ng attacker ang query gamit ang input. Ang tamang solusyon ay ang paggamit ng isang parameterized na query (inihanda na pahayag) na naghihiwalay sa input mula sa query text. Ito ay isa sa mga pinaka-karaniwang napalampas na pagkakamali sa seguridad sa AI code.

7. Mayroon kang limitadong oras kapag nagre-review ng isang piraso ng code na ginawa ng AI. Aling mga isyu ang pinakamahusay na unahin?

  • A) I-format lamang ang mga detalye tulad ng indentation at spacing
  • B) Tanging ang haba ng mga variable na pangalan
  • C) Lohikal na kawastuhan, mga kahinaan at pag-uugali sa gilid ng kaso ✔
  • D) Tanging ang kabuuang bilang ng mga linya ng file

Paglalarawan: Pinakamataas na panganib sa pagsusuri ng code; Ito ang mga isyung nagdudulot ng malubhang pinsala, tulad ng mga lohikal na error, mga kahinaan sa seguridad at mga paglabas ng kumpidensyal na impormasyon. Ang mga problema sa format at istilo ay naayos gamit ang mga awtomatikong tool; Ang pangunahing atensyon ng tao ay dapat na nakatuon sa katumpakan, seguridad at pag-uugali sa gilid ng kaso.

8. Gusto mong malutas ng AI ang isang bug. Aling input ang pinakamahusay na makakatulong sa AI na mahanap ang ugat na sanhi?

  • A) Sinasabi lang na 'hindi gumagana ang code, ayusin mo'
  • B) Ibigay lamang ang pangalan ng file
  • C) Sinasabi lamang ang inaasahang resulta, nang walang teksto ng error
  • D) Magbigay ng buong mensahe ng error, stack trace, nauugnay na code at minimum na halimbawa ng reproduction ✔

Paliwanag: Para sa epektibong pag-debug, kinakailangang ibigay sa AI ang buong mensahe ng error, stack trace, may-katuturang snippet ng code, at ang pinakamaliit na sample na maaaring kopyahin na gumagawa ng error. Ang hindi malinaw na pahayag na 'hindi gumagana' ay nagpipilit sa AI na hulaan at gumawa ng mga rekomendasyon sa kumot.

9. Ang lahat ng unit test na ginawa ng AI ay pumasa sa unang pagtakbo. Aling panganib ang hindi dapat balewalain sa sitwasyong ito?

  • A) Maaaring kumpirmahin ng mga pagsubok ang kasalukuyang estado ng code ngunit hindi aktuwal/inaasahang gawi ✔
  • B) Ang code ay ganap na walang error dahil lahat ng pagsubok ay pumasa
  • C) Ang kalidad ay ginagarantiyahan kung ang bilang ng mga pagsubok ay malaki
  • D) Ang pagpasa sa pagsusulit ay nagpapatunay na ang saklaw ay kumpleto

Paliwanag: Maaaring pinapatunayan ng mga pagsubok ang kasalukuyang (marahil maraming buggy) na gawi ng code, hindi ang nilalayon nitong gawi; o maaaring hindi ito naglalaman ng anumang makabuluhang paninindigan at palaging ipinapasa. Upang makita na sinusuri ng mga pagsubok ang tunay na inaasahan, kinakailangang sinasadyang sirain ang code at kumpirmahin na ang pagsubok ay nagiging pula.

10. Binigyan ka ng AI ng isang handa na bloke ng code para sa isang problema. Pinaghihinalaan mo na ang code ay maaaring kinopya ng verbatim mula sa isang open source na proyekto. Alin ang tamang diskarte?

  • A) Paggamit ng lisensya nang hindi iniisip dahil gumagana ang code
  • B) Sinusuri ang pinagmulan/lisensya ng code, muling pagsusulat kung kinakailangan at pagsunod sa patakaran ng korporasyon ✔
  • C) Baguhin lamang ang mga variable na pangalan at isaalang-alang ang problema na nalutas
  • D) Ipagpalagay na ang paglilisensya ay may kinalaman lamang sa malalaking kumpanya

Paglalarawan: Maaaring kopyahin ng AI ang naka-copyright/licensed code sa data ng pagsasanay sa verbatim. Ang paglabag sa lisensya sa isang komersyal na produkto ay lumilikha ng mga seryosong legal na panganib. Kinakailangang suriin ang pinagmulan at lisensya ng code, muling isulat ito sa iyong sariling mga salita kung kinakailangan, at sumunod sa patakaran sa paglilisensya ng institusyon.

11. Iminungkahi ng AI na lumipat ka kaagad sa arkitektura ng microservices para sa iyong proyekto. Ano ang pinakaangkop na diskarte sa engineering kapag sinusuri ang panukalang ito?

  • A) Hatiin kaagad ang buong system sa mga microservice dahil nagmumungkahi ang AI
  • B) Ipagpalagay na ang microservice ay palaging ang pinakamahusay na pagpipilian
  • C) Suriin ang panukala ayon sa tunay na pangangailangan, load, istraktura ng koponan at plus-minus na balanse ✔
  • D) Paggawa ng desisyon batay lamang sa kasikatan ng arkitektura

Paliwanag: Ang mga desisyon sa arkitektura ay nakasalalay sa konteksto; Ang mga microservice ay nagdaragdag ng halaga sa mga pangangailangan tulad ng sukat at paghihiwalay ng koponan, ngunit may kasamang mga gastos tulad ng pagiging kumplikado ng pagpapatakbo, distributed na pag-debug at gastos. Suriin ang panukala ayon sa aktwal na pangangailangan, load, istraktura ng koponan at balanse ng kalamangan at kahinaan; Ang pangkalahatang payo ay hindi dapat sundin nang walang taros.

12. Gumawa ang AI ng naka-streamline na README at dokumentasyon ng API para sa iyong code; ngunit ang ilang mga endpoint at parameter ay hindi tumutugma sa code. Ano ang tamang pag-uugali?

  • A) Ang pag-publish ng dokumento kung ano ito dahil ang teksto ay matatas
  • B) Ayusin lang ang pamagat at iwanan ang iba
  • C) Pagdaragdag ng dokumento sa bodega nang hindi ito binabasa
  • D) Ihambing ang bawat endpoint at parameter sa aktwal na code at ayusin ang alinmang hindi tumutugma sa ✔

Paglalarawan: Ang dokumentasyon ay dapat na isang tumpak na pagmuni-muni ng aktwal na code; Ang maling dokumento ay nagtutulak sa mga developer na nagbabasa nito na gamitin ito nang hindi tama. Dapat na ma-verify ang bawat endpoint, parameter, at return value laban sa aktwal na code, at dapat itama ang anumang hindi pagkakatugma.

13. Aling diskarte sa pag-input ang tama para sa pinakamataas na kalidad na output kapag humihiling ng code mula sa AI?

  • A) Malinaw na pagbibigay ng wika/bersyon, kontrata ng input-output, mga hadlang at sitwasyon ng error ✔
  • B) Sinasabi lang na 'sumulat ka sa akin ng ilang gumaganang code'
  • C) Isulat ang pinakamaikling kahilingan nang hindi nagbibigay ng anumang konteksto
  • D) Tinutukoy lamang kung gaano karaming mga linya ng code ang magkakaroon

Paglalarawan: Napakahusay na prompt; Kabilang dito ang wika at bersyon na ginamit, ang input-output na kontrata, pagganap at mga hadlang sa istilo, kundisyon ng error, at ang 'manatili lamang sa loob ng hiniling na saklaw' na pagtuturo. Ang isang walang kontekstong kahilingan na 'write me a function' ay generic at kadalasang gumagawa ng hindi naaangkop na code.

14. Bumuo ang AI ng configuration para sa iyong CI/CD (continuous integration/deployment) pipeline at na-embed ang password ng database dito sa plain text. Alin ang tamang pag-aayos?

  • A) Iniwan ang password bilang plain text dahil gumagana ito
  • B) Ang paglilipat ng mga lihim sa pamamagitan ng environment variable o secret management tool, hindi paglalagay ng plaintext sa repository ✔
  • C) Ilipat lamang ang password sa linya ng komento
  • D) Ang pagpapalit ng pangalan ng file ay malulutas ang problema

Paliwanag: Ang pagsusulat ng mga lihim gaya ng mga password at key sa plain text sa configuration file ay nagdudulot ng panganib ng pag-leak ng kontrol sa bersyon at hindi awtorisadong pag-access. Mga lihim; Dapat itong itago sa pamamagitan ng mga variable ng kapaligiran o isang espesyal na tagapamahala ng mga lihim, at hindi dapat kailanman ilagay ang repositoryo sa plain text.