Бірлік 4 / 12

Кодты қарап шығу және қатені табу

Табыстар:

  • Санаттар мен маңыздылық тегтері бар бастапқы шолу сүзгісі ретінде AI пайдалану мүмкіндігі
  • Тексеру/жалған позитив/қолдану үшін адамның ақыл-ойымен қорытындыларды сүзу мүмкіндігі
  • Бизнес ережелеріне, архитектураға және қауіпсіздікке қатысты маңызды шешімдерге қатысты адамдардың мақұлдау талаптарын орындау мүмкіндігі

Кодты қарап шығу - әзірлеуші ​​жазған өзгерту біріктірілмес бұрын оны басқа біреу қарап шығуы. Жақсы шолу; Ол қателерді ерте анықтайды, ақпаратпен бөліседі және код базасын дәйекті сақтайды. Бірақ шолулар шаршатады, алаңдатуға бейім және уақыт қысымымен үстірт болады. Жасанды интеллект бұл жерде екі жақты көмекші болып табылады: ол қарауға жіберген жеке кодты алдын ала тазалауға және басқа біреудің PR (тарту сұрауын) өткір көзбен қарауға мүмкіндік береді.

Маңызды айырмашылық мынада: AI тексеруді жылдамдатады және жақсартады, бірақ ол бекіту жауапкершілігін өз мойнына алмайды. «AI қарады, бұл таза» деген сөйлем индоссамент емес. Соңғы «біріктіру» шешімі код пен контекстті білетін инженерге байланысты.

Шолуда AI не туралы жақсы және жаман

Мыналар үшін қолайлы: нөлдік тексеруді жіберіп алу, ресурстың ағып кетуі (файл/сілтеме ашық қалды), анықталмаған ерекшеліктер, анық қате шарттар (> орнына >=), атауды өзгерту ұсыныстары, оқылу мүмкіндігі, жетіспейтін шеткі регистр, қарапайым қауіпсіздік иістері (SQL жолын біріктіру сияқты), қайталанатын кодты анықтау.

Әлсіз жақтары: бизнес ережесін бұзатын, бірақ синтаксистік тұрғыдан дұрыс логика, архитектуралық сәйкестік, нақты өнімділік кедергілері, параллельдік қателер сияқты контекст пен уақытты қажет ететін терең кемшіліктер. Сондай-ақ AI жалған позитивтерді (шын мәнінде мәселе үшін проблема емес нәрсені қателесу) және жалған негативтерді (нақты қатені жіберіп алу) шығарады. Сондықтан оның нәтижесі түпкілікті үкім емес, «сақтау тізімі» болып табылады.

Абайлаңыз: AI «проблема жоқ» дегені кодтың дұрыс екенін дәлелдемейді. Жалған негативтер үнсіз; Ең қауіпті қателер шолуда ешқашан айтылмаған қателер.

Жүйелі шолу қадамдары

  1. Контекстті беріңіз. Сауалнамаға өзгерту мақсатын, тиісті мәселені және егер бар болса, қабылдау критерийлерін қосыңыз. Мақсатсыз шолу мақсатсыз түсіндіруді тудырады.
  2. Оны санаттарға бөліңіз. Модельден алынған нәтижелерді «қате/қауіпсіздік/өнімділік/оқылуы/стиль» ретінде жіктеуді сұраңыз; сондықтан сіз шуылдан сынды ажыратасыз.
  3. Ауырлық белгісін сұрау. Әрбір нәтижеге «жоғары/орташа/төмен» деген баға беріңіз және «себепті» және «ұсынылған түзетуді» қосыңыз.
  4. Оны өз көзіңізбен сүзіңіз. Әрбір қорытындыны бағалаңыз: бұл шын ба (тексеріңіз), бұл жалған позитив пе (негіздеме жазу), бірдеңе жетіспейді ме (өз біліміңізді қосыңыз).
  5. Маңызды жолдарды қолмен тексеріңіз. AI-ға сенбей, ақшаны, жеке куәлікті, авторизацияны және деректерді жоюды қамтитын маршруттарды оқып, орындаңыз.

Үш шағын корпус

1-жағдай — үнсіз нөлдік қате ұсталды. Бір команда AI 380 жолдық PR-ды алдын ала қарап шықты. Модель сыртқы қызмет жауабы нөл болуы мүмкін жолды белгіледі, бірақ кодта бұл үшін тексерулер жасалмады. Адам шолушы бұл жолды тексеріп, нөлдік тексеруді қосты; Осыған ұқсас қате өткен тоқсанда өндірісте 2 сағат үзіліс туғызды.

2-жағдай - Жалған оң жою. AI циклде «мүмкін өнімділік мәселесін» белгіледі. Тексеруші цикл тек ең көбі 5 элементпен жұмыс істейтінін біле тұра, оны жалған позитивті деп жауып тастады (ол сандық бойынша цикл жасайды). Контекстті білмеген модель ескертті; Контекстті білетін адам дұрыс шешім қабылдады.

3-жағдай – AI өткізіп алған бизнес ережесі қатесі. Науқан ережесіне сәйкес жеңілдік шоты ең көбі 30% болуы керек, ал код 50% рұқсат етеді. AI бұл синтаксистік тұрғыдан тамаша логикалық қатені ешқашан байқамады; өйткені ол ережені білмеді. Қате қабылдау критерийлерін білетін өнім иесінің шолуында ұсталды. Сабақ: бизнес ережелерін тексеру - бұл адам жұмысы.

Көшірілетін төрт үлгі

Мақсатқа бағытталған, санатталған шолу:

Рөлі: мұқият кодты тексеруші. Өзгерту мақсаты: {{purpose / issue}}Бұл айырмашылықты қарап шығыңыз. Осы санаттардағы нәтижелерді қамтамасыз етіңіз: [Қате] [Қауіпсіздік][Өнімділік] [Оқу мүмкіндігі] [Стиль]. Әрбір анықтау үшін: файл: жол, ауырлық (жоғары/орташа/төмен), себеп, ұсынылған түзету. Сенбесеңіз, «мүмкін» деп белгілеңіз. Сіз бизнес ережелерін білмейсіз; Менен ережелерді талап ететін орындар туралы сұраңыз.{{diff}}

Өз кодыңызды қарап шығуға дайындалу үшін:

PR ашпас бұрын осы өзгерісті қарап шығыңыз. Іздеу: жоқ нөл/қате, ресурстың ағуы, шеткі жағдай, құпия, тексерілмеген тармақ. Нәтижелерді басымдылық ретімен көрсетіңіз; әрқайсысы үшін 1 жолды түзетуді ұсыныңыз.{{code}}

Жиектерді іздеу:

Бұл функцияның бұзылуы мүмкін кірістер мен жағдайларды тізімдеңіз: бос, нөл, тым үлкен, теріс, бір мезгілде қоңырау, желі қатесі, ішінара деректер. Әрбір жағдай үшін күтілетін әрекетті және ағымдағы код не істейтінін жазыңыз.{{функция}}

Қауіпсіздік иісін сканерлеу (алдын ала тексеру):

Осы кодта жалпы қауіпсіздік иістерін іздеңіз: SQL/пәрмендерді біріктіру, расталмаған енгізу, өзгермейтін кірістірілген құпия, қауіпті сериядан шығару, артықшылықты тексерудің болмауы. Қорытындыларды «белгілі / ықтимал / білім» деп бөліңіз. Бұл алдын ала тексеру; Бұл түпкілікті шешім емес.{{code}}

Әлсіз шақыру / Күшті шақыру

Әлсіз: «Бұл пиарда қате бар ма?»
Күшті: "Мақсаты: жалпы себетке купондық жеңілдікті қосу (жеңілдік 30%-дан аспауы керек — бұл ережені өзіңіз тексере алмайсыз, кодтың жоғарғы шегі бар-жоғын айтыңыз). Айырмашылықты қарастырыңыз; санат + ауырлық + ұсынылған түзету бойынша қорытындыларды беріңіз, сенімді болмасаңыз, "мүмкін" деп белгілеңіз. [айырма]"

Күшті нұсқада AI мақсаты, бизнес ережесі және шекарасы анық көрсетілген; Осылайша, пайдалы тұжырымдар келеді және модельге белгісіз аймақ анық болып қалады.

Түрді табу

AI сенімділігі

адамның рөлі

Нөл/қате тексеру жоқ

жоғары

Тексеріңіз және қолданыңыз

Оқуға қабілеттілік/стиль

жоғары

Таңдау бойынша таңдаңыз

Қарапайым қауіпсіздік иісі

орташа

Аяқтау, көлікпен сканерлеу

Іскерлік ережені сақтау

төмен

Бұл толығымен адамдық.

Сәйкестік/архитектура

төмен

Сараптамалық тексеру қажет

AI шолуы адам шолуын алмастырмайды

AI шолуын «алғашқы сүзгі» ретінде орналастырыңыз: арзан, жылдам, шаршамайтын алдын ала өту. Бұл сүзгі адамның назарын маңызды емес мәліметтерден (кеңістік, атау) босатады және оны шынымен ойлауды қажет ететін орындарға бағыттайды — бизнес ережесі, архитектура, қауіпсіздік нәтижесі. Бірақ біріктіруді мақұлдау - бұл топтағы есеп беретін адамның қолы. Кем дегенде бір құзыретті инженердің тәуелсіз сараптамасы қауіпсіздік бойынша маңызды өзгерістер үшін міндетті болып табылады.

Кеңес: AI «орындалатын» емес, «тексерілетін нәрселер» ретінде шығаратын қорытындылар тізімін оқыңыз. Әрбір элементті тексеріп, қолданыңыз немесе оны неліктен тапсырғаныңызды бір сөйлеммен жазыңыз; бұл із шолуды тексерілетін етеді.

Жалпы қателер

  • Бұл «AI қарады, таза» дегенді білдіреді. Бұл жалған негативтерге байланысты жалған сенім сезімі.
  • Контекст бермеу. Мақсат пен қабылдау критерийлерінсіз модель тек үстірт стильдік интерпретацияларды шығарады.
  • Жалған позитивтерді соқыр қолдану. Модельдің әрбір ескертуін түзету іске қосылған кодты бұзуы мүмкін.
  • Модельден бизнес ережесі туралы сұрау. Модель ережені білмейді; Оны тексеру адамның қолында.
  • Зорлық-зомбылықты кемсітпеңіз. Қауіпсіздікке қатысты маңызды қорытынды мен атау ұсынысын бір сөмкеге қою маңызды нәрсені көлеңкелейді.

Қысқаша айтқанда

AI - кодты қараудағы шаршамайтын бірінші сүзгі: ол нөлдік/қате жіберіп алуды, шеткі жағдайларды және қарапайым қауіпсіздік иістерін жақсы ұстайды; бірақ ол бизнес ережесі, архитектура және параллельдік сияқты контекстті қажет ететін кемшіліктерде әлсіз және жалған позитивтерді де, жалған негативтерді де тудырады. Санат және ауырлық дәрежесі бойынша нәтижелерді сұраңыз, әрқайсысын адам интеллектімен сүзіңіз, маңызды жолдарды қолмен тексеріңіз. Мақұлдау әрқашан есеп беретін инженердің қолы болып табылады.

Қолданбалы тапсырма

Нақты немесе соңғы PR/айырымды таңдаңыз. Алдымен, AI оны «мақсатқа бағытталған, санатты шолу» үлгісімен қарап шығыңыз. Нәтижелерді кестеге салыңыз және әрқайсысы үшін шешім қабылдаңыз: ақиқат (тексердім), жалған позитивті (міне, менің пікірім) немесе орындалады. Содан кейін өзіңіз экскурсия жасаңыз және AI жетіспейтін кем дегенде бір нәрсені (әсіресе бизнес ережесі немесе шеткі жағдай) табуға тырысыңыз және оны жазып алыңыз.

бақылау парағы

  • [ ] Мен AI шолуын растау емес, бірінші сүзгі ретінде қолданамын.
  • [ ] Тексеру сұрауына мақсат пен қабылдау критерийлерін қосамын.
  • [ ] Мен нәтижелерді шудан санат бойынша бөлемін және оларды қатты қалаймын.
  • [ ] Мен растау/жалған позитив/қолдану үшін әрбір нәтижені саналы түрде сүзгіден өткіземін.
  • [ ] Мен адам ретінде бизнес ережелері мен архитектуралық сәйкестікті тексеремін.
  • [ ] Қауіпсіздікке қатысты маңызды өзгерістер үшін білікті инженердің рұқсатын талап етемін.