Табыстар:
- AI жалған API интерфейстерін, қауіпті кодты және авторлық құқықпен қорғалған мазмұнды шығаруы мүмкін екенін тану және тексеру мүмкіндігі
- Бастапқы кодтың құпиялылығы, жеке деректер және корпоративтік саясат шегінде AI пайдалануды басқару мүмкіндігі
- Лицензияны сақтау, қауіпсіздік және этика бойынша түпкілікті жауапкершілік инженерде қалатынын түсіну.
Модуль емтиханы
1. Компьютер инженері ретінде, AI кодын жасау құралымен жұмыс істегенде, төмендегілердің қайсысы үшін түпкілікті жауапкершілік әрқашан адамда болуы керек?
- A) Өндіріске енгізілген кодтың дұрыстығын, қауіпсіздігін және тексеру мен сынауын түпкілікті бекіту ✔
- B) Функцияның бірінші код қаңқасын құру
- C) Айнымалы атауларға ұсыныстар тізімін жасау
- D) Кодтық түсініктемелерге мәтіннің жобасын дайындау
Сипаттама: AI; Ол код қаңқасы, сынақ жобасы және құжаттама сияқты тапсырмаларды жылдамдата алады. Дегенмен, құрастырылған кодтың дұрыс, қауіпсіз және талаптарға сәйкестігін тексеру, сынау және бекіту және оны өндіріске енгізу инженердің міндеті; бұл тәуелсіз растаусыз AI-ға берілмейді.
2. AI сіз үшін функция жасады және ол бақытты жолда жұмыс істеп жатқан сияқты. Оны өндіріске енгізер алдында ең жақсы қадам қандай?
- A) Функция жұмыс істейтін сияқты болғандықтан, оны тікелей өндіріске енгізіңіз
- B) Шеттік жағдайларды қамтитын шағын бірлік сынақтарын жазу және іске қосу арқылы әрекетті тексеріңіз ✔
- C) Функцияның жолдар санына қарап қана
- D) Функция атын сипаттамалы ету
Түсініктеме: Жұмысқа көріну дұрыс болу дегенді білдірмейді. Бос енгізу, нөл, теріс, өте үлкен мән және сәйкессіздік сияқты шеткі жағдайларды қамтитын шағын бірлік сынақтарын жазу және іске қосу функцияның нақты әрекетін оны тірі ортаға жылжытпай тексереді.
3. AI сіздің тіліңізде жоқ 'array.sortStable()' деп аталатын әдісті ұсынды және оны анық түрде түсіндірді. Бірінші дұрыс әрекет қандай?
- A) Әдісті тікелей қолдану, себебі AI сенімді болып көрінеді
- B) Әдісті өзіңіз анықтаңыз және оның атын дәл қолданыңыз
- C) Тілдің/кітапхананың ресми құжаттамасынан әдістің бар екендігін тексеру ✔
- D) Компилятордың ескертуін жауып, жалғастыру
Түсініктеме: Тіл үлгілері шын мәнінде жоқ кітапхана, бума немесе әдіс атауларын (галлюцинат) құра алады. Әрбір ұсынылған API тілдің немесе кітапхананың ресми және ағымдағы құжаттамасына сәйкес сөзбе-сөз тексерілуі керек; Егер ол құжатта жоқ болса, оны пайдалануға болмайды.
4. Компанияның құпия бастапқы кодын және ендірілген API кілтін жалпыға қолжетімді AI құралына қойып, көмек сұрағыңыз келеді. Ең дұрыс тәсіл қайсы?
- A) Жылдамдық үшін API кілтіндегідей кодты қою
- B) Компанияның атын өшіріп, қалғанының бәрін бөлісу жеткілікті
- C) Кодты ортақ пайдалану, содан кейін AI-дан оны жоюды сұрау
- D) Құпияларды және жасырын логиканы жою және мәселені репрезентативті мысалға келтіру немесе институционалдық құралды пайдалану ✔
Сипаттама: Құпия бастапқы код және тіркелгі деректері (API кілті, құпия сөз, қосылым жолы); Бұл компанияның құпиясы мен қауіпсіздігі тұрғысынан қауіпті. Құпияларды және жасырын бизнес логикасын жою және мәселені анонимді/өкілді мысалға дейін азайту немесе кәсіпорын/деректерді бөлісу құралын пайдалану қажет.
5. АИ өзі жазған іздеу функциясының күрделілігі O(n); бірақ кодта екі кірістірілген цикл бар. Дұрыс инженерлік мінез-құлық дегеніміз не?
- A) Кодты қолмен талдаңыз және күрделілігін өзіңіз алыңыз және қажет болса, оны өлшеңіз ✔
- B) O(n) қабылдаңыз және AI айтқандықтан жалғастырыңыз
- C) Цикл санының өнімділікке еш қатысы жоқ деп есептейміз
- D) Тек функцияның атын өзгертіңіз
Түсініктеме: Уақыт күрделілігі (Үлкен-О) кіріс өскен сайын операциялар санының қалай өсетінін көрсетеді. Екі кірістірілген цикл әдетте O(n^2) мәнін білдіреді. AI күрделілігі туралы мәлімдеме кодты қолмен талдау және қажет болған жағдайда кірістерді көбейту арқылы өлшеу арқылы тексерілуі керек; Шағымға сүйену өнімділік туралы жалған болжамды тудырады.
6. Мәтінді біріктіру арқылы SQL сұрауына пайдаланушы енгізуін тікелей кірістіретін AI жасалған код. Мұндағы басты мәселе және дұрыс шешім қандай?
- A) Мәселе жоқ; мәтінді біріктіру - ең жылдам әдіс
- B) SQL инъекциясының қаупі бар; Енгізуді бөлетін параметрленген сұранысты (дайындалған мәлімдеме) пайдалану керек ✔
- C) Сұрауды бас әріпке түрлендіру жеткілікті
- D) Сұрауды қысқартып жазу мәселені шешеді
Сипаттама: Сұрау мәтініне пайдаланушы енгізуін тікелей қосу SQL инъекциясының осалдығын жасайды; Шабуылдаушы сұрауды енгізу арқылы өзгерте алады. Дұрыс шешім енгізуді сұрау мәтінінен бөлетін параметрленген сұранысты (дайындалған мәлімдеме) пайдалану болып табылады. Бұл AI кодындағы ең жиі жіберілмейтін қауіпсіздік қателерінің бірі.
7. AI шығарған код бөлігін қарап шығуға уақытыңыз шектеулі. Қандай мәселелерге басымдық берген дұрыс?
- A) Тек шегініс және интервал сияқты мәліметтерді пішімдеу
- B) Тек айнымалы атауларының ұзындығы
- C) Логикалық дұрыстық, осалдықтар және шеткі жағдай тәртібі ✔
- D) Тек файлдың жалпы жолдарының саны
Сипаттама: Кодты қараудағы ең жоғары тәуекел; Бұл логикалық қателер, қауіпсіздіктің осалдығы және құпия ақпараттың ағып кетуі сияқты елеулі зиян келтіретін мәселелер. Пішім мен стиль мәселелері автоматты құралдармен түзетіледі; Адамның басты назары дәлдікке, қауіпсіздікке және істің шеткі мінез-құлқына аударылуы керек.
8. Сіз AI қатені шешкіңіз келеді. Қандай енгізу AI-ға негізгі себепті табуға көмектеседі?
- A) Тек «код жұмыс істемейді, оны түзетіңіз» деп айту
- B) Тек файлдың атын беріңіз
- C) Қате мәтінінсіз күтілетін нәтижені айту
- D) Толық қате туралы хабарды, стек ізін, сәйкес кодты және ең аз көшіру мысалын беріңіз ✔
Түсініктеме: Тиімді жөндеу үшін AI толық қате туралы хабарды, стек ізін, сәйкес код үзіндісін және қатені тудыратын ең кіші қайталанатын үлгіні беру қажет. «Жұмыс істемейді» деген түсініксіз мәлімдеме AI-ны болжауға және жалпы ұсыныстар жасауға мәжбүр етеді.
9. AI жасаған барлық бірлік сынақтары бірінші іске қосуда өтеді. Бұл жағдайда қандай тәуекелді елемеу керек?
- A) Тесттер кодтың ағымдағы күйін растауы мүмкін, бірақ нақты/күтілетін әрекетті емес ✔
- B) Код мүлдем қатесіз, өйткені барлық сынақтар өтті
- C) Сынақ саны көп болса сапаға кепілдік беріледі
- D) Сынақтан өту қамтудың аяқталғанын дәлелдейді
Түсініктеме: Тесттер кодтың жоспарланған әрекетін емес, ағымдағы (мүмкін қате) әрекетін тексеруі мүмкін; немесе ол ешқандай мағыналы бекітуді қамтымауы мүмкін және әрқашан жіберіледі. Тесттер нақты күтуді тексеріп жатқанын көру үшін кодты саналы түрде бұзып, сынақ қызылға айналатынын растау керек.
10. AI сізге мәселеге арналған дайын код блогын жасады. Сіз код ашық бастапқы жобадан сөзбе-сөз көшірілген болуы мүмкін деп күдіктенесіз. Қай тәсіл дұрыс?
- A) Лицензияны ойланбастан пайдалану, себебі код жұмыс істейді
- B) Кодтың көзін/лицензиясын тексеру, қажет болған жағдайда қайта жазу және корпоративтік саясатты сақтау ✔
- C) Тек айнымалы атауларын өзгертіп, мәселені шешілген деп есептеңіз
- D) Лицензиялау тек ірі компанияларға қатысты деп есептесек
Сипаттама: AI оқу деректеріндегі авторлық/лицензияланған кодты сөзбе-сөз қайта жасай алады. Коммерциялық өнімдегі лицензияны бұзу елеулі заңды тәуекелдерді тудырады. Кодтың көзі мен лицензиясын тексеріп, қажет болған жағдайда оны өз сөзіңізбен қайта жазып, мекеменің лицензиялау саясатын сақтау қажет.
11. AI сіздің жобаңыз үшін микросервис архитектурасына дереу ауысуды ұсынды. Бұл ұсынысты бағалау кезінде ең қолайлы инженерлік тәсіл қандай?
- A) Бүкіл жүйені дереу микросервистерге бөліңіз, себебі AI ұсынады
- B) Микросервис әрқашан ең жақсы таңдау болып табылады
- C) Ұсынысты нақты қажеттілікке, жүктемеге, команда құрылымына және плюс-минус балансына қарай бағалаңыз ✔
- D) Архитектураның танымалдылығына ғана негізделген шешім қабылдау
Түсініктеме: Архитектуралық шешімдер контекстке байланысты; Микросервистер ауқымды және топты бөлу сияқты қажеттіліктерге құндылық қосады, бірақ операциялық күрделілік, бөлінген жөндеу және шығындар сияқты шығындармен бірге келеді. Ұсынысты нақты қажеттілікке, жүктемеге, команда құрылымына және оң және теріс жақтарының балансына қарай бағалаңыз; Жалпы кеңестерді соқыр орындауға болмайды.
12. AI сіздің кодыңыз үшін жеңілдетілген README және API құжаттамасын жасады; бірақ кейбір соңғы нүктелер мен параметрлер кодта сәйкес келмейді. Дұрыс мінез-құлық дегеніміз не?
- A) Құжатты сол күйінде жариялау, себебі мәтін жатық
- B) Тек тақырыпты түзетіп, қалғанын сол күйінде қалдырыңыз
- C) Құжатты оқымай қоймаға қосу
- D) Әрбір соңғы нүкте мен параметрді нақты кодпен салыстырыңыз және сәйкес келмейтін кез келгенін түзетіңіз ✔
Сипаттама: Құжаттама нақты кодтың дәл көрінісі болуы керек; Қате құжат оны оқыған әзірлеушілерді оны дұрыс пайдаланбауға итермелейді. Әрбір соңғы нүкте, параметр және қайтару мәні нақты кодқа қарсы тексерілуі керек және кез келген сәйкессіздіктер түзетілуі керек.
13. АИ-ден код сұраған кезде ең жоғары сапалы шығыс үшін қандай енгізу тәсілі дұрыс?
- A) Тілді/нұсқаны, енгізу-шығару келісім-шартын, шектеулерді және қателік жағдайларын нақты қамтамасыз ету ✔
- B) «Маған жұмыс кодын жазыңыз» деп айту
- C) Ешқандай контекст бермей, ең қысқа сұранысты жазыңыз
- D) Тек қана кодтың қанша жолы болатынын көрсету
Сипаттама: Күшті жедел хабар; Ол пайдаланылатын тіл мен нұсқаны, енгізу-шығару келісімін, өнімділік пен стиль шектеулерін, қате жағдайларын және «тек сұралған аумақта қалу» нұсқауын қамтиды. Мәтінмәнсіз «маған функция жазу» сұрауы жалпы болып табылады және жиі сәйкес емес кодты шығарады.
14. AI CI/CD (үздіксіз интеграция/орналастыру) конфигурациясын жасады және оған қарапайым мәтінде дерекқор құпия сөзін ендірді. Қайсысы дұрыс түзету?
- A) Құпия сөзді қарапайым мәтін ретінде қалдыру, себебі ол жұмыс істейді
- B) Айнымалы орта немесе құпияны басқару құралы арқылы құпияларды жылжыту, репозиторийге ашық мәтінді қоймау ✔
- C) Құпия сөзді тек түсініктеме жолына жылжытыңыз
- D) Файл атын өзгерту мәселені шешеді
Түсініктеме: Құпия сөздер мен кілттер сияқты құпияларды конфигурация файлына кәдімгі мәтінде жазу нұсқаны басқарудың ағып кету және рұқсатсыз кіру қаупін тудырады. Құпиялар; Оны қоршаған ортаның айнымалы мәндері немесе арнайы құпиялар менеджері сақтамауы керек және репозиторийге ешқашан кәдімгі мәтін түрінде енбеуі керек.