Poslední dobou hodně vibecoduju. Jako senior sice spíše řeším architekturu SW a přizpůsobení SW firmě a naopak, ale občas nějaký ten frontend taky napíšu. Teď s Cursorem jsem ale za poslední 3 měsíce udělal víc užitečné práce, než za poslední 3 roky, zcela vážně. Věc, kterou vím jak zhruba udělat, co bych dělal třeba týden, mám za jedno dopoledne, a za druhé dopoledne to mám odladěné. Naprostá bomba. Sice ještě trošku bojuju s konzistencí kódu a designu, ale postupně se učím líp a líp promptovat, přesněji instruovat agenty, opravdu to není jen tak, to asi potvrdí každý, co se tím víc zabývá. Fakt to vidím že je to něco jako nový obor a jsem rád, že jsem schopný držet krok s dobou. Ignorovat to je cestou do pekel.
Začínám přirovnávat "tradiční programování" k ručnímu obdělávání pole a vibecoding k sezení v traktoru s GPS.
Zatím je to tak, že to dělá na základě mého kódu další kód, používá to moje metody, styl psaní, atd. Sem tam něco ručně opravím, pořád to je ještě tak, že se v tom kódu vyznám.
Jen jednoho se do budoucna děsím - abych nezakrněl. Těch ručních zásahů dělám míň a míň, občas si nechám udělat i nějaký hobby projektík, na který dříve vůbec nebyl čas (třeba i v jazyce/frameworku o kterém vůůůbec nic nevím), a tam ten kód nevidím vůbec, nepotřebuju to.
Těžko říct co přesně je vibecoding a co dělám přesně já, já to tak pochopil, ale někdy mám v těch termitech docela guláš :D
Jinak ono to není jen o tom vědět jak a na co se zeptat, to (asi?) vím taky. Spíš když doslova říkám "potřeboval bych aby bylo takové a takové GUI, kde uživatel bude vybírat to a to, a bude se tam objevovat takovejhle graf kterej bude znázorňovat odhady tamtoho", aby tam byl i nějaký konzistentní styl na pozadí, aby to nebylo každej měsíc s novou verzí agenta dělané jinak, aby to nehrabalo zbytečně do jiných metod, aby to zbytečně nedělalo spoustu pomocných jednořádkových funkcí, které dělají jenom return, aby to počítalo s budoucím rozšiřováním, apod. Prostě taková ta omáčka k tomu. Když jsem tomu nechal moc velkou volnost, sice to fungovalo, ale na pozadí byl zbytečnej guláš.
> tiez sa mi paci ako tvrdia, ze tomu davaju architekturu, pricom ta je urcena kniznicou, co pouzivaju (React)
To nie je vobec pravda. Aku strukturu date Context objektom. Pouzijete hooks, ake. Na komunikaciu REST, websocket, push, bus, ....?!?
Specialne React zdalake nedefinuje architekturu aplikacie. React je relativne jednoducha a minimalisticka kniznica. Ine frameworky ako napr. angular vas tlaci do vacsich zavislosti a je v nich menej miesta na vlastnu architekturu ale vsetko sa da.
Začínám přirovnávat "tradiční programování" k ručnímu obdělávání pole a vibecoding k sezení v traktoru s GPS.
Já bych to spíš přirovnal k ruční výrobě bot vs výrobě na páse. Ruční výroba od dobrého ševce bude vždycky lepší, akorát než on dokončí jedny boty, pás jich vychrlí 1000. Kód generovaný AI bude masovka, ale pořád budou oblasti, kde bude výhodnější napsat kód pečlivě ručně. Tam, kde ani tak nezáleží na tom, jak rychle vznikne, hlavně, aby byl vysoce optimalizovaný, protože potom poběží na milionech strojů.
Jinak taky si myslím, že dojde k prozření, že psaní kódu není ve skutečnosti ten bottleneck. Že je to o nápadu, dotažení ze strany UX... Teď vznikají díky AI mraky nového kódu, ale o velmi málo z toho se dá říct, že se jedná o inovativní a uživatelsky hodnotný software.
K tomu už dochází. Jen jak je to hype, pořád k tomu přicházejí lidé, co o vývoji softwaru věděli doteď naprosto kulové ale teď zaručeně ví, že vývojáře určitě vůbec nepotřebují a tak to vykřikují kudy chodí.
Vtipné je, že na LinkedInu to jsou zcela typicky různí chytráci z agentur, kde obecně kdo ví, jak často vypadají jejich výstupy, musí konstatovat, že mají vlastně pravdu protože ta AI skutečně dává o dost lepší výstupy než oni. Ale to opravdu není celý svět.
Já bych se trošku ohradil proti tomu přirovnání. Pokud nepočítám gumáky a podobně, tak každé boty, které obsahují šité spoje, jsou pravděpodobně stále ručně šité! Je v tom vysoká míra automatizace, lidská práce je degradována na operátory strojů jak z komedie s Chaplinem ale představa, že na jednom konci nasypu do stroje kůži a další materiály a na konci linky mi padají boty je nereálná.
Hele, nechci tím však rozporovat Tvůj názor, celkem s ním souhlasím. Jen chci upřesnit, že boty (obecně oblečení a obecněji šité věci celkově) jsou stále plné manuální práce (pro tolik zde oblíbené lopaty).
(Jen pro představu, takový průmyslový šicí stroj šije až cca 5000 stehů za minutu, což v praxi znamená, že například nejdelší šev na koženkovém potahu opěradla autosedačky je ušitý za ~7s)
těží ale ze své minulosti a svých znalostí, vibecoding ti je dále nerozvíjí, než už tak rychle. Bude vznikat dluh, méně zkušení budou mít větší a větší problémy ty zkušenosti získat. AI, kterou vedeš za ručičku, sice udělá svoji práci nakonec dobře, ale nezíská tvoje zkušenosti, jak by se to stalo, kdybys vedl tým juniorů.
Tohle bude zajímavé sledovat.
Přesně. To se pořád pokouším někomu vysvětlovat -- že děláním pouze code-review doménovou znalost o produktu fakt nezískám ani nenajdu systémově-kritické věci. Že takhle jednoduše to fakt nefunguje. Jenomže některým, co chápat nechtějí protože to, co čtou třeba na tom LinkedInu je přece tak lákavé je trochu marné to vysvětlovat.
S tim technologickym dluhem naprosty souhlas.
Delal jsem vibecoding asi 3 dni. Vysledek? Ztratil jsem kontrolu na kodem. Uz to neni muj kod, nevim co kde je a co je nejhorsi nabouralo to v par bodem architekturu programu. Pak jsem to tyden cistil a prepisoval/opravoval.
Rikam ok. Pouceni pro priste. Tak jsem to pouzil alespon na tvorbu unittestu. Nejdriv parada. Testy pribivali, odhalovali problemy, ale pak jsem neco zmenil a polovina testu ve fail. Znova jsem se podival na ty testy, ted uz podrobne a zjistil jsem ze to testuje spatne. Spoustu testu jsem vyhodil a dalsi prepsal. Protoze kdyz vam po trivialnim zasahu spadne vic jak 100 testu tak co? Necham ty testy znovu zapsat tu AI? No to bych byl samovrah. Vzdyt ja se do tech testu musim podivat a zjistit jestli je to falesny nebo pravdivy poplach. Pri velkym mnozstvi ztratim mnoho casu kontrolou. Takze tady taky nic.
PS: AI je vyborna na dilci ukoly. Napis funkci, zoptimalizuj tento kod. Zjisti co to dela. Ale psat kod? Nikdy. Jestli to delate pilite si vetev pod sebou, nebo vas nezajima co bude s tim kodem za mesic.
Zdeno, Ai s tím, co bude s tím kódem za měsíc nijak nesouvisí. To je právě na vás abyste tu kontrolu neztratil. Pokud necháte AI dělat velké bloky a pokud se navíc o tu kontrolu necháte připravit, je to chyba vaše, nikoliv té AI.
A, btw, některá hlediska unit testů v AI době pozbyla na významu. Jiná naopak narostla. je potřeba to reflektovat.
U těch testů souhlas a už se mi i stalo, že AI vyřešilo problém selhávajícího testu tak, že ho změnilo tak, aby vždycky prošel. Problém vyřešen. :D Jen se spoléhat na to, že to testuje to, co má a správně, se fakt nemusí v budoucnu šeredně vyplatit.
Udržet ten zdravý poměr mezi kontrolou a nechání to na AI je fakt hodně těžké. Myslím si, že většina časem podlehne kognitivní rezignaci.
Co jsem si ještě všiml, je, že AI hodně zhoršuje koncentraci. Mezi ajťáky je plno lidí s ADHD, vždycky to byl problém, ale přijde mi, že v poslední době se to u těchto lidí ještě podstatně zhoršilo. Už tam není ten čas koncentrace, kdy se člověk na delší dobu ponoří do kódu. Spíš je to neustálý kontext switching: zadám prompt, přepnu na něco jiného atd. Lidi, kteří i dřív skákali z úkolu na úkol, teď klidně vyrobí 10 malých projektů týdně. Dostanou nápad a dostat ho do prototypu je teď přece tak snadné... akorát žádný z těch projektů nikdy nedotáhnou. Na callech už se s některými nedá pořádně domluvit, protože v jednom kuse mentálně přecházejí k tomu, co jim zrovna vrátila AI a co má být další prompt, aby práce nestála.
Já praci s AI přirovnávám k párovému programování. Dělám tomu druhé oči a vedu ho, aby to ve finále vypadalo, jak si přeju. Jakmile však začnete s agent programming, ze mu dáte Jira task, aby vytvořil branch, napsal řešení včetně unit testů, tak tady imho začíná cesta do pekla dlážděná (snad) dobrými úmysly.
Je to schopno vygenerovat kód, který se velmi špatně reviewuje. A když pak na poradě manager doporučí dělat code review také pomocí AI… To bude ještě jízda.
Code review pomocí AI může doporučit asi jenom ten manager. Protože ostatní občas i něco vyvíjeli a tuší, která bije. Code review toho kódu se nedělá zase tak špatně. Pokud trváte na tom a staráte se, aby byl čitelný. A pokud není, tak to PR prostě rejectnete ať se laskavě autor postará o to, aby byl. Tohle je hlavně o nastavení procesů.
A unit testy jsou obecně zajímavý příklad. TDD s AI docela dobře funguje ale tak nějak to odstraňuje AI agilitu jako takovou nemluvě o tom, že je třeba hlídat ji, aby neohýbala ty testy. Tam, kde působím se atokonto unit testing na už existujícím projektu v podstatě přestal reálně používat protože se tímhle staly de facto zbytečnými. Řešíme co s tím a chceme přejít na nějaké hybridní testování o něco vyšších funkčních jednotek. Uvidíme, kde se tohle usadí. Ale my máme výhodu v dost důkladném QA oddělení takže si to můžeme dovolit.