Przejdź do głównej zawartości

Rozwój kierowany błędami: uczenie się z niepowodzeń

W tradycyjnym programowaniu błędy są często postrzegane jako uciążliwość. W programowaniu wspomaganym przez AI stanowią potężny sygnał. Rozwój kierowany błędami (Error-Driven Development, EDD) to przepływ pracy, który obejmuje niepowodzenia — od komunikatów kompilatora po wyjątki runtime — jako główny mechanizm kierowania partnera AI ku poprawnemu rozwiązaniu.

Zamiast dążyć do perfekcyjnego pierwszego szkicu, używasz szybkiego, iteracyjnego cyklu “błąd → naprawa → ponowne uruchomienie”. To podejście zapewnia AI najjaśniejszą, najbardziej bezpośrednią możliwą informację zwrotną, pozwalając mu systematycznie rozwiązywać nawet najbardziej złożone problemy.

Cykl EDD jest prosty, szybki i niezwykle skuteczny. Wykorzystuje zdolność AI do szybkiego analizowania złożonych komunikatów błędów i proponowania celowych rozwiązań.

1. Zacznij od błędu

Twoim punktem wejścia jest niepowodzenie. Może to być raport błędu z produkcji, stack trace z usługi monitorowania błędów (jak Sentry), niezdany test z potoku CI, lub prosty błąd kompilatora w lokalnym środowisku.

2. Przekaż błąd do AI

Dostarczasz kompletny komunikat błędu, włączając stack trace i wszelki istotny kontekst, bezpośrednio do asystenta AI. To najważniejsza informacja, jaką możesz mu dać.

3. AI diagnozuje i naprawia

AI analizuje błąd, porównuje go z bazą kodu, diagnozuje główną przyczynę i proponuje konkretną zmianę kodu do naprawy.

4. Zastosuj i uruchom ponownie

Stosujesz poprawkę i ponownie uruchamiasz dokładnie ten proces, który spowodował błąd. Jeśli błąd zniknął, skończyłeś! Jeśli pojawi się nowy błąd, po prostu przekazujesz nowy błąd z powrotem do AI i powtarzasz cykl.


  1. Pobierz stack trace. Użytkownik zgłasza błąd, a twoja usługa śledzenia błędów (np. Sentry) przechwyciła wyjątek. Skopiuj całą ścieżkę stosu.

  2. Promptuj AI. Dostarcz stack trace i odpowiednie pliki kodu do AI.

    Mamy błąd na produkcji. Oto stack trace z Sentry:
    [...wklej pełny stack trace...]
    Odpowiednie pliki to prawdopodobnie @/src/services/payment.ts i @/src/controllers/checkout.ts.
    Proszę przeanalizuj błąd i napraw go.
  3. Otrzymaj i zastosuj poprawkę. AI zidentyfikuje linię kodu powodującą NullPointerException i zasugeruje poprawkę, taką jak dodanie sprawdzenia null lub zapewnienie prawidłowej inicjalizacji obiektu. Stosujesz zmianę i błąd zostaje rozwiązany.

  1. Wprowadź zmianę. Refaktoryzujesz duży, starszy moduł. Wprowadzasz zmianę, o której wiesz, że coś zepsuje, na przykład zmiana sygnatury głównej funkcji.

  2. Uruchom kompilator/testy. Uruchamiasz kompilator lub pakiet testów i witają cię długą listą błędów.

  3. Deleguj do AI. Zamiast ręcznie naprawiać każdy błąd, przekazujesz cały log błędów do AI.

    Zmieniłem sygnaturę funkcji `calculate`. Oto wynikające błędy kompilatora. Proszę napraw je wszystkie.
    [...wklej pełne wyjście kompilatora...]
  4. Iteruj aż do czystości. AI będzie pracować nad błędami jeden po drugim, naprawiając instrukcje importu, aktualizując wywołania funkcji i korygując niezgodności typów. Może to zająć kilka cykli, ale systematycznie rozwiąże wszystkie awarie, kończąc w minuty zadanie, które mogłoby zająć człowiekowi godziny żmudnej pracy.

Przyjmując mentalność rozwoju kierowanego błędami, uczysz się kochać błędy. Nie są już przeszkodami, ale drogowskazami, wskazującymi tobie i twojemu asystentowi AI najkrótszą drogę do działającego rozwiązania.