Po kodowaniu: umiejętności, które nadal są ważne dla inżynierów
Gdy modele tworzą kod, decyzje przenoszą się na specyfikacje, przeglądy, architekturę oraz praktyki weryfikacji.
Niech to będzie zaktualizowana wersja idei z artykułu „AI Can Write Your Code. So What Should You Do Now?” przeznaczona dla operatorów: wyraźne etapy, uporządkowane pola na kod oraz notatki odzyskowe, które przetrwają przeniesienie obowiązków. Przegląd funkcjonuje najlepiej, gdy traktowany jest jako mierzalna powierzchnia. Zapisz jeden idealny przykład działania, jeden przypadek awarii oraz notatkę dotyczącą cofnięcia zmian, zanim rozszerzysz zakres pracy. Traktuj ten etap jako umowę pomiędzy danymi wejściowymi a zweryfikowanymi wynikami. Nadaj nazwy poszczególnym elementom, zdefiniuj kryteria sukcesu i odrzucaj ciche, częściowe ukończenie zadań.
Kod staje się tani
Ponieważ kod staje się coraz tańszy, należy zdefiniować dane wejściowe, osobę odpowiedzialną za dany krok oraz kryteria zakończenia przed zmianą kodu. Operatorzy powinni móc ponownie uruchomić dany krok na podstawie znanego punktu kontrolnego, bez konieczności zgadywania ukrytego stanu. Należy rejestrować czasy wykonywania oraz koszt tokenów lub zapytań obok wyników funkcjonalnych. Wczesna widoczność kosztów zapobiega niespodziewanym rachunkom, gdy ścieżka przechodzi z środowiska demonstracyjnego do współdzielonych środowisk. Gdy budżet na to pozwala, należy dodać test dymny, który sprawdza kluczową ścieżkę w procesie CI przy użyciu fixitów, a nie żywych, płatnych API.
Add JWT authentication.
Create login and refresh-token APIs.
Add PostgreSQL persistence.
Write integration tests.
Run the test suite.
Fix failures.
Anthropic pokazuje nam, dokąd to zmierza
Aby Anthropic pokazał nam, dokąd zmierza rozwój, należy zdefiniować dane wejściowe, osobę odpowiedzialną za dany krok oraz kryteria zakończenia przed modyfikacją kodu. Operatorzy powinni móc ponownie uruchomić dany krok na podstawie znanego punktu kontrolnego, bez konieczności zgadywania ukrytego stanu. Konfigurację należy przechowywać poza kodem aplikacji. Pliki środowiskowe, magazyny tajnych danych oraz flagi funkcjonalne powinny znajdować się w jednym miejscu, które operatorzy mogą sprawdzić, nie musząc czytać całej struktury. Gdy budżet na to pozwala, należy dodać test dymny, który symuluje kluczową ścieżkę w procesie CI przy użyciu narzędzi do konfiguracji, a nie żywych, płatnych API.
Is the architecture correct?
Is authentication secure?What happens under 10,000 requests?Can this transaction fail halfway?Will this leak memory?What happens when Redis is unavailable?What happens when the database is slow?Did the AI introduce a race condition?
A potem wydarzyło się coś o wiele większego
Dla: Zanim zmieni się kod, należy zdefiniować dane wejściowe, osobę odpowiedzialną za dany krok oraz kryteria zakończenia. Operatorzy powinni móc ponownie uruchomić ten krok od znanego punktu kontrolnego, bez konieczności zgadywania ukrytego stanu. Należy udokumentować zarówno prawidłowy przebieg działania, jak i ścieżkę naprawczą. Próby ponowne, kontrola przez ludzi oraz obsługa wiadomości błędnych stanowią część produktu, a nie elementy dodawane później. Gdy budżet na to pozwala, należy dodać test dymny, który sprawdza kluczową ścieżkę w procesie CI przy użyciu narzędzi typu fixtures, a nie żywych, płatnych API. Dla: Zanim zmieni się kod, należy zdefiniować dane wejściowe, osobę odpowiedzialną za dany krok oraz kryteria zakończenia. Operatorzy powinni móc ponownie uruchomić ten krok od znanego punktu kontrolnego, bez konieczności zgadywania ukrytego stanu. Traktuj tę fazę jako umowę pomiędzy danymi wejściowymi a zweryfikowanymi wynikami. Nazwij poszczególne pliki, zdefiniuj kryteria sukcesu i odrzucaj ciche, częściowe ukończenie zadań.
Największy błąd, jaki mogą popełnić programiści
Gdy zajmujesz się tematem Największy błąd, jaki mogą popełnić programiści, najpierw zapisz umowę: wymagane dane wejściowe, sygnał sukcesu oraz to, co się dzieje w przypadku częściowego niepowodzenia. Taka lista kontrolna zapewnia uczciwość późniejszych zmian w kodzie. Zapisz czasy wykonywania oraz koszt tokenów lub zapytań obok wyników funkcjonalnych. Wczesna widoczność kosztów zapobiega niespodziewanym rachunkom, gdy przechodzi się z środowiska demonstracyjnego do współdzielonych środowisk. Napisz krótki przewodnik: jak rotować klucze, jak opróżniać kolejkę z zadań, jak cofnąć ostatni proces importu.
@GetMapping("/users")
public List<User> getUsers() {
return userRepository.findAll();
}
Czego więc powinni teraz nauczyć się programiści?
Gdy pracujesz nad tematem „Co więc powinni teraz nauczyć się programiści?”, najpierw zapisz umowę: wymagane dane wejściowe, sygnał sukcesu oraz to, co dzieje się w przypadku częściowego niepowodzenia. Taka lista kontrolna zapewnia uczciwość późniejszych zmian w kodzie. Trzymaj konfigurację poza kodem aplikacji. Pliki środowiskowe, magazyny tajnych danych oraz flagi funkcjonalne powinny znajdować się w jednym miejscu, które operatorzy mogą sprawdzić bez konieczności czytania całej struktury. Napisz krótki przewodnik: jak rotować klucze, jak opróżnić kolej z zadań, jak cofnąć ostatnie zadanie.
Write this.
Refactor this.
Explain this.
Test this.
Fix this.
Convert this.
Don't build it this way.
Here's why.
Here's the simpler architecture.
Here's the failure mode you missed.
Here's what we should measure in production.
Sztuczna inteligencja nie eliminuje potrzeby myślenia
Gdy pracuje się z AI, to nie znaczy, że można zapomnieć o myśleniu – najpierw należy spisać umowę: wymagane dane wejściowe, sygnał sukcesu oraz to, co się dzieje w przypadku częściowego niepowodzenia. Taka lista kontrolna zapewnia uczciwość późniejszych zmian w kodzie. Należy udokumentować zarówno prawidłowy przebieg działania, jak i ścieżkę naprawczą. Próby ponownych działań, kontrola przez ludzi oraz obsługa wiadomości błędnych stanowią część produktu, a nie elementy dodawane później. Napisz krótki przewodnik: jak rotować klucze, jak opróżnić kolejkę z zadań, jak cofnąć ostatnie zadanie. Gdy pracuje się z AI, to nie znaczy, że można zapomnieć o myśleniu – najpierw należy spisać umowę: wymagane dane wejściowe, sygnał sukcesu oraz to, co się dzieje w przypadku częściowego niepowodzenia. Taka lista kontrolna zapewnia uczciwość późniejszych zmian w kodzie. Traktuj ten etap jako umowę pomiędzy danymi wejściowymi a zweryfikowanymi wynikami. Nazwij poszczególne elementy, zdefiniuj kryteria sukcesu i odrzuć ciche, częściowe ukończenie zadań.
Prompt → Copy → Commit → Next task
Nowy inżynier oprogramowania
Nowy inżynier oprogramowania pracuje najlepiej, gdy traktowany jest jako coś mierzalnego. Zanim rozszerzysz zakres pracy, zapisz jeden idealny przykład działania, jeden przypadek awarii oraz notatkę dotyczącą cofnięcia zmian. Zapisz czasy wykonywania zadań oraz koszt tokenów lub zapytań obok wyników funkcjonalnych. Wczesna widoczność kosztów zapobiega niespodziewanym rachunkom, gdy przechodzi się od wersji demonstracyjnej do środowisk współdzielonych. Zaznacz wersje zależności i zapisz hash obrazu, który służył do uruchomienia demonstracji. Reprodukowalność jest lepsza od lokalnej wiedzy zespołu.
Gdybyś dziś był programistą
Jeśli jesteś deweloperem, najlepiej postępować tak, jakby praca nad projektem była mierzalną powierzchnią do analizy. Zapisz jeden idealny przykład działania, jeden przypadek awarii oraz notatkę dotyczącą cofnięcia zmian, zanim rozszerzysz zakres prac. Trzymaj konfigurację poza kodem aplikacji. Pliki środowiskowe, magazyny tajnych danych oraz flagi funkcjonalne powinny znajdować się w jednym miejscu, aby operatorzy mogli je sprawdzić bez konieczności przeglądania całej struktury. Ustal konkretne wersje zależności i zapisz hash obrazu, który został użyty do uruchomienia demonstracji. Reprodukowalność jest ważniejsza od lokalnej wiedzy zespołu.
Lista kontrolna operacyjna
Pracując nad listą kontrolną operacyjną, najpierw zapisz specyfikację: wymagane dane wejściowe, sygnał sukcesu oraz to, co dzieje się w przypadku częściowej awarii. Taka lista zapewnia uczciwość późniejszych zmian w kodzie.
Wolę małe, testowalne jednostki niż rozbudowane skrypty. Gdy jakiś krok zawiedzie, awaria powinna wskazywać na konkretną odpowiedzialność, a nie na skomplikowaną sekwencję działań.
Napisz krótki przewodnik: jak rotować klucze, jak opróżnić kolejkę z zadań, jak cofnąć ostatnie zadanie.
Zdokumentuj zarówno normalny przebieg działania, jak i ścieżkę odzyskiwania po awarii. Próby ponownych działań, kontrola przez ludzi oraz obsługa wiadomości błędowych stanowią część produktu, a nie elementy dodawane później.
Gdy budżet na to pozwala, dodaj test dymny, który symuluje krytyczną ścieżkę w procesie CI przy użyciu narzędzi do testowania, a nie rzeczywistych płatnych API.
Zachowaj konfigurację poza kodem aplikacji. Pliki środowiskowe, magazyny haseł oraz flagi funkcjonalne powinny znajdować się w jednym miejscu, które operatorzy mogą sprawdzić bez konieczności analizowania całej struktury.
Zanim wdrożysz nową architekturę, zamroź wersje oprogramowania, utwórz dokumentację opisującą krytyczną ścieżkę działania oraz potwierdź kroki konieczne do jej cofnięcia. Środowiska współdzielone wymagają ograniczeń szybkości, weryfikacji użytkowników oraz wyraźnego odpowiedzialnego za rotację haseł. Wolisz nudną niezawodność od pomysłowych, jednorazowych demonstracji.
Uwaga dotycząca partii 34004c5d2824: unikaj przechowywania kluczy dostawców w repozytorium, ustaw ograniczenie liczby tokenów na sesję oraz przechowuj transkrypcje obok plików testowych, aby późniejsze zmiany modeli pozostały porównywalne.
Literatura pokrewna
- Kto pisze kod, gdy agenci dołączają do przepływu roboczego? — Przedstawienie asystentów kodowania od funkcji autodopasowywania do zespołów agentów oraz powiązanie poziomu z zasięgiem oddziaływania, testami i kontrolami.
- Umiejętności plus MCP: narzędzia dają władzę, umiejętności nauczają przepływu roboczego — MCP ujawnia możliwości; pakiet Skills organizuje przepływy robocze i zasady bezpieczeństwa, dzięki czemu agenci wiedzą, jakie narzędzia używać, w jakiej kolejności i kiedy prosić o zatwierdzenie.