Zatím tady nezazněla jedna rovina, která mi po nějakých zkušenostech s používáním LLM při vývoji přijde úplně zásadní.
LLM se z mého pohledu opravdu chová jako juniorní kolega, který poměrně do hloubky zvládá defakto libovolnou (veřejně známou) technologii. To je obrovská výhoda. Ale současně se musí držet na extrémně krátkém provazu. Protože rychle generuje velké množství kódu/změn (některé vynikající, některé dobré, některé špatné), jsou k ní naprosto nezbytné velice kvalitní nástroje pro review a akceptaci změn.
A na toolingu prostě narážím. Jsem zvyklý na velice produktivní prostředí v IntelliJ - udržování zatím nekomitnutých změn v samostatných changesetech a přepínání mezi nimi, snadné přesouvání kódu do shelfů. A především přehledný a snadno ovladatelný diff viewer. Bez toho se vývoj nedá pořádně dělat ani v lidech, natož s "dychtivým" juniorem AI, který diffů k review vygeneruje mraky.
Bohužel integrace IntelliJ integrace s kódovacími modely/postupy AI mi přijde hodně pozadu oproti klasice VSCode + integrovaný Copilot Chat (chápu, MS má obojí). Chat vidí na všechny soubory, čte si je jak model potřebuje, spolupracuje daleko agilněji. Jenže navrhne změny a teď co s nimi. To daleko nejdůležitější - diff viewer - je velice nepřehledný, skoro bych řekl téměř nepoužitelný. Nemám k dispozici rozhození ucelených změn do changesetů, ani integrované shelfy, abych si změny mohl uložit pro později. Můžu maximálně co nejčastěji komitovat, abych mohl diffovat jen minimální změny (tedy tak poslední odpověď copilotu), to ale vede na zcela nepřehlednou a nic neříkající historii repozitáře, což je úplně stejně špatně. Často to pak končí "peču na to, beru všechno", čímž jde celý projekt do kopru a x hodin vývoje končí revertem a začneme znovu...
Jaké máte s tímto praktické zkušenosti? Nějak mi nejde do hlavy, že/jak by někdo efektivně dlouhodobě používal nástroje VSCodu pro efektivní review výstupu copilotu. To je pro mě největší překážkou opravdu produktivního využívání AI pro vývoj. IMO jeho schopnosti už jsou docela na úrovni, ale dostupné nástroje pro "hlídání na krátkém provazu" jsou velice nedostačující.
Takže nakonec mi produktivnější přijde vygenerovat změny ve webovém prostředí copilotu a kopírovat je ručně přes "diff with clipboard" v IntelliJ. Což je opruz, ale vede na udržitelný vývoj.
Nebo je již nějaká integrace do IntelliJ na úrovni VSCodu, ale s produktivním pohodlím správy změn v IntelliJ? Díky!