Pár postřehů z oblasti, která se snaží být "AI first":
- klade to obrovské nároky na člověka, který dělá review (a gating). Toto není dobré podceňovat, protože jinak bude z projektu za pár měsíců naprostej hnůj, kterému nikdo nebude rozumět.
- snad ještě větší nároky to klade na toho vývojáře, který dělá PR (změny). Musí nebo by si měl uvědomit, že by měl odevzdat kvalitní PR, je to jeho práce, za to je placenej, nakonec je to i jeho vizitka. Hodně často se lidi nechávají unést a posílají strašný borčus s tím, že to jede, tak jako co je zaproblém (a to jsme u bodu jedna). A ještě je to chápáno jako vysoká produktivita.
- spíš osobní názor: mnohem líp se mi píše/upravuje kód, než čte kód někoho jiného. S AI nástroji se to hodně posouvá do té druhé oblasti.
- taky je dobré se zamyslet nad autorským zákoníkem atd. atd. Toto je dost neprobádaná oblast, ale vůbec bych se nedivil, kdyby se začaly objevovat žaloby z různých stran (takže vývojář by měl používat "posvěcené" nástroje a ne cokoli se na webu namane).
[tyjo dneska jsem nějak pesimistický, nechci kazit nadšení, ale...]
Nekazíte nadšení; to je naprosto aktuální problematika na řadě projektů.
Ještě bych k tomu doplnil, že ten vývojář nejenže by měl odevzdat kvalitní PR, ale taky by měl rozumět, co ten kód vlastně dělá. Vypadá to jako naprostá samozřejmost ale právě s AI se ukazuje, že to samozřejmost není. Z AI jsou v mém okolí zcela zcela typicky nejnadšenější buď lidé, co v životě nic nevyvíjeli nebo lidé, co -- diplomaticky řečeno -- nejsou jako vývojáří žádná světla. Ti druzí si u toho neuvědomují, že pokud AI má ambice někoho nahradit, tak samozřejmě jako první právě je. Ale to je jiná věc.
A u juniorů to dnes už vůbec není samozřejmost. Kolega -- co se, mimochodem AI zabývá -- teď dělal řadu pohovorů a ukázalo se, že skoro všichni se snaží používat AI a většina z těch lidí vůbec nerozumí tomu, co z ní padá ven natož aby to byli schopni sami napsat nebo nedejbože spravovat. A je to masový jev.
že to takhle dopadne bylo jasné už před 3 roky - je to další z mnoha technologií, které mají zvyšovat produktivitu - nicméně neřeší primární problém, což je komplexita IT technologií. Myslet si, že AI pomůže s naučením čehokoliv - a) minimum lidí jede v učícím se módu - viz SQL buildery po Stack overflow, b) při výuce je potřeba znalosti podat ve správném pořadí a správném důrazu, c) bez lidského mentora AI pořád generuje příliš mnoho halucinací d) na výuku potřebujete čas, který v praxi mít nebudete - tuplem, když se budete snažit fixovat problém, kterému nerozumíte.
V podstatě to bude jenom horší. Nutíme lidi skákat do čím dál tím víc rozjetého vlaku.
Dneska se ti na pozici vyvojare prihlasi clovek, ktery nechape zakladni techniky lilbovolnyho kodu. Napriklad netusi co je to smycka a k cemu je to dobre.
A co se AI tyce, je to cca mesic co prisel zakaznikovi uchazec, a prvni cim se chlubil bylo, ze nepotrebuje aby ho nekdo zaskolil, ze na vse pouziva AI. Tak mu bylo receno, ze v tom pripade bude AI levnejsi nez on, a ze ho firma nepotrebuje.
Myslel jsem, že tato doba pominula. U pohovorů dávno nejsem, ale nezapomenu na chudák ženskou, která se po dlouhé mateřské někdy v roce 1998 chtěla vrátit do "oboru". Předtím pracovala jako obsluha sálového počítače. Hlásila se na pozici (tehdy se tomu tak říkalo) samostatný programátor - analytik v C. Nebyla schopna popsat algoritmus nalezení největšího čísla v posloupnosti, ne tak ještě napsat nějaký kód. (K největšímu číslu jsme dospěli nějak tak, že jsem chtěl kód v C pro seřazení, pak kód v C pro nalezení největšího, pak aspoň popis algoritmu. Nikde nic.) Nakonec se ještě rozčilovala, že bychom chtěli, aby uměla "všechno" už při nástupu. Až mi jí bylo líto. (Nevzali jsme ji.)
ženské po mateřské jsou kapitola sama pro sebe, zrovna tenhle týden jsem vysvětloval jedné (pracuje ve vývoji SW) po 8mi letech mateřské jak se zruší schůzka v kalednáři, bohužel návrat po tak dlouhé době je pro ně dost drsný a záleží na firmě, jak se k tomu postaví, u nás se snaží o začlenění, ale je to těžký pro všechny
Zatím se mi ovědčily dvě uplatnění kde mě LLM neirituje.
- Tvorba scaffoldingu. Když třeba píšu API service, mám už pár existujících endpointů a chci napsat další které budou sledovat stejné schéma, nechat si napsat jejich kostru a vygenerovat testovací requesty pro HTTP client v Jetbrains IDE je fajn, a zkontrolovat že je výsledek správně jde jen přelétnutím očima
- chytřejší autocomplete. Občas mi to už při psaní doplní zbytek řádky kterou stejně plánuju napsat, tam ten overhead kontroly generovaného kódu není nijak velký
Plný vibe coding přes agenty je spíš bolest a bere mi radost z práce.
Já je používám pro generování unit testů. Dokáže efektivně a rychle odhalit a pokrýt edge casy, navíc je to práce, která vyžaduje dost odlišný mindset od běžného vývoje (čili se mentálně úplně přepnout), je monotónní, zdlouhavá a naprosto nezáživná. AI v tom zdaleka není dokonalá ale vyhrává to, že je pořád méně nepříjemná, než psaní těch testů jako takových.
Vibe coding je skvělý na prototypy nebo na aplikace malého rozsahu, které neplánujete nějak podstatně udržovat. Skripty, malé tooly s UI i bez a podobně. Takhle jsem si tu doslova za hodinu vyrobil lepší ekvivalent textového prohlížeče souborů z Double Commanderu napsaný v Pythonu a GTK. Stál v tokenech asi tři dolary. Funguje, dělá to, co chci, kód je strašný ale vzhledem k tomu, k čemu je to je naprosto jedno. Tvořit takhle velké projekty bych ale fakt nechtěl. To je to, čeho se obávám víc, než že mě AI nahradí: tohle jednoduše není práce, ani výsledky, kterou bych chtěl dělat a které bych chtěl odvádět a proč jsem do IT přišel.
Už tak stačí, že se ten obor za posledních patnáct let lidsky poměrně dost proměnil a natáhla se do něj postupně spousta lidí, co mají dojem, že rozumí všemu, reálně toho neumí mnoho ale všude byli, od všeho mají klíče a masírují si hlavně vlastní ego. To dřív tolik nebývalo. A AI to ještě akceleruje.
Já je používám pro generování unit testů. Dokáže efektivně a rychle odhalit a pokrýt edge casy, navíc je to práce, která vyžaduje dost odlišný mindset od běžného vývoje (čili se mentálně úplně přepnout), je monotónní, zdlouhavá a naprosto nezáživná. AI v tom zdaleka není dokonalá ale vyhrává to, že je pořád méně nepříjemná, než psaní těch testů jako takových.
Tak tohle mi přijde naprosto šílený a výsledek je kolikrát stejný, jako kdyby tam testy nebyli. Fakt miluji procházet mraky testů co někdo vygeneroval a ani nezkontroloval a pak přemýšlet proč zrovna tenhle test padá a co tím autor myslel. Mě psaní testu přijde hodně důležité a to z několika důvodů: 1. člověk si ověří při psaní zda to dobře navrhnul a často zjistí, že by struktura chtěla upravit. 2. Si při tom může zaprogramovat, protože často implementace je třeba pár řádků, ale vymyslet a realizovat jak to rozumně otestovat již jiná věc. 3. Test by měl být udělaný tak, aby šel udržovat. Tim že na hrubou sílu nechám vygenerovat desítky testů tomu fakt nepomáhá.
13. 11. 2025, 22:17 editováno autorem komentáře
Pokud něco generujete AI a důkladně to neprojdete, jste pitomec. To je přece samozřejmost, ne? Ani mě to nenapadlo zmiňovat. Nemluvě o tom, že na řadě projektů je druhou alternativou tam ty testy nemít vůbec protože by vám je nikdo nezaplatil.
Já tedy nic podobného nezjišťuji; maximálně tak, že netestovatelný je celý návrh. Jestli to zjistíte až při psaní testů, děláte něco špatně. Ne, při testech si opravdu nezaprogramuji. Je to neuvěřitelně monotónní práce, z jejíhož vysledku radost opravdu nemám. A unit testy mají testovat malé jednotky kódu. Což je zrovna to, co AI dovede vytvořit spravovatelné a v rozumné kvalitě. Pokud nikoliv, je to zase vaše chyba. Ať už tak, že testujete něco, co nemáte nebo tak, že jste to vy nechal složité.
Takže mně zase přijde trochu šílený to, co píšete.
14. 11. 2025, 10:05 editováno autorem komentáře
Pokud něco generujete AI a důkladně to neprojdete, jste pitomec.
Já ne, ale je spousta lidí to takhle normálně dělá, navíc se k tomu ani nepřizná.
Nemluvě o tom, že na řadě projektů je druhou alternativou tam ty testy nemít vůbec protože by vám je nikdo nezaplatil.
Jo tohle už jsem několikrát slyšel (u pohovorů), že mu ty testy nikdo nezaplatí (a nebudu ani zmiňovat co za typ lidí tohle říkal). Stejně jako vám nezaplatí spoustu věcí a děláte je např. mezery, komentáře, sestavení, nasazení atp. Je to jenom výmluva jak to celé ojebat nic víc nic míň. A jestli si mám vybrat mezi tam testy nemít nebo tam mít kupu nagenerovaného hnoje, který často nemusí být ani správný tak varianta bez testů je mnohem lepší, aspoň mi nedává falšený pocit, že to mám nějak otestované.
Já tedy nic podobného nezjišťuji; maximálně tak, že netestovatelný je celý návrh. Jestli to zjistíte až při psaní testů, děláte něco špatně. Ne, při testech si opravdu nezaprogramuji. Je to neuvěřitelně monotónní práce, z jejíhož vysledku radost opravdu nemám.
Tohle je fakt komický. Už jenom ten přístup k tomu, že to je otrava ukazuje, že to naprosto nechápete. Jestli jste nikdy během testů nezjistil, že je něco blbě nebo by mohlo být mnohem lépe, tak gratuluji, ale z vašeho přístupu bych spíš řekl, že jste se na ty testy normálně vybodnul. Pak je jasné, že se vám to nestane. Ono totiž už ty testy by měli být součástí toho návrhu.
A unit testy mají testovat malé jednotky kódu. Což je zrovna to, co AI dovede vytvořit spravovatelné a v rozumné kvalitě. Pokud nikoliv, je to zase vaše chyba. Ať už tak, že testujete něco, co nemáte nebo tak, že jste to vy nechal složité.
Jenže všechno nejsou jenom unit testy. Např. integrační jsou stejně důležité. Často teď vidím, že nad tím lidi ani nepřemýšlí a místo toho aby udělali test parametrizovaný, tak jim AI vygenruje ty testy pro každý case, se stejným kódem a lišící se jenom v jednom parametru.
Příteli, vývoj platí ten, kdo vývoj projektu objednává a vede. I kdybych se stavěl na hlavu a chodil po uších, prostě by mi třeba na projektu, na kterém jsem několik let pracoval peníze na testy nikdo nedal. A ani ne tak proto, že by nechtěl. Ale prostě ty peníze neměl. Je úplně irelevantní co si o tom myslíte. A je dokonce úplně irelevantní, co jsem si o tom myslel a myslím já. A takových projektů jsou spousty. A stejně, jako evidentně nemáte představu o časté praxi, nemáte ani představu o tom, co AI co se testů týká vygenerovat dovede či nedovede. Což je typické.
Co chápu a nechápu naprosto nesouvisí s tím, co je a není otrava. To je další vaše kombinace sebestřednosti, arogance a demagogie. Dělám v životě spousty věcí, které jsou nutné ale jsou otrava. Ne, opravdu nepíšu testy s nadšením a je úplně jedno, co by mělo nebo nemělo být součástí návrhu. To je krásná teorie, která je automagicky pravdivá ale jaksi odtržená od podstatně zelenější praxe. Vy jste obecně takový teoretik, toho už jsem si všiml mnohokrát.
A co se týká typu testů, myslím celou dobu unit testy. Je to napsáno hned v prvním nebo druhém příspěvku v první větě.
Šokující novinka nikdo ti nikdy peníze explicitně na unit testy nedá. Nemít testy kvůli tomu, že ti na to někdo nedal explicitně peníze je jenom obyčejná výmluva. Psaní testů je prostě součást vývoje a jestli to někdo nedělá, tak to prostě ojebává. Fakt miluji když musím řešit, že má nějaký projekt problémy a zjistím, že nemají vůbec žádné testy. Pak začne kolečko, kdy začnou tvrdit, že na to nebyl čas a peníze a že dodělat to v současné situaci by bylo na dlouho. Takže se nic neušetřilo, jenom se problém posunul do budoucna a snad i na někoho jiného. Tímhle se liší senioři od juniorů, protože senior už si tímhle jednou prošel a je si toho dobře vědom. Jak by se vám líbilo kdyby vám např. u auta vyměnili kola a nezkontroloval, že jsou všechny šrouby dotažené a klidně se vsadím, že za to taky nikdo explicitně neplatí.
Představu jak vygenerované testy vypadají mám velmi dobrou, protože 1. to taky využívám a 2. spousta lidí najednou v posledním roce začalo psát hromadu testů i když to posledních několik let nedělali a nechali se za to při review buzerovat.
Já se musím kolegy zastat, protože jsem z oblasti "levně a ještě levněji", a tam není prostor ani na testy, ani na jakékoli chyby. Na vývoj je takový předepsaný rozpočet, že to prostě musíš napsat správně, rychle a na první dobrou. Když už si napíšu test, tak jde o nějakou kritickou sekci, která by to "levně a ještě levněji" dost prodražila, vše ostatní prostě musíš psát bez chyb. Tak to v této oblasti prostě chodí.
Pokud je to tvoje firma, tak to asi jde ještě pochopit - prostě honba za ziskem za každou cenu (myslím si o to své, ale pochopit se to dá).
Ale jako zaměstnanec bych se takto o******t nenechal, zaprvé to není profesionální, zadruhé snad máš nějaký zásady i trošku rovnou páteř ne?
Za třetí na první dobrou stejně nikdo nic nenapíše, pokud nejsi superčlověk (a potom se tedy vracíme k bodu dva - proč se nechat takto křivit kvůli ziskům někoho jiného?)
O honbě za ziskem se rozhodně mluvit nedá. Prostě jsou i chudší zákazníci, kteří potřebují jít trochu s dobou, a chudší kraje, ČR není jen Praha. Tak to prostě řeším(e) levně, rychle, bez chyb. Jo, chyby se dělají, ale jdeme tomu trochu naproti i výběrem nástrojů a postupů spíš než zpětným testováním, takhle nějak bych to popsal (je to jako si vybrat Rust spíš než Céčko, když s oběma splníte zadání ve stejném čase, ale první z principu brání dělat určitý typ chyb, pokud od něj nepotřebujete nic vyloženě za hranicí "safe". To je jen takový příklad, protože téma Rust vs. C je tu takový pěkný kolorit:-) ).
15. 11. 2025, 11:08 editováno autorem komentáře
Páteř? Pokud mi někdo zaplatí to, co za svůj čas požaduji, udělám mu v rámci vývoje to, co požaduje on potud, pokud je to legální. Takhle jednoduché to je. Neprofesionální je vymýšlet si dodatečné podmínky. Nechce testy? Nebude mít testy. Chce testy? Bude mít testy. Je to jeho odpovědnost, nikoliv moje, spolupráce je tak nastavená, za svůj osud je odpovědný on. Odemne se dozví názor pokud ho je ochoten slyšet, rozhodnutí je na něm.
Samozřejmě, že bych se mohl tvářit děsně odpovědně a řešit, jaké morální, filozofické a technické ohledy v rámci dějin světa a vesmíru to, co chce nebo nechce má. Ale přesně proto nedodávám žádná ucelená řešení a nepodnikám v tom projektovém smyslu. Aby mi tohle mohlo být úplně jedno.
16. 11. 2025, 15:22 editováno autorem komentáře
Nechce testy? Nebude mít testy.
Nechce validaci vstupu („co to je?“), tak ji mít nebude atd. :-) Máte celkem kliku, že (patrně) nedodáváte soukromým osobám, protože tam byste se z té odpovědnosti, tak lehce nevyvlíknul.
Ale jinak souhlasím, že na trhu je místo i pro obkladače, který ty dlaždičky oštípe a nalepí křivě :-)
Pokud mi výslovně sdělí, že ji nechce, mít ji nebude. Co vás na tom překvapuje? Běžně zákazníkům zdarma poskytujete na vlastní náklady to, co výslovně nechtějí? Když bude výslovně chtít naštípat dlaždičky špatně a nalepit je křivě, klidně mu to udělám.
Naštěstí ta nestojí tolik a i dost nesoudný člověk chápe, že potřeba je.
17. 11. 2025, 11:08 editováno autorem komentáře
To snad není možný. Vsadím se, že máte buď smlouvu o dílo nebo na vývoj. Ty testy neuděláte pro zákazníka, ale pro sebe. Je to podpůrný nástroj pro vývoj. Ale to bych čekal, že by měl vývojář vědět (ale pokud někdo tvrdí takové nesmysly, tak nevím jak ho nazvat).
Neřekl vám náhodou zákazník, že nechce testing resp. spíš myšleno jako QA? Ale to je úplně jiná disciplína než vývoj. Často se navíc dělá, že vývoj a QA dělá jiná firma (a dává to smysl).
Prosím hlavně už nikde veřejně nevykládejte, že vám zákazník zakazuje psát unit testy, protože se tím neskutečně ztrapňujete, protože každému zkušenému vývojáři je jasné, že je to jenom výmluva. Jestli chcete vyprávět pohádku jaký jste borec, že vše napíšete správně napoprvé bez testů, což určitě není pravda, tak to hlavně prosím nevykládejte začátečníkům.
Trapný jste ledatak vy s tím blábolením. Ano, jeden třeba výslovně zakazuje. Protože na to prostě nemá. Představte si, že kdybychom třeba na tomhle jeho projektu psali testy, ten projekt už dnes dávno neexistuje. Ale pokrytcům a teoretikům jako vy, co to navíc ještě neplatí tohle vůbec nemá cenu psát :-D
Tak to prostě je. Co si o tom myslíte je naprosto irelevantní. A jak jsem psal, i co si o tom myslím já.
19. 11. 2025, 15:38 editováno autorem komentáře
No jo, vytrhávání z kontextu...
V sektoru "levně a ještě levněji", o kterém píšu, pochopitelně neřešíme složité algoritmické úlohy, jako pan Satai Nekola. Takže to, co platí pro tuto oblast, pochopitelně neplatí pro celek. Chtěl jsem jen podpořit názor předřečníka a přinést na světlo zdejším odborníkům (to je bez ironie, skutečně jsou tu jména, která jsou pojmem) i praktiky ze suterénu.
Chápu, že to nemilujete. Já to také nemiluji. Ale to vůbec nic nemění na té praxi. Když někdo peníze nemá (nebo nechce mít), tak vám to prostě nezaplatí. A charita nejsem. Jak jsem psal, co si o tom myslíte vy nebo já je úplně jedno. Nakonec vždycky rozhoduje ten, kdo to celé platí.
A ne, není to výmluva. Charita prostě nejsem. A vy také ne. To je jen vaše teoretizování a pokrytecké řeči.
16. 11. 2025, 15:30 editováno autorem komentáře
...ostatně fakt by mě zajímalo, jestli bys manželce a dětem až přijdeš domů s poloviční výplatou vysvětloval, že sorry jako, ale "nemít testy je jenom obyčejná výmluva" takže jsi na nich holt musel pracovat zdarma. To je na lidech jako ty nejlepší. Sorry, já jsem na to, abych po večerech zdarma někomu řešil jeho problémy a nevůli už poněkud starej. Právě proto, že už jsem se v tomhle ohledu párkrát spálil. A proto taky nevedu podobné řeči jako ty.
Mimochodem, u výměny kol je za to explicitně platím. To je hodně blbej příklad.
A jak se chodí vám domu a říká manželce, dneska jsem toho zákazníka oje...., protože jsem nedělal svoji práci pořádně?
Jestli ten váš kód nikdo jiný nevidí a nikomu ho nepředáváte (o čemž dost pochybuju), tak si to tak dělejte, ale jestli tomu tak není, tak mějte aspoň trochu soucitu s tím chudákem co to po vás bude řešit a ty testy prostě pište. Tohle jsou zkušenosti z praxe, fakt není nic horšího než přebírat projekt, který je totálně v háji a nemá žádný testy, ale tím si asi musí člověk projít aby mu to došlo. Evidentně to, že je někdo starý na tom nehraje roli. Jestli se někdo spálil kvůli psaní testů (navíc několikrát), tak je problém asi někde jinde a měl by se nad tím co dělá blbě zamyslet.
Mimochodem, u výměny kol je za to explicitně platím. To je hodně blbej příklad.
Vážně chcete tvrdit, že když jdete na výměnu kol, tak máte ceník a v něm je utažení na předepsaný moment 100 Kč a následné překontrolování 50 Kč? Ale no tak. Stejně jako vy, který pečete na testy, se najdou mechanici, kteří na to pečou a budou tvrdit stejné nesmysly jako vy. A stejně jako u vás, když se pak něco pokazí jde to za nima.
Zákazník ví co chce a pokud to neví, pak to ale není můj problém. Já mu názor řeknu a pokud ho neakceptuje, je to opět jeho problém. Takhle jednoduché to je. Vy jste jen obyčejný pokrytec, nic víc, co to rozvíjí dojemné řečičky. Protože to vás narozdíl od tohohle nestojí nic. Prostě diskuzní klasika :-D
A ano, chci to tvrdit. Kam jezdíte měnit kola vy je mi úplně jedno.
Je potřeba si uvědomit, že AI asistent je pouze nástroj, který může být používán různě - nezkušeným člověkem nesprávně (jak popisujete Vy), ale v rukou seniora je to pomocník, který skutečně šetří čas a generuje kvalitní kód nebo konfiguraci.
K zabezpečení kvality výstupu ale nestačí pouze chatování. Je potřeba přidat další úroveň znalostí pro AI - instrukce, které tu kvalitu zabezpečí (např. Github Copilot Custom Instructions). O tom zřejmě budou další části tohoto seriálu.
Vnímám to tak, že psaním instrukcí se trénuje AI pomocník na generování kódu, který dodržuje architekturu systému. Výsledek sice není vždy 100%-ní (a je závislý na denní době - odpoledne, když je vzhůru Amerika jsou výsledky horší) a kontrola je vždy potřeba. Během kontroly ale nečtu "kód někoho jiného", čtu "vlastní" kód vygenerovaný dle instrukcí.
Medior/senior se tím přesouvá do role "údržbáře" instrukcí, čím vlastně popisuje samotnou architekturu - něco ve stylu dokumentace, která se ale aktivně udržuje a používá (na rozdíl od 99% existujících dokumentací :) ). Současně může trénovat jiného juniora, jak v oblasti kódování tak i v údržbě AI instrukcí.
„spíš osobní názor: mnohem líp se mi píše/upravuje kód, než čte kód někoho jiného. S AI nástroji se to hodně posouvá do té druhé oblasti.“
Tohle je zajímavé, že je obecně taková tendence používat AI na psaní kódu, místo na review, kde třeba použití GitHubího Copilotu na code review je fakt super, hezky to ohlídá konzistence a podobný věci.
Možná si málo všímáme toho, na co je AI opravdu dobrý a používáme ho na to, o čem se tvrdilo, že v tom bude dobrý :)