Przejdź do głównej zawartości

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

CI jest czerwone. Stack trace wskazuje na payment.ts:212, spaliłeś już dwadzieścia minut na zgadywanie, który z ostatnich sześciu commitów to zepsuł, a „poprawka”, którą właśnie wypchnąłeś, zamieniła jeden niezdany test w trzy. Wpatrywanie się w błąd mocniej nie działa.

Komunikat błędu to najbardziej precyzyjna specyfikacja tego, co jest nie tak, jaką masz — i jest dokładnie tym wejściem, które asystent AI konsumuje najlepiej. Rozwój kierowany błędami (Error-Driven Development, EDD) opiera się właśnie na tym: zamiast celować w idealny pierwszy szkic, prowadzisz ciasną pętlę błąd → naprawa → ponowne uruchomienie i pozwalasz każdemu niepowodzeniu sterować następną zmianą. Robione świadomie, zbiega szybko nawet przy paskudnych kaskadach.

  • Powtarzalną pętlę błąd → naprawa → ponowne uruchomienie, którą możesz prowadzić w dowolnym z trzech narzędzi
  • Gotowe prompty dla produkcyjnego stack trace’a, kaskady kompilatora i pętli niezdanego testu
  • Mechanikę specyficzną dla narzędzia: kto uruchamia testy, kto cofa złą poprawkę, kto iteruje bez nadzoru
  • Skrót MCP, który pobiera dla ciebie zgłoszenie z Sentry zamiast kopiowania-wklejania stack trace’ów
  • Tryby awarii samej pętli — gonienie za niewłaściwym błędem, naprawianie objawów, pętla na niestabilnych testach

Cykl jest wszędzie taki sam — wydobądź błąd, przekaż go AI z wystarczającym kontekstem, zastosuj poprawkę, uruchom ponownie dokładnie to, co zawiodło. Różni się to, kto uruchamia polecenie i jak wycofujesz złą poprawkę.

W trybie agenta Cursor sam uruchamia testy lub build, czyta wyjście terminala i iteruje bez kopiowania-wklejania z twojej strony. Siatką bezpieczeństwa są checkpointy: każda edycja agenta to punkt przywracania, więc gdy „poprawka” pogarsza sprawę, cofasz się do ostatniego zielonego stanu jednym kliknięciem, zamiast to rozplątywać.

Najlepsze, gdy chcesz patrzeć, jak pętla się dzieje, i wkroczyć w chwili, gdy zboczy z kursu.

Użytkownik trafił na crash, a twój tracker błędów przechwycił wyjątek. Najszybsza droga to dać AI trace plus pliki, które wskazuje.

  1. Pobierz trace. Skopiuj pełny wyjątek z Sentry — błąd runtime i stos, nie tylko górną linię.

  2. Przekaż go z podejrzanymi plikami. Nazwij pliki, by AI nie musiało grepować na ślepo.

  3. Zastosuj i uruchom ponownie. Poprawka powinna zaadresować to, gdzie total stało się undefined (powiedzmy: nadrzędny koszyk bez pozycji), a nie tylko doczepić ?. w linii 212. Uruchom ponownie ścieżkę, która zawiodła; jeśli wyłoni się nowy błąd, przekaż go z powrotem i powtórz.

Zmieniłeś sygnaturę kluczowej funkcji i kompilator rozbłysnął trzydziestoma błędami w całej bazie kodu. To słodki punkt EDD — błędy są dokładną, wygenerowaną maszynowo listą zadań.

  1. Wprowadź zmianę i uruchom sprawdzacz typów. Nie naprawiaj jeszcze niczego ręcznie; pozwól, by pełna lista błędów się zmaterializowała.

  2. Deleguj całą listę. Daj AI prawdziwe wyjście kompilatora i pozwól mu się przez nie przebijać.

  3. Iteruj aż do czystości. Agent naprawia miejsca wywołań, ponownie uruchamia sprawdzacz typów i powtarza. Zadanie, które ręcznie to godzina mozołu, kończy się w kilka cykli — AI nigdy się nie nudzi przy dwudziestym siódmym miejscu wywołania.

Najmocniejsza forma EDD to napisanie najpierw niezdanego testu, a potem pozwolenie AI, by samo doprowadziło się względem niego do zieleni. Test jest jednoznacznym wyrocznią, więc pętla kończy się sama.

To ostatnie zdanie ma znaczenie: bez niego nadgorliwy agent czasem „naprawi” niepowodzenie, rozluźniając asercję. Przypnij test jako specyfikację.