Návod na programovánà s AI, když programovat neumÃte
Jak programovat s AI, když programovat neumÃte
AI zmÄnila jeÅ¡tÄ jednu vÄc. Najednou mohou programovat i neprogramátoÅi. A na to se dnes podÃváme. Älánek tedy nenà urÄen pro programátory ke zvyÅ¡ovánà jejich produktivity, ale neprogramátorům, kteÅà obÄas potÅebujà vytvoÅit nÄjaký program.
Programovánà má oproti mnoha jiným tvůrÄÃm postupům zásadnà nevýhodu: nÄco o tom musÃte vÄdÄt. Pokud si otevÅete vývojové prostÅedÃ, musÃte tuÅ¡it, jak za sebe skládat pÅÃkazy a dokud to neudÄláte správnÄ, nic nefunguje. Když budete chtÃt psát nebo kreslit, tak možná nenapÃÅ¡ete nebo nenakreslÃte nic extra hezkého, ale nÄjak to bude fungovat. U programovánà ne - buÄto vÃte, jak na to, nebo neudÄláte ani prd.
To ale AI mÄnÃ. Pokud si pÅedplácÃte ChatGPT nebo Claude, můžete nechat umÄlou inteligenci vytvoÅit za vás i velmi rozsáhlé programy. ZaÄÃt je samozÅejmÄ lepšà drobnÄjÅ¡Ãmi scripty a trochu se s celou vÄcà seznámit.
PojÄme se podÃvat, jak na to.
Za prvé je potÅeba si ujasnit, co chcete vytvoÅit. RozhodnÄ nepÅedpokládejte, že vám AI vygeneruje na jeden prompt weby rozsahu Facebooku. To za prvé. Za druhé je dobré nÄco o vývoji a provozu webů vÄdÄt, samozÅejmÄ ÄÃm vÃce, tÃm lépe, ale každý základ se hodÃ. Za tÅetÃ, uvažujte o AI jako o zkuÅ¡enÄjÅ¡Ãm kolegovi, po kterém můžete ledasco chtÃt, ale musÃte mu to dobÅe vysvÄtlit.
Proces tvorby programu s AI je proces iterativnÃ. Máte vstup - tedy základnà východisko a podmÃnky, z nichž se vycházÃ. Pak máte výstup - tedy to, co chcete dostat a jak to má vypadat. A mezi tÃm je ta magie, který bývá laikům ukradená a kterou teÄ doufáme, že poÅešà umÄlá inteligence.
Vezmeme si nÄjaký úkol. NapÅÃklad já použÃvám pro logovánà projektů systém, kdy si napÃÅ¡u, co jsem udÄlal a za to s hashem název projektu Äi práce. NapÅÃklad âObjednán nový server #marigold#. A chci mÃt webovou službu, kam si za prvé toto poznamenám, za druhé si mohu vÅ¡echny tyto poznámky vypsat. Je to relativnÄ jednoduchá aplikace pro náš pÅÃklad programovánà s AI.
Za prvé si ujasnÃme, co chci:
data se zadávajà pÅes webový formuláŠve formátu libovolného krátkého textu a mohou obsahovat hashtag, tedy slovo zaÄÃnajÃcà znakem # tato data lze vypisovat podle data a také výpis omezit na urÄitý hashtag jelikož jde o web službu pÅÃstupnou z internetu, bude vhodné data zpÅÃstupnit jen pÅihlášenému uživateliA to je vlastnÄ celé zadánà naÅ¡eho projektu. ZámÄrnÄ oÅ¡kubané, což by mi zkuÅ¡ený projekťák oprávnÄnÄ vytknul, ale pozdÄji si ukážeme, proÄ.
PÅedpokládejme, že si platÃte ChatGPT, ale postup bude podobný i pro jiné nástroje jako Claude. V ChatGPT ovÅ¡em máte výhodu, můžete použÃt GPT. NajdÄte v sekci Prozkoumat GPT nástroj nazvaný Code Copilot, to je skvÄle pÅizpůsobený nástroj pro podporu programovánÃ. Vložme zhruba tento prompt:\
Ahoj, potÅebuji vytvoÅit webovou aplikaci. Aplikace by mÄla umožnit registraci a pÅihlášenà uživatele. PÅihlášený uživatel může do textového vstupnÃho pole zadat text, který se uložÃ. Ukládá se vÄetnÄ data a Äasu zadánÃ. Dalšà stránka umožÅuje vypsat vÅ¡echny zadané texty vevolitelnem Äasovém rozmezà a tÅÃdit je podle hashtagu. Dalšà stránka vygeneruje cloud hashtagů vÄetnÄ Äetnosti použitÃ. OÄekávám, že služba bude málo využÃvaná. Jaký programovacà jazyk a postup považujeÅ¡ pro toto zadánà za nejvhodnÄjÅ¡Ã? Rád bych, aby vznikl Äitelný kód a pomohl jsi mi vybrat hosting, kde budu moci jednoduÅ¡e tento kód nasazovat, vÅ¡e bude Äitelné a pochopitelné pro zaÄáteÄnÃka. Rád bych, aby hosting byl zdarma, pÅÃpadnÄ placený dle Äetnosti použitÃ. NejdÅÃve mi udÄlej souhrn tvých doporuÄenà pro programovacà jazyk a pro hosting, popiÅ¡ mi výhody a nevýhody.Code Copilot (CC) nabÃdne, abyste ÅeÅ¡enà realizovali v Pythonu, pro backend použili framework Flask a Jinja2 pro frontend. Tady se hodÃ, když vÃte, o co zhruba jde, my si to vysvÄtlovat nebudeme.
CC také doporuÄà platformy pro hostovánà Pythonu, navrhuje použÃt Heroku, alternativnÄ Vercel, Netlify nebo Render, vÅ¡echno jsou velmi validnà volby. Ale jak to, že nám neodporuÄil tÅeba Amazon AWS nebo MS Azure, když na nÄ vÅ¡ude jsou reklamy? Zeptejme se:
ProÄ jsi mi nedoporuÄil AWS, Azure nebo Google Cloud?CC odpovÃdá, že jde o velmi komplexnà platformy, které bude pro zaÄáteÄnÃka obtÞné nastavit. Heroku, Vercel, a podobné platformy jsou zamÄÅené na jednoduchost a uživatelskou pÅÃvÄtivost, což je vhodné pro projekty s nižšÃmi nároky a pro uživatele, kteÅà nechtÄjà ÅeÅ¡it složitou konfiguraci. Což mohu potvrdit, nastavit AWS / Azure je pro zaÄáteÄnÃka zdlouhavé. Mimochodem, Claude tuto výhradu poskytla hned na ten prvnà prompt. To, že jsme zaÄáteÄnÃci, jsme AI poskytli v úvodnÃm promptu a ihned jsme si definovali, že pro nás jednoduchost nasazovánà bude důležitá.
JeÅ¡tÄ se můžeme doptat, jak je to s hostingy v Äesku (dostávám doporuÄenà na Active 24, Wedos a Stable, vÅ¡e relevantnÃ) - ale správnÄ mi AI pÅipomÃná, že bych se v takovém pÅÃpadÄ mÄl orientovat na virtuálnà privátnà server, který je cenovÄ nákladnÄjšà a už si vyžaduje zkuÅ¡enosti s administracÃ.
Dejme tedy na prvnà dopouÄenà a pojÄme si ujasnit, jaký bude dalšà pracovnà postup, abychom si vÅ¡echno nastavili:
Jaké by jsi mi doporuÄil pracovnà workflow pro vývoj této mojà aplikace? Použiji tedy python a Heroku a můj poÄÃtaÄ použÃvá MacOS.CC i Claude nám vcelku shodnÄ (s rozdÃlnou mÃrou detailu) radÃ, jak dále postupovat.
Nejprve bychom si mÄli rozchodit lokálnà vývojové prostÅedÃ, tedy instalovat Python, Flask a nÄjaký editor zdrojového kódu - doporuÄuje se nám pÅÃmo co a jak. To je ten důvod, proÄ jsme do promptu uvedli, z jakého operaÄnÃho systému budeme pracovat. AI nám nynà pÅÃmo nabÃzà pÅÃkazy pro pÅÃkazovou Åádku nebo software vhodný pro tento operaÄnà systém.
Pokud nÄÄemu nerozumÃme, můžeme se AI rovnou zeptat. TÅeba:
Jak si na MacOS nainstaluji Git pro správu verzÃ?ââââââââââââââââA dostane se mi potÅebných detailů.
Po nÄjaké dobÄ, kdy následujeme pokyny AI bychom mÄli být docela sluÅ¡nÄ vybaveni. Máme lokálnà vývojové prostÅedÃ, takže aplikaci můžeme vyvÃjet a testovat pÅÃmo na svém poÄÃtaÄi. Máme rozchozený verzovacà systém, takže máme dobrou kontrolu nad tÃm, jak kód vytváÅÃme a můžeme jej ve vhodnou chvÃli nasadit âna produkciâ - Äili poslat na Heroku a tam jej zviditelnit do svÄta.
TeÄ už jsme si ujasnili, co chceme a jak budeme postupovat. V tomto okamžiku je důležité âkontextové oknoâ, tedy fakt, že modernà LLM modely udržà v pamÄti dluhé texty pÅedchozà konverzace. DÃky tomu už můžeme zadat jen jednoduchý prompt k tomu, aby nám AI vygenerovala aplikaci tak, jak jsme si ji navrhli:
VytvoÅ mi zdrojový kód aplikace a detailnÄ pro zaÄáteÄnÃka popiÅ¡, co kde mám nastavit a kam uložit, aby kód pÅi nasazenà fungoval.AI nynà popÃÅ¡e strukturu souborů, tedy kam co máte uložit a pak vám vypÃÅ¡e obsahy tÄch souborů. TeÄ pÅicházà zdlouhavá klikacà chvÃle, kdy musÃte pomocà Copy&Paste pÅenést texty (nejlépe pÅes to nainstalované vývojové prostÅedÃ) do vaÅ¡eho poÄÃtaÄe a naukládat je tam, kde máte adresáŠprojektu v GITu. A teÄ pÅicházà chvÃle, kdy si aplikaci můžete otestovat na lokálnÃm poÄÃtaÄi. Jenže, jak? Zeptejme se AI:
Jak aplikaci otestuji na mém lokálnÃm poÄÃtaÄi použÃvajÃcÃm MacOS?Dostanete popis, jak aplikaci otestovat ve svém prostÅedà a poÄÃtaÄi. Velmi snadno se stane, že prvnà spuÅ¡tÄnà aplikace z nÄjakého důvodu neprobÄhne. V tom pÅÃpadÄ se na konzoli objevà chybová hláška. Tu zkopÃrujte a promptujte:
Dostal jsem toto chybové hlášenÃ: a copy&paste text chyby Äi výpis z loguV tomhle je AI dost flexibilnÃ, můžete jà zkopÃrovat i velmi dlouhý chybový log a ona se zorientuje. VysvÄtlà vám, kde doÅ¡lo k chybÄ a navrhne úpravu, kterou musÃte provést.
Až aplikaci odladÃte, nasadÃte ji na Heroku a opÄt vyzkouÅ¡Ãte, i zde může dojÃt k chybám. OpÄt chybový log konzultujete s AI.
Asi už vidÃte, kde je hlavnà problém. Neustálé kopÃrovánà zdrojového kódu z odpovÄdi AI do vývojového prostÅedÃ. NaÅ¡tÄstà vÄtÅ¡ina AI vám kód hezky naformátuje a nabÃdne tlaÄÃtko pro jednoduché pÅenesenà textu do clipboardu, ale stejnÄ je to opruz. Bylo by lepÅ¡Ã, kdyby AI umÄla tento výstup rovnou napojit tÅeba na Github Äi do vaÅ¡eho GITu, ale to zatÃm nejde, musÃte každý soubor jeden po druhém ukládat.
Tipy:
NÄkdy vám AI doporuÄà udÄlat konkrétnà opravu v kódu, napÅÃklad jen pÅepsat kus funkce. Pokud to v kódu zvládnete najÃt, udÄlejte to, pokud ne, ÅeknÄte jÃ, aÅ¥ vám dá celý opravený kód. Jindy zase podlehnete pokuÅ¡enà v kódu nÄco opravit sami, tÅeba texty - v takovém pÅÃpadÄ to AI ÅeknÄte, protože až bude pÅÃÅ¡tÄ opravovat kód, o vaÅ¡ich úpravách by nevÄdÄla.
Pokud nÄÄemu nerozumÃte, nechte si to od AI vysvÄtlit, zeptejte se.
Jak vidÃte, postup nenà zcela vhodný pro vývoj rozsáhlých aplikacÃ.