Přejít k navigační liště

Zdroják » Různé » 10+ věcí, jak AI pomáhá při programování

10+ věcí, jak AI pomáhá při programování

Články Různé

AI dokáže výrazně zvýšit efektivitu programátora. Nevezme mu ale práci?

Text vyšel původně na autorově webu.

S masovým používáním AI (Artificial Intelligence), česky umělé inteligence, se v roce 2023 roztrhl pytel.

Začalo to s nástrojem DALL-E, který na základě textového vstupu dokáže generovat obrázky.

To je pěkná hračka, ale pro programátora se víc hodí práce s textem.

Nástroje

Které nástroje by vám neměly uniknout:

ChatGPT

ChatGPT (více informací)

GPT je zkratka pro Generative Pre-trained Transformer a označuje rodinu předtrénovaných modelů hlubokého učení pro generování přirozeného jazyka.

V praxi je ChatGPT chatbot, který se na základě textového vstupu snaží provést, oč ho uživatel požádá.

Codex

Codex JavaScript Sandbox

Na základě instrukcí, které je možné psát i česky, vygeneruje často funkční kód.

Výsledek se rovnou zobrazuje v prohlížeči:

GitHub Copilot

GitHub Copilot

Copilot funguje jako rozšíření do editorů (do VSCode i WebStormu) a dokáže za člověka psát celé bloky kódu.

Typicky stačí napsat název metody a AI zkusí pochopit, co je cílem, a vygenerovat příslušný kód.

Je to takový vylepšený autocomplete.

Na obrázku je šedivou barvou navržený kód:

Před lety jsem zkoušel používat podobný nástroj Tabnine. Nebylo to špatné, ale Copilot mi přijde dál.

DeepL

DeepL

Jedná se o překladač používající strojové učení. Má překvapivě dobré výstupy.

Umí přes upload překládat celé soubory a má i dostupné API.

Jinak dobře překládá i ChatGPT.

Využití

Využití je omezené asi jen fantazií uživatele.

Při programování jde umělé inteligenci dobře svěřit spoustu různých věcí.

Slovy klasika platí následující:

Opravdoví programátoři nepoužívají ChatGPT a Copilot. Píší webové aplikace přes příkazovou řádku rovnou na server. Tímto jim vzdáváme hold. Nám ostatním AI ohromným způsobem ulehčí a zpříjemní práci.

Rutinní úkoly

Je třeba vložit do DB 100 nejčastější freemailových poskytovatelů pro následné použití pro validaci při registraci?

Co si pomocí JS vygenerovat nějaký pěkný CSS gradient?

Konverse dat

ChatGPT dokáže efektivně provádět všechny možné textové konverze.

Co si třeba zkopírovat z Wikipedie nějakou tabulku a udělat z ní JS objekt s typy v TypeScriptu:

Kromě samotné konverse dat dokáže ChatGPT i napsat funkce, které data potřebným způsobem transformují.

Mám požadovaný vstup a požadovaný výstup a robot mi naprogramuje metodu, co to převede.

Vysvětlení kódu

Nerozumíte nějakému kódu? ChatGPT dokáže popsat jeho chování:

Oprava kódu

Stejně jako vysvětlení kódu. V některých případech pomůže AI i s opravou nebo zlepšením kódu.

Nepřijdou vám čitelné nějaké konstrukce? Není problém použít jiné při zachování funkčnosti.

AI nám může dělat code review.

Psaní testů

Testy jsou hrozně důležité, ale skoro všichni je nesnáší psát.

ChatGPT je s radostí napíše za vás.

Možnost je to dělat i opačně. Ve stylu TDD – test-driven development (česky: vývoj řízený testy) – nejprve napsat testy a AI nechat napsat samotný kód.

Pojmenovávání

Pojmenovávání proměnných a funkcí je spolu s invalidováním cache největší programátorská výzva.

Co se sebe tuto tíhu sejmout a rozhodování nechat na stroji?

Náhrada Stack Overflow

Když vypadne Stack Overflow, zastaví se na celém světě vývoj.

Vzhledem k tomu, že ChatGPT má načtené i Stack Overflow, jde pro získání hotových řešení použít rovnou.

A díky další konverzaci dokáže řešení i rovnou upravit dle pokynů.

Alternativní řešení

Obvykle existuje více možností, jak problém vyřešit. AI může k našemu řešení nabídnout alternativu a porovnat její výhody a nevýhody.

Regulární výrazy

Léta jsem se chystal se pořádně naučit regulární výrazy.

S ChatGPT se to zdá jako zbytečné. Kromě vytvoření regulárního výrazu dle přání dokáže i vysvětlit, co daný regulár dělá.

Změna programovacího jazyka

Máte kód v Reactu, ale potřebujete ho přepsat do Svelte?

Ideální úkol pro AI. Nutno poznamenat, že to úplně 100% není a často je výstupem převodu nefunkční kód, který vyžaduje ruční zásahy.

Použít jde i přímo web obsahující speciální rozhraní – codeverter.

Copywriting

Máte aplikaci lokalizovanou do jazyka, kterým 100% nevládnete. Dost pravděpodobně bude lepší si texty nechat vygenerovat robotem, než něco smolit sám.

Učení se

V neposlední řadě se ChatGPT hodí i pro případ, že se člověk chce učit programovat.

Je to asi nejrychlejší způsob, jak dostávat odpovědi na své otázky.

Chyby

ChatGPT není zdaleka neomylný. Často dokáže suverénně tvrdit naprosté ptákoviny.

Je proto nutné výstupy kontrolovat. Pokud je tedy cílem mít správný výsledek. Občas může být i neoptimální řešení dostatečně dobré.

Koneckonců se ale v tomto neliší od lidí, kteří také dělají chyby a sebejistě tvrdí nesmysly.

Nahradí AI programátory?

Z několikaměsíčního denního používání Copilota a ChatGPT mám pocit, že díky němu mám v režimu 24/7 dostupný neomezený počet juniorních programátorů, kteří pracují velmi rychle.

Tedy některé programátory už nahradil.

S očekávaným dalším zlepšování nahradí i ty další, kteří nezačnou AI používat ve svůj prospěch a nezvýší tak svoji efektivitu. A to je dobře.

Závěr

  • S masovým rozšířením používání umělé inteligence (AI) se otevírají nekonečné možnosti pro zjednodušení rutinních úkolů při programování.
  • Nástroje jako ChatGPT, Codex, GitHub Copilot a DeepL umožňují programátorům snadněji a rychleji generovat kód, psát testy, překládat a vykonávat mnoho dalších úkolů, které by jinak vyžadovaly výrazně více času a úsilí.
  • AI umožňuje programátorům pracovat efektivněji a rychleji, ale zároveň je nutné si uvědomit, že tyto nástroje nejsou neomylné a výstupy je nutné vždy kontrolovat.
  • AI tedy nenahradí programátory, ale může jim pomoci zvýšit efektivitu a zjednodušit práci.

Mimochodem, závěr tohoto článku vygeneroval ChatGPT.

Komentáře

Subscribe
Upozornit na
guest
5 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
Petr Ledvina

Bylo by dobré doplnit, že regulérní výraz pro slug je špatně – ‚musí končit písmenem nebo číslem‘, to v Re chybí

Původní GP

Nemusel by, kdyby tam nebylo napsáno, že musí.

Petr Ledvina

Pardon, moje chyba. Špatně jsem si RE přečetl.
Naopak RE obsahuje i to, že po sobě nemají následovat dvě pomlčky.
Pro zajímavost, GPT 4 v anglické verzi připouští i podtržítka, první vygenerovaný RE je špatně ( ^[a-z0-9]+(?:-[a-z0-9]+)*(?:_[a-z0-9]+)*$ ), sám si chyby na příkladu nevšimne ( one_little-dog ). Ale po upozornění RE opraví a tím i zjednoduší ( ^[a-z0-9]+(?:[-_][a-z0-9]+)*$ )

Last edited 1 rok před by Petr Ledvina
Mintaka

A jak si to poradí s URL wiki stránky o řemdihu https://cs.wikipedia.org/wiki/%C5%98emdih ?
A takových chuťovek lze v URI najít přehršel.

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.