Skrót artykułu

Najważniejsze informacje

Kod wygenerowany przez ChatGPT może zawierać błędy, używać niezweryfikowanych zależności albo nie pasować do projektu. Sprawdź, co zweryfikować przed wdrożeniem.

  • Przeczytaj kod i upewnij się, że rozumiesz jego działanie oraz założenia.
  • Sprawdź, czy użyte funkcje, API i pakiety istnieją i pasują do wersji w projekcie.
  • Porównaj zmianę z architekturą i konwencjami repozytorium.
  • Uruchom odpowiednie testy i kontrole, a kod poddaj przeglądowi.
  • Wynik testów zmniejsza niepewność, ale nie gwarantuje braku błędów ani podatności.

Przegląd redakcyjny:

Kodu wygenerowanego przez ChatGPT nie należy wdrażać na produkcję bez zrozumienia i weryfikacji. Poprawna składnia ani przekonujący opis nie potwierdzają, że kod pasuje do architektury projektu, korzysta z dostępnych wersji API i działa poprawnie w wymaganych przypadkach. Przed wdrożeniem sprawdź zależności, uruchom kontrole przewidziane w projekcie i przejrzyj zmianę.

W 30 sekund

  • Przeczytaj kod i upewnij się, że rozumiesz jego działanie oraz założenia.
  • Sprawdź, czy użyte funkcje, API i pakiety istnieją i pasują do wersji w projekcie.
  • Porównaj zmianę z architekturą i konwencjami repozytorium.
  • Uruchom odpowiednie testy i kontrole, a kod poddaj przeglądowi.
  • Wynik testów zmniejsza niepewność, ale nie gwarantuje braku błędów ani podatności.

Skąd biorą się błędy w kodzie wygenerowanym przez ChatGPT

Kod z ChatGPT może wyglądać poprawnie, a mimo to nie pasować do projektu, ponieważ model może podać nieprawidłowy element API, użyć rozwiązania niezgodnego z wersją zależności albo nie znać ważnych szczegółów repozytorium. Są to możliwe źródła problemów, a nie dowód, że każdy wygenerowany fragment zawiera błąd.

Nieistniejące lub błędnie użyte API

Model może wygenerować nazwę funkcji lub sposób jej wywołania, które brzmią wiarygodnie, ale nie występują w używanej bibliotece. Może też pomylić składnię albo założenia podobnych narzędzi. Przed dodaniem kodu sprawdź nazwę funkcji i jej zachowanie w dokumentacji właściwej dla używanej wersji. Jeśli odpowiedź proponuje nowy pakiet, potwierdź, że istnieje w oficjalnym rejestrze i że jego przeznaczenie odpowiada potrzebie projektu.

Wersje zależności i aktualność informacji

Przykład może opierać się na API, którego projekt jeszcze nie używa, albo na starszym sposobie wywołania, który nie pasuje do zainstalowanej wersji. Aktualność wiedzy zależy od modelu i dostępnych mu narzędzi; bez wskazania konkretnego modelu nie można przypisać wszystkim odpowiedziom jednej daty granicznej. Zestaw sugestię z plikami zależności, konfiguracją projektu i dokumentacją dla właściwej wersji.

Brak kontekstu repozytorium

Jeśli model nie otrzymał informacji o projekcie, nie zna automatycznie jego architektury, konwencji, ograniczeń ani sposobu obsługi błędów. Fragment może więc działać samodzielnie, ale dublować istniejące rozwiązanie lub pomijać założenie, od którego zależy reszta aplikacji. Sprawdź zmianę w kontekście repozytorium, a nie tylko jako osobny przykład.

Kompilacja lub zaliczenie pojedynczego testu nie rozstrzyga, czy logika jest poprawna w pozostałych przypadkach ani czy zmiana spełnia wymagania bezpieczeństwa. To sygnały weryfikacyjne, które trzeba ocenić razem z zakresem zmiany i sposobem jej użycia.

Co sprawdzić przed wdrożeniem kodu z AI

Przed wdrożeniem kodu z ChatGPT sprawdź jego działanie, zgodność z projektem, zależności i wyniki kontroli, a następnie przejrzyj całą zmianę. Konkretne testy i wymagane akceptacje zależą od repozytorium; sama lista kontroli nie daje gwarancji bezbłędnego wdrożenia.

  1. Przeczytaj kod i jego założenia. Powinieneś umieć wyjaśnić, co robi zmiana, jakie dane przyjmuje i jakie skutki wywołuje. Jeśli fragment jest niejasny, sprawdź jego działanie przed zatwierdzeniem.
  2. Sprawdź dopasowanie do repozytorium. Porównaj rozwiązanie z istniejącą architekturą, konwencjami i konfiguracją. Upewnij się, że zmiana nie pomija warunków, które projekt już obsługuje.
  3. Zweryfikuj API i wersje. Potwierdź w dokumentacji, że użyte funkcje są dostępne w wersjach bibliotek wykorzystywanych przez projekt i że zostały użyte zgodnie z ich przeznaczeniem.
  4. Sprawdź nowe zależności. Zweryfikuj istnienie i przeznaczenie proponowanych pakietów w odpowiednim rejestrze. Użyj narzędzi audytu zależności właściwych dla ekosystemu projektu, jeśli są częścią przyjętego procesu.
  5. Uruchom kontrole projektu. Wykonaj testy oraz inne kontrole wymagane w repozytorium. W zależności od konfiguracji mogą obejmować skanowanie kodu i wymagane zatwierdzenia przeglądu.
  6. Przejrzyj diff. Sprawdź wszystkie zmienione pliki, także te, których modyfikacja mogła pojawić się przy okazji. Przegląd przez osobę znającą projekt pomaga ocenić logikę i kontekst, których automatyczne kontrole mogą nie rozstrzygnąć.

Testy i skanowanie uzupełniają przegląd kodu, a nie zastępują zrozumienia zmiany. Zaliczenie testów oznacza, że kod przeszedł określone kontrole; nie dowodzi, że sprawdzono wszystkie przypadki ani że nie pozostały błędy.

Kiedy kod z ChatGPT nadaje się do użycia, a kiedy potrzebuje dalszej pracy

ChatGPT może pomóc przygotować szkielet rozwiązania lub podsunąć pomysł, ale wygenerowany fragment wymaga dopasowania i sprawdzenia przed użyciem produkcyjnym. To, czy nadaje się do projektu, zależy od jego wymagań, wersji zależności, architektury i wyników właściwych kontroli.

Traktuj odpowiedź jako propozycję do oceny. Możesz wykorzystać ją jako punkt wyjścia, jeśli rozumiesz kod i potrafisz sprawdzić jego założenia. Jeśli nie wiesz, co robi fragment albo jak wpływa na inne części aplikacji, wyjaśnij te wątpliwości przed włączeniem go do repozytorium.

Osoba zatwierdzająca zmianę odpowiada za ocenę kodu, który trafia do projektu. Przegląd wykonany przez kolejne narzędzie AI może być pomocny, ale nie zastępuje sprawdzenia wymagań, testów i kontekstu przez osobę odpowiedzialną za wdrożenie.

ChatGPT może generować błędne lub mylące odpowiedzi, dlatego ważne informacje i sugestie dotyczące kodu trzeba weryfikować. Zasada praktyczna jest prosta: użyj AI do szkicu lub pomysłu, a decyzję o wdrożeniu podejmij po sprawdzeniu kodu w warunkach konkretnego projektu.

O autorze

Marcin Wysocki — redaktor UsterkaOnline.pl. Zakres tematyczny: codzienne problemy z AGD, elektroniką i domowymi instalacjami.

Zobacz profil i artykuły autora