Zyski:
- Możliwość wykorzystania sztucznej inteligencji jako filtra wstępnej recenzji z kategoriami i tagami ważności
- Możliwość filtrowania wyników za pomocą ludzkiego umysłu w celu weryfikacji/fałszywie pozytywnego wyniku/zastosowania
- Możliwość egzekwowania wymagań dotyczących zatwierdzenia przez człowieka w przypadku reguł biznesowych, architektury i decyzji o znaczeniu krytycznym dla bezpieczeństwa
Przegląd kodu ma miejsce wtedy, gdy zmiana napisana przez programistę jest sprawdzana przez kogoś innego przed jej połączeniem. Dobra recenzja; Wcześnie wychwytuje błędy, udostępnia informacje i utrzymuje spójność bazy kodu. Ale recenzje są męczące, podatne na rozproszenie i stają się powierzchowne pod presją czasu. Sztuczna inteligencja jest tu podwójnym pomocnikiem: pozwala zarówno wstępnie wyczyścić własny kod, który przesyłasz do sprawdzenia, jak i dokładniej przyjrzeć się PR (pull request) innej osoby.
Zasadnicza różnica jest następująca: sztuczna inteligencja przyspiesza i usprawnia przegląd, ale nie może przejąć odpowiedzialności za zatwierdzenie. Zdanie „AI wygląda, jest czyste” nie jest aprobatą. Ostateczna decyzja o „scaleniu” należy do inżyniera, który zna kod i kontekst.
Przegląd tego, co AI jest dobre, a co złe
Dobre dla: Brak kontroli zerowej, wycieki zasobów (plik/łącze pozostają otwarte), nieprzechwycone wyjątki, oczywiście złe warunki (>= zamiast >), sugestie zmiany nazw, czytelność, brakujące przypadki, proste zapachy bezpieczeństwa (takie jak łączenie ciągów SQL), wykrywanie duplikatów kodu.
Słabe strony: Głębokie wady, które naruszają reguły biznesowe, ale wymagają kontekstu i czasu, takie jak logika poprawna składniowo, zgodność architektury, rzeczywiste wąskie gardła w wydajności, błędy współbieżności. Sztuczna inteligencja generuje również wyniki fałszywie pozytywne (myląc coś, co w rzeczywistości nie stanowi problemu z problemem) i fałszywie negatywne (pomijając prawdziwy błąd). Dlatego też jego wynik stanowi „listę ostrzeżeń”, a nie ostateczny werdykt.
Uwaga: to, że sztuczna inteligencja mówi „nie ma problemu”, nie oznacza, że kod jest poprawny. Fałszywe negatywy milczą; Najbardziej niebezpieczne błędy to te, o których w recenzji nie wspomniano.
Systematyczne kroki przeglądu
- Podaj kontekst. Dodaj do zachęty cel zmiany, odpowiednią kwestię i kryteria akceptacji, jeśli takie istnieją. Bezcelowa recenzja generuje bezcelową interpretację.
- Podziel to na kategorie. Poproś model o sklasyfikowanie wyników jako „błąd/bezpieczeństwo/wydajność/czytelność/styl”; więc oddzielisz to, co krytyczne, od hałasu.
- Poproś o etykietę ważności. Każdemu znalezisku przypisz ocenę „wysoką/średnią/niską” i podaj „przyczynę” oraz „zalecaną korektę”.
- Przefiltruj to na własne oczy. Oceń każde znalezisko: czy jest prawdziwe (zweryfikuj), czy jest fałszywe (wpisz uzasadnienie), czy czegoś brakuje (dodaj własną wiedzę).
- Sprawdź ręcznie ścieżki krytyczne. Samodzielnie czytaj i wykonuj trasy obejmujące pieniądze, tożsamość, autoryzację i usuwanie danych, bez polegania na sztucznej inteligencji.
Trzy mini etui
Przypadek 1 — wykryto cichy błąd zerowy. Jeden zespół zlecił AI wstępne sprawdzenie PR składającego się z 380 linii. Model oznaczył sposób, w jaki odpowiedź usługi zewnętrznej może mieć wartość null, ale w kodzie nie sprawdzono tego. Osoba dokonująca przeglądu zweryfikowała tę ścieżkę i dodała kontrolę zerową; Podobny błąd spowodował 2-godzinną przerwę w produkcji w poprzednim kwartale.
Przypadek 2 – Eliminacja fałszywie pozytywna. Sztuczna inteligencja w pętli zasygnalizowała „możliwy problem z wydajnością”. Recenzent uznał to za fałszywy alarm, wiedząc, że pętla działa tylko z maksymalnie 5 elementami (zapętla się po wyliczeniu). Modelka, która nie znała kontekstu, ostrzegała; Osoba znająca kontekst podjęła właściwą decyzję.
Przypadek 3 – AI przeoczyła błąd reguły biznesowej. O ile konto rabatowe zgodnie z regułą kampanii powinno wynosić maksymalnie 30%, o tyle kod pozwalał na 50%. Sztuczna inteligencja nigdy nie zauważyła tego syntaktycznie doskonałego błędu logicznego; bo nie znał tej zasady. Błąd został wyłapany podczas recenzji dokonanej przez właściciela produktu, który znał kryteria akceptacji. Lekcja: weryfikacja reguł biznesowych to ludzka praca.
Cztery szablony do kopiowania
Zorientowana na cel, skategoryzowana recenzja:
Rola: Skrupulatny recenzent kodu. Cel zmiany: {{cel / problem}}Przejrzyj tę różnicę. Podaj wyniki w następujących kategoriach: [Błąd] [Bezpieczeństwo] [Wydajność] [Czytelność] [Styl]. Dla każdego wyniku: plik:wiersz, ważność (wysoka/średnia/niska), przyczyna, zalecana poprawka. Jeśli nie jesteś pewien, zaznacz „możliwe”. Nie znasz zasad biznesu; Zapytaj mnie o miejsca, które wymagają zasad.{{diff}}
Aby przygotować się do przeglądu własnego kodu:
Przejrzyj tę zmianę przed otwarciem żądania ściągnięcia. Poszukaj: braku wartości null/bugcheck, wycieku zasobów, przypadku Edge, tajnego, nietestowanego oddziału. Wymień ustalenia w kolejności ważności; zasugeruj korektę po 1 linijce dla każdego.{{code}}
Polowanie na sprawy Edge:
Wymień dane wejściowe i sytuacje, w których ta funkcja może się zepsuć: puste, null, za duże, ujemne, równoczesne wywołanie, błąd sieci, częściowe dane. Dla każdego przypadku napisz oczekiwane zachowanie i co zrobi bieżący kod.{{function}}
Skanowanie zapachu bezpieczeństwa (weryfikacja wstępna):
Poszukaj w tym kodzie typowych zapachów bezpieczeństwa: łączenie SQL/poleceń, niezweryfikowane dane wejściowe, niezmienny osadzony klucz tajny, niepewna deserializacja, brak sprawdzania uprawnień. Podziel ustalenia na „pewne / prawdopodobne / wiedza”. To wstępny przegląd; Nie jest to orzeczenie ostateczne.{{code}}
Słaba zachęta/silna zachęta
Słaby: „Czy w tym PR jest błąd?”
Mocne: „Cel: dodanie rabatu kuponowego do sumy koszyka (rabat nie może być większy niż 30% — sam nie możesz zweryfikować tej reguły, po prostu powiedz mi, czy kod nakłada górny limit). Zbadaj różnicę; podaj wnioski według kategorii + istotność + sugerowana korekta, zaznacz „możliwe” w przypadku niepewności. [różnica]”
Mocna wersja jasno określa intencję, zasadę biznesową i granice sztucznej inteligencji; W ten sposób następują przydatne odkrycia, a obszar nieznany modelowi pozostaje jasny.
Znalezienie typu
Niezawodność sztucznej inteligencji
rola mężczyzny
Brak kontroli zerowej/błędu
wysoki
Sprawdź i aplikuj
Czytelność/styl
wysoki
Wybierz według preferencji
Prosty zapach bezpieczeństwa
średni
Sfinalizuj, zeskanuj za pomocą pojazdu
Zgodność z regułami biznesowymi
niski
To całkowicie ludzkie.
Współbieżność/architektura
niski
Wymagana jest opinia eksperta
Przegląd AI nie zastępuje przeglądu człowieka
Ustaw recenzję AI jako „pierwszy filtr”: tanią, szybką i niestrudzoną wstępną przepustkę. Filtr ten uwalnia uwagę recenzenta od nieistotnych szczegółów (przestrzeń, nazwa) i kieruje ją do miejsc, które naprawdę wymagają przemyślenia – reguły biznesowej, architektury, wyniku bezpieczeństwa. Jednak zatwierdzenie połączenia jest podpisem odpowiedzialnej osoby w zespole. Niezależna ocena dokonana przez co najmniej jednego kompetentnego inżyniera jest obowiązkowa w przypadku zmian krytycznych dla bezpieczeństwa.
Wskazówka: przeczytaj listę ustaleń wygenerowanych przez sztuczną inteligencję jako „rzeczy do sprawdzenia”, a nie „do zrobienia”. Zweryfikuj i zastosuj każdy element lub zapisz w jednym zdaniu, dlaczego go zaliczyłeś; ten ślad sprawia, że recenzja podlega audytowi.
Typowe błędy
- Oznacza to „AI wyglądała, jest czysta”. Jest to fałszywe poczucie pewności spowodowane fałszywie negatywnymi wynikami.
- Nie podając kontekstu. Bez kryteriów celu i akceptacji model generuje jedynie powierzchowne interpretacje stylu.
- Ślepe stosowanie fałszywych alarmów. Naprawienie każdego ostrzeżenia modelu może spowodować uszkodzenie działającego kodu.
- Zapytanie modelu o regułę biznesową. Model nie zna reguły; To człowiek musi to zweryfikować.
- Nie dyskryminuj przemocy. Umieszczenie krytycznego ustalenia dotyczącego bezpieczeństwa i sugestii nazwiska w tej samej torbie przyćmiewa to, co ważne.
Podsumowując
Sztuczna inteligencja jest niestrudzonym pierwszym filtrem podczas przeglądu kodu: wyłapuje braki wartości null/błędy, przypadki Edge i ładnie pachnie prostym bezpieczeństwem; ale jest słaby w przypadku wad wymagających kontekstu, takich jak reguły biznesowe, architektura i współbieżność, i daje zarówno fałszywie pozytywne, jak i fałszywie negatywne wyniki. Żądaj wyników według kategorii i ważności, filtruj je za pomocą ludzkiej inteligencji, ręcznie weryfikuj ścieżki krytyczne. Zatwierdzenie jest zawsze podpisem odpowiedzialnego inżyniera.
Zadanie aplikacji
Wybierz prawdziwy lub niedawny PR/różnicę. Najpierw poproś sztuczną inteligencję o sprawdzenie tego za pomocą szablonu „zorientowany na cel, przegląd kategorii”. Umieść wnioski w tabeli i zdecyduj dla każdego z nich: prawda (zweryfikowałem), fałszywie pozytywny (oto moje rozumowanie) lub do wdrożenia. Następnie wybierz się na wycieczkę i spróbuj znaleźć przynajmniej jedną rzecz (zwłaszcza regułę biznesową lub przypadek brzegowy), której brakuje AI, i zapisz to.
lista kontrolna
- [ ] Używam recenzji AI jako pierwszego filtra, a nie poparcia.
- [ ] Dodaję cel i kryteria akceptacji do monitu o recenzję.
- [ ] Oddzielam ustalenia od szumu według kategorii i bardzo ich pragnę.
- [ ] Świadomie filtruję każde odkrycie, aby je potwierdzić/fałszywie pozytywne/zastosować.
- [ ] Jako człowiek sprawdzam zgodność z regułami biznesowymi i architekturą.
- [ ] Wymagam zgody wykwalifikowanego inżyniera na zmiany krytyczne dla bezpieczeństwa.