Taky jste si navibekódili aplikaci, co vám vydělává 1M USD měsíčně? Já to udělal, a prozradím vám, jak jsem toho dosáhl a co jsem se u toho naučil.
Jo, přesně takhle začínají linkedinové sakses stories, ale svět nevypadá jako v příspěvcích na LinkedInu. Natož na Instagramu. Svět je takové docela obyčejné a lehce ošuntělé místo.
Ale co naděláte: čtete o tom, tak to chcete zkusit. Mám takový projekt, dělám ho už pěknou řádku let, a je to hodně “niche” věc pro milovníky osmibitových procesorů. Je to assembler, který má IDE a překládá pro všechny možné procesory: od 8008 přes 8080 a 8085, Z80, 6800, 6502 a 6809 až k 1802 a 65816. A když tam je assembler a IDE, tak i debugger, a taky emulátory starých strojů, a všechno to funguje online v prohlížeči, děkuji pěkně, nemáte zač, odkaz je tady: asm80.com
Je to prehistorické, plné jQuery a jQuery UI a já si říkám spoustu let, že až bude čas, tak to předělám. Problém je v tom “až bude čas”. Udělal jsem první část, totiž přepis codebase samotného jádra překladače, do modernějšího ES6, do modulů, s velkým pokrytím testů, udělal jsem to open source, ale pak zase nebyl čas.
No a teď troška času byla. Totiž když máte žlučníkovou koliku, tak nemůžete nic moc dělat, tak se snažíte jen ležet, aby vás to nebolelo víc než to už bolí, a v těch pauzách, kdy si myslíte, že to povoluje, si tak jako přemýšlíte. A já si říkal: Co to nezkusit? A tak jsem jednou takhle pověřil nějakého Claudecoda nebo Opencoda, zkrátka někoho takového, aby udělal to, kde jsem já sám zabředl.
Totiž: už před skoro dvěma lety jsem si řekl, že až to předělám, tak tam bude Monako a nějaký novější FW a kdesi cosi. Vydal jsem se cestou Svelte, v bolestech jsem porodil Svelte s Monakem, pořešil jsem záložky, pak jsem to na chvíli odložil, a když jsem se vrátil, tak Svelte už byl v podstatě React a já bych to musel a) předělat, nebo b) celé zabalit do nějakého “deprecated” a “legacy” módu.
A tak jsem teď napsal: udělej mi základ aplikace. Bude to IDE, bude tam Monako, tři panely, menu, status bar, trošku jako VS Code, žádný React prosím, jednoduchý backend v Node, … Vyjasnili jsme si pár detailů, já odložil notebook vedle postele a šel jsem spát.
Radostný vibe coding
Ráno jsem se vzbudil, a měl jsem hotový základ aplikace. Fungovalo Monako, fungovaly taby i panely, jednoduchý backend v Node tam byl… Co vám budu povídat: Příjemně mě to překvapilo.
Pak jsem začal testovat a objevil jsem, kolik věcí ten stroj “odpředpokládá” a “nevyřeší”. Ale i spoustu věcí, které vyřeší, aniž bych na ně myslel. Takže jsem začal obrušovat, vylepšovat, opravovat - samozřejmě ne já, ale agent; já ho vedl.
A když jsem ho vedl, došlo mi, kde je problém. On to za mě dneska zmínil Josef Šlerka.
Samozřejmě, můžete být úplný laik a můžete si zkusit “navibekódit” něco od nuly. A možná i něco dostanete. Spíš ne. Poměr success stories vs fail stories, potažmo “epic fuckups”, bude docela malý.
Můžete být junior nebo medior a s agentem máte najednou dojem, že “jedete jak dráha”. A opravdu to tak je: kód utěšeně přibývá, vy jste junior, tak netušíte, co se tam děje a proč, a celé to nějak drží dohromady, i když vás to stojí spoustu času a peněz. Ale výsledek je jednoznačně nad vašimi limity, což je vlastně fajn.
Jenže když jste senior, nebo jako já dokonce antikvita, tak u toho trpíte. Sledujete, jak agent znovuvynalézá kolo, jak vymýšlí ptákoviny, tahá kanón na vrabce, na druhé straně sledujete, jak má podvozek od žebřiňáku a chystá se na něj namontovat obří motor V8, nebo jak se cyklí…
Když jsem v práci viděl, že se hlásili kluci čtyři roky po maturitě na seniorní vývojářskou pozici, tak jsem si říkal: Jestli toto je senior, tak co jsem já? Archive? Antiquity? Ancient?
Ležíte s kolikou, sledujete to a říkáte si, že se tady jasně ukazuje, že seniorita není daná schopností produkovat kód, natož efektivní kód, ale schopností rozebrat požadavky a formulovat je tak, aby je někdo jiný pochopil.
K čemu jsem došel?
Takže jsem to musel vzít pevně do ruky a celé to vést trošku projektově. Nenechávat agentům volné ruce - jinak jsou jak junioři, co je zavřeli do sklepa s monitorem, kafem, energiťákem, pizzou a manuálama SYSCALL. Je potřeba je zmnožit a rozdělit jim role: ty analyzuješ, ty kóduješ, ty píšeš testy, ty to integruješ, a děláte jen to, co vám řeknu. To je ten výkonný “staff”, kanonenfutter - vaše vývojové oddělení, chcete-li.
Tahle parta potřebuje někoho, kdo jim zadává práci. Orchestrátora, který vezme úkol, analyzuje ho, připraví z něj tickety a ty jim předá.
Ale orchestrátor potřebuje zadání, a potřebuje ho formalizované, podrobné, strukturované a přesné. Takže tam je ještě někdo, kdo mu toto zadání připraví jako plán. Jo, to je ten “plan mode” v xxCode. S ním to probírám osobně.
Ještě nad ním je “ideamaker”. To je nástroj, skill, který jsem si udělal pro tohle všechno, aby samotnému planneru připravil projektové zadání. S ním vedu dialog o tom, co chci dělat, a jeho úkolem je doptávat se mě na všechno, co není jasné. Protože mně to je v hlavě jasné, ale “jim” ne. Po několika kolech řízeného dialogu vygeneruje ideamaker vstup pro plánovač (PRD), ten připraví plán (a při tom se opět doptává), plán si vezme exekutor, rozdělí, agenti provedou…
Upřímně říkám, že role člověka je v tom nenahraditelná. Výsledky práce musím zkonzultovat a zkontrolovat. Sice projde testama, ale testy spoustu věcí nevidí; nemají “intuici”. Tým robotů klidně navrhne přihlašovací formulář bez možnosti “zapomenuté heslo”. Ptáte se, proč tam není, jestli je nenapadlo to udělat, a oni vám řeknou, že to sice vědí, že tam má být, ale že to v zadání nebylo.
Ne, kecám, tohle nebyli roboti. Tohle je můj reálný zážitek s reálným lidským vývojovým týmem. Tak jen abyste věděli…
Takže jsem takhle pracoval. Vymyslel jsem si novou věc, třeba “online dokumentaci”, a s ideamakerem jsem to probral: kde to bude, jak to bude, kdo se o to bude starat, komu to má sloužit a k čemu, jak to má vypadat, … Pak jsem to probíral s plannerem, konkrétní detaily. Pak jsem nechal stroje pracovat. Pak jsem se kouknul na výsledek a když jsem to viděl, tak mě napadlo: A takhle by to možná bylo lepší. A ještě bych to udělal takhle. A tady to nefunguje…
Funguje to?
Trvalo to pár dní, ale betaverze je venku. Velká část funkcionalit je převedená, chybí mi v podstatě už jen emulátory počítačů, tam mám zatím jen PMD-85, a k tomu mám navíc i pár nových věcí. Třeba BASIC s p-codes, ke kterému bylo potřeba napsat VM. A to bylo vtipné, protože tady musel Claude Code psát assembler pro 8080. A víte, jak mu to jde?
Taky jste si navibekódili aplikaci, co vám vydělává 1M USD měsíčně? Tak v tom případě máte na předplatné mého newsletteru, kde vám řeknu, co s těmi penězi máte udělat!

Comments
Nothing yet. Say the first thing.
Sign in to join the conversation.