Początkowo chciałem dzisiaj pokazać, jak rozwiązać w Codexie problem zbyt szybkiej pracy. Po głębszym zastanowieniu uznałem jednak, że nie byłaby to szybka kawka, tylko ogromne latte macchiato z trzema dolewkami.
Dlatego zostawię ten temat na kilka mniejszych wpisów i zrobię je na spokojnie w ciągu najbliższych wpisów 🙂
Dzisiaj skupimy się na automatyzacji z AI.
Nie wszystko musi być robione ręcznie
Duża część naszej pracy jest zwyczajnie nudna i manualna.
Wykonujemy weryfikację regresyjną, wielokrotnie pobieramy te same dane, uruchamiamy całe sekwencje komend albo powtarzamy identyczne kroki przy każdym wdrożeniu.
Oczywiście takie procesy można było automatyzować od dawna. Problem w tym, że przygotowanie porządnego skryptu również wymagało czasu. A według mnie wielu developerów nie przykładało do takich wewnętrznych narzędzi zbyt dużej wagi.
Skrypt miał „jakoś działać”, więc działał. Przynajmniej do momentu, aż przestawał.
Teraz, kiedy LLM-y całkiem dobrze radzą sobie z pisaniem kodu, szkoda nie korzystać z tej wygody.
Gdzie AI może pomóc?
Większość takich automatyzacji nie jest szczególnie skomplikowana. Naszym głównym zadaniem nie jest więc ręczne napisanie każdej linijki kodu, ale dokładne opisanie procesu i przypilnowanie poprawności logiki.
Możemy na przykład poprosić AI o przygotowanie:
- komend w
Makefile(jeżeli nie wiesz co toMakefilezobacz ten WPIS) , które uruchamiają cały lokalny projekt, migracje i zestaw testów; - skryptu wykonującego testy wydajnościowe dla kilku wybranych endpointów;
- automatyzacji uruchamiającej profiler i zapisującej wyniki do osobnego katalogu;
- skryptu pobierającego dane z kilku środowisk i przygotowującego raport porównawczy;
- procesu sprawdzającego logi pod kątem konkretnych błędów lub regresji;
- komendy wykonującej serię powtarzalnych operacji przed wdrożeniem albo po nim.
Zamiast ręcznie wpisywać za każdym razem:
docker compose up -d
composer install
bin/console doctrine:migrations:migrate --no-interaction
bin/phpunit
możemy przygotować prosty cel w Makefile:
prepare:
docker compose up -d
composer install
bin/console doctrine:migrations:migrate --no-interaction
bin/phpunit
To oczywiście banalny przykład, ale właśnie o to chodzi.
Nie każda automatyzacja musi być wielkim systemem opartym na agentach, kolejce i siedmiu mikroserwisach. Czasami wystarczy jedna dobrze przygotowana komenda, która oszczędzi nam kilka minut każdego dnia.
AI pisze, Ty weryfikujesz
W takich zadaniach AI sprawdza się bardzo dobrze, ponieważ dostaje jasno określony proces:
- Uruchom konkretną komendę.
- Pobierz wynik.
- Sprawdź warunek.
- Zapisz raport.
- Zwróć odpowiedni kod wyjścia.
To dużo prostsze niż projektowanie złożonej logiki biznesowej.
Nie oznacza to jednak, że możemy bezmyślnie wkleić wygenerowany skrypt i uznać temat za zamknięty. Nadal musimy sprawdzić między innymi:
- czy komendy wykonują się w odpowiedniej kolejności;
- czy błędy zatrzymują cały proces;
- czy skrypt nie usuwa albo nie nadpisuje danych;
- czy wynik faktycznie odpowiada temu, co chcieliśmy zweryfikować;
- czy automatyzacja działa również w mniej oczywistych przypadkach.
AI może wykonać sporą część nudnej pracy, ale odpowiedzialność za jej efekt nadal zostaje po naszej stronie.
Automatyzuj małymi krokami
Nie musisz od razu budować wielkiego systemu automatyzacji.
Zacznij od jednej czynności, którą wykonujesz regularnie i której szczerze nie lubisz. Opisz AI dokładnie kolejne kroki, poproś o przygotowanie skryptu, sprawdź jego działanie i dopiero wtedy go rozwijaj.
Według mnie właśnie w takich małych, powtarzalnych zadaniach AI daje jedną z najbardziej praktycznych korzyści.
Nie robi za nas magii. Po prostu pozwala szybciej pozbyć się pracy, której i tak nikt nie chciał wykonywać ręcznie.