# Inżynier Google o pułapkach agentów AI w devtools: od spaghetti-kodu do refaktoryzacji w Rust
Inżynier Google Lalit Maganti poświęcił trzy miesiące i ~250 godzin na development syntaqlite — zestawu narzędzi dla SQLite: parsera, formattera, lintera i serwera LSP. Pierwszy podejście z pełną delegacją na Claude Code doprowadziło do niekontrolowanego kodu, który prishlos wyrzucić. Przejście na Rust z AI jako autouzupełnieniem dało działający release 0.1.
Pierwsza iteracja: delegowanie AI i chaos w kodzie
Maganti zaczął od maksymalnej automatyzacji: Claude projektował i implementował, autor pełnił rolę menedżera. W ciągu miesiąca stworzono:
- Parser na C.
- Formatter.
- Interfejs webowy.
- 500+ testów.
Rezultat działał funkcjonalnie, ale przegląd kodu ujawnił problemy:
- Funkcje rozrzucone po plikach chaotycznie.
- Moduły rozrosły się do tysięcy linii.
- Pipeline ekstrakcji kodu ze źródeł SQLite stał się niejasny nawet dla autora.
Kodowa baza zamieniła się w 'spaghetti'. Rozwiązanie: całkowita rozbiórka i restart.
Druga iteracja: Rust, ręczne projektowanie, AI-autouzupełnienie
Zmieniając stos technologiczny na Rust, Maganti wziął architekturę na siebie. Claude był używany do generowania kodu według precyzyjnych specyfikacji z rygorystycznym przeglądem.
Kluczowe praktyki:
- Automatyczne testy: Driver sprawdzał każdy zapytanie SQL na 1390 testach upstream SQLite, porównując z parserem syntaqlite.
- Ciągły refaktoring: Każda zmiana przechodziła ręczny przegląd.
- Dziennikowanie: Dziennik (~4000 słów), transkrypty sesji, historia commitów.
Rdzeń zebrano w lutym, release 0.1 — połowa marca. Projekt dojrzewający 8 lat zrealizowano jako side-project.
Problemy agentów AI: od uzależnienia do utraty kontroli
Maganti porównuje pracę z Claude do automatu do gier:
- 'Jeszcze jeden prompt' wciągał do nocy.
- Zmęczenie obniżało jakość promptów.
- Utrata 'poczucia' bazy kodu prowadziła do roli menedżera nad obcym kodem.
Komunikacja się załamywała: nieprecyzyjne opisy powodowały błędne interpretacje. AI jest silny na poziomie funkcji/klas, ale słaby w architekturze, projektowaniu API i kontekście projektu.
Co ważne
- AI wzmacnia implementację, ale nie zastępuje projektowania: modele nie mają 'smaku' i historii.
- Pełna delegacja prowadzi do niekontrolowanego kodu: ręczny przegląd obowiązkowy.
- Rust + AI-autouzupełnienie efektywniejsze niż C + agent: architektura decyduje.
- Testowanie na testach upstream kluczowe dla parserów SQLite.
- Dziennikowanie przyspiesza iteracje: publikujcie dzienniki zamiast one-shot historii.
Rekomendacje dla middle/senior dev
- Używajcie AI do rutyny: autouzupełnienie, refaktoring małych części.
- Zachowujcie kontrolę nad architekturą: modele nie rozumieją długoterminowego kontekstu.
- Wdrażajcie zautomatyzowane pipeline'y: porównanie z testami referencyjnymi (SQLite upstream).
- Dokumentujcie sesje: analizujcie prompty, commity, błędy.
Podejście Magantiego pokazuje: AI przyspiesza side-projekty, ale wymaga dyscypliny. Syntaqlite — przykład równowagi człowieka i agenta w złożonych devtools.
— Editorial Team
Brak komentarzy.