Jak 100h pracy programisty wykonać w 1 dzień roboczy?

2024-09-08

Czasami w pracy programisty zdarzają się zadania, która są po prostu nudne.
Jednym z powodów dla których, jeszcze w podstawówce, nauczyłem się programować była możliwość unikania lub szybszego wykonywania… nudnych zadań.
I tu się pojawia pewien paradoks.

Jak zatem pozbyć się nudnej pracy w programowaniu?


Ostatnio dostałem zadanie internacjonalizacji systemu, który nie był nigdy
do tego celu projektowany. Ludzkim językiem – mamy stronę po polsku, a chcemy mieć w kilku innych językach, ale nikt tego wcześniej nie przewidział.

Zadanie to w dużej części polega na przeklejaniu jednych tekstów w drugie miejsce i zastępowanie poprzednich odpowiednimi frazami.
Z jednej strony to zadanie na tyle łatwe, że przypomina kopiuj-wklej.
Z drugiej nie da się go zautomatyzować przy pomocy samego edytora.
Każda zmiana, choć monotonna, wymaga kreatywności i przemyślenia.

Tutaj właśnie z pomocą przyszła mi sztuczna inteligencja, a właściwie to model językowy (#LLM). Podając jeden przykład prosiłem go o wykonanie podobnej operacji na wszystkich pozostałych przypadkach. Zadziałało doskonale! Pozostał tylko problem zamiany starego kodu na nowy.

Nie chciałem, aby model uzyskiwał dostęp do całego kodu. Było to zbędne dla działania i niebezpieczne dla samego kodu, a tym samym dla firmy.
Na początku poprosiłem o wygenerowanie pliku w formacie diff. Są to pliki, które zawierają listę zmian do wykonania. Wywołując jedno polecenie można zmodyfikować plik we wskazany przez GPT sposób.
Problem w tym, że to… nie działa.
Próbowałem już kilka razy i niestety mały błąd w tym formacie powoduje zaprzestanie działania i kolejne próby nie przynosiły efektu.

Trzeba było wymyśleć coś lepszego. Poprosiłem chat gpt o napisanie mini programu, który dokona odpowiednich zmian i… BINGO!
W 2 minuty minimum 20 minut roboty było gotowe.

Teraz wystarczyło ponowić takie działanie na kolejnych case’ach i wielogodzinna robota została wykonana ekspresem. Bez nudy i marnowania czasu na powtarzalne czynności.

Czy można jeszcze coś ulepszyć?
Oczywiście!
Łącząc z API (interfejs przeznaczony do komunikacji z programami) można by całość ubrać w program…
Być może ujrzy światło dzienne… i to już wkrótce.


Leshek

Leshek