Jak správně pracovat s GitHub Copilotem? | robot_dreams Czech
should_authorize_via_email
email.input_code tel.input_code
 
email.code_actual_for tel.code_actual_for
apply_exit_text
session_ended
to_homepage
Jak správně pracovat s GitHub Copilotem?

Jak správně pracovat s GitHub Copilotem?

Nauč se využívat AI ve své praxi a maximalizuj efektivitu

Nové technologie představují pro začátečníky, ale i pokročilé vývojáře výzvu, která může být zpočátku frustrující. Jako u každého nového nástroje, je potřeba se naučit správné postupy vycházející z praxe. Jen potom budeš moct využít plný potenciál umělé inteligence při své práci. Jednou z nových technologiích, která ti umožní automatizovat rutinní tasky, je Github Copilot.

Co je GitHub Copilot?

GitHub Copilot je nástroj umělé inteligence, který je poháněn OpenAI Codex, generativním předtrénovaným jazykovým modelem. Ten ti na základě kontextu z komentáře dokáže vygenerovat návrh kódu, který potřebuješ, případně ti bude asistovat při jeho psaní.

Abys umělou inteligenci mohl*a používat, nejprve si musíš nainstalovat rozšíření GitHub Copilot, které podporuje několik IDE:

  • Visual Studio a Visual Studio Code
  • IDE JetBrains (IntelliJ, PyCharm, WebStorm atd.)
  • Azure Data Studio
  • Vim/Neovim

Umí GitHub Copilot kódovat?

Už samotný název napovídá, jak GitHub Copilot funguje. Často se s ním spojuje výraz „AI asistent“, protože jde o nástroj, který bez tvých vstupů nebude schopen pracovat. V současné chvíli nástroje umělé inteligence, jako je GitHub Copilot, mohou vykonávat pouze úkoly, které jim vývojáři definují.

V tomto případě GitHub Copilot využívá kontext z kódu a komentářů, které jsi napsal*a, a na základě toho navrhuje kód. Pomocí tohoto nástroje můžeš převádět komentáře na kód, automaticky doplňovat opakující se kód nebo zobrazovat alternativní návrhy.

S čím umí GitHub Copilot pomoct?

GitHub Copilot je nástroj, který zefektivní tvé programování, dokáže odstranit nadbytečný kód a inspirovat tě k novým způsobům řešení. Umělá inteligence skvěle rozumí přirozenému jazyku. Můžeš napsat, co potřebuješ vytvořit, a GitHub Copilot ti vygeneruje kódové řešení tvého zadání v jakémkoli programovacím jazyce.

Rozumí kontextu, pamatuje si, co jsi dříve psal*a, naváže s tebou průběžnou spolupráci a také ti dá zpětnou vazbu. S dobrým vedením napíše GitHub v 8 z 10 případů dobrý kód. Proto nezapomínej vše důkladně číst.

Osvědčené postupy pro práci s GitHub Copilotem

Teď když už víš, co to GitHub Copilot je a s čím ti při tvé práci pomůže, pojďme se podívat na osvědčené postupy v praxi.

1. Poskytni kvalitní a detailní kontext

Ve chvíli, kdy začínáš s prázdným souborem nebo kódovou základnou, je kvalitní zadání klíčové. Proto GitHub Copilotovi připrav širší postup toho, co potřebuješ nebo očekáváš, že ti vygeneruje. Poté se můžeš zaměřit i na detaily. Na zadávání podnětů pohlížej jako na rozhovor.

Příkladový komentář pak může vypadat takto:

/*
Vytvoř základní markdown editor v Next.js s následujícími funkcemi:
- Použij hooks react
- Vytvořit stav pro markdown s výchozím textem „zde napiš text“
- Textová oblast, do které mohou uživatelé psát markdown
- Zobrazení živého náhledu textu markdown během psaní
- Podpora základní syntaxe markdown, jako jsou nadpisy, tučné písmo, kurzíva
- Použití balíčku npm React markdown
- Text markdown a výsledné HTML by měly být uloženy ve stavu komponenty a aktualizovány v reálném čase
*/

2. Buď konkrétní a specifikuj

Pokud uvedeš konkrétnější údaje, bude GitHub Copilot schopen generovat přesnější návrhy kódu. Jestli chceš, aby načítal data z rozhraní API, upřesni, jaký typ dat chceš načíst, jak data zpracovat a na jaký koncový bod API má navázat.

Tady je příklad nespecifického komentáře, který pravděpodobně vygeneruje kód, který ti s ničím nepomůže:

// Získej data z API
function getData() {
  // Tady bude kód
}

Tady je příklad konkrétního komentáře, u kterého je pravděpodobnější, že dostaneš užitečnou odpověď:

// Předej id uživatele a načti uživatelská data z jsonplaceholder.typicode.com API a poté je vrať jako JSON objekt.

async function getUserData(userId) {
    const response = await fetch(`https://jsonplaceholder.typicode.com/users/${userId}`);
    const data = await response.json();
    return data;
}

3. Uveď jeden nebo dva příklady GitHub Copilotovi

Učení z příkladů je užitečné nejen pro lidi, ale také pro tvého AI asistenta, který dokáže lépe pochopit, co se po něm chce. Například pokud bys chtěl*a extrahovat jména z datového souboru níže a uložit je do nového pole:

const data = [
[
{ name: 'John', age: 25 },
{ name: 'Jane', age: 30 }
],
[
{ name: 'Bob', age: 40 }
]
];

Pokud neukážeš příklad a použiješ následující zadání, dostaneš výsledek:

// Mapuj pomocí pole objektů pro transformaci dat

const mappedData = data.map(x => [x.name](http://x.name/));

console.log(mappedData);

// Výsledek: [undefined, undefined]

V tomto případě se vygeneroval špatně příkaz const mappedData. Pokud ale přidáš více detailů, výsledkem pak je požadované řešení:

// Mapuj pomocí pole objektů pro transformaci dat
// Příklad: Výpis jmen z datového pole
// Požadovaný výstup: ['John', 'Jane', 'Bob']
const data = [
[{ name: 'John', age: 25 }, { name: 'Jane', age: 30 }],
[{ name: 'Bob', age: 40 }]
];

const mappedData = data.flatMap(sublist => sublist.map(person => person.name));

console.log(mappedData);

Jak můžeš zlepšit výstup s GitHub Copilotem?

  • Experimentuj se zadáním

První zadání pro AI může být frustrující, protože často nedostaneš výsledek, který sis představoval*a. Je proto důležité se držet osvědčených postupů výše, ale také přemýšlet nad tím, jak jsi svůj prompt napsal*a. Pokud budeš zadávat nic neříkající nebo neohraničené fráze, AI nebude schopná vygenerovat správný návrh. Nestačí napsat:

# Napiš kód pro grades.py 

Důležité je si uvědomit, čeho chceš dosáhnout. Zpočátku to může být těžší, a proto se vyplatí experimentovat se zadáním. Přidáváním detailů a konkrétního výsledku GitHub Copilota navede spíš k požadovanému výsledku.

# Implementuj do souboru grades.py funkci pro výpočet průměrné známky

Další verze návrhu je konkrétnější než ta předchozí. Na něco se tu zapomnělo?! Zdá se, že tu chybí specifikace vstupní a výstupní požadavky. Proto je potřeba experimentovat a najít správný způsob, jak konkretizovat požadavek i tvůj záměr, s nímž ti má Copilot pomoci. V takovém případě správný prompt bude vypadat takto:

# Implementuj funkci calculate_average_grade v souboru grades.py, která přijímá seznam

  • Nech otevřené relevantní karty

GitHub Copilot využívá techniku „sousedního okna“, která mu umožňuje kontextualizovat kód, jenž píšeš s tím, který máš otevřený na dalších kartách ve svém vývojářském prostředí. To může být užitečné pro lepší pochopení celkového kontextu tvého projektu. Nicméně Copilot nemusí nutně vnímat všechny karty v IDE jako relevantní.

  • Používej správné názvy a označení

Při práci s AI je také potřeba, abys v zadání popisných názvů proměnných a funkcí dodržoval*a konzistentní styly a vzory kódování. Proto se zaměř na postupy, se kterými ses v rámci své praxe setkal*a.

Například:

def authenticate_user(username, password):

Výsledek:

def authenticate_user(username, password):
# Kód pro ověření uživatele
if is_valid_user(username, password):
generate_session_token(username)
return True
else:
return False

Špatný název může vést k nejasnostem, např.:

def rndpwd(l):

Jako výsledek pak dostaneš komentář:

def rndpwd(l):
# Kód patří sem
  • Spoléhej na své znalosti

Při práci s generovaným kódem je vždy potřeba, abys vytvořený kód zkontroloval*a. AI je trénovaná na velkém množství dat, a tak se může stát, že vygeneruje kód, který neexistuje. Přistupuj tak ke GitHub Copilotovi jako ke kolegovi, jehož kód je potřeba posoudit a analyzovat jeho správnost.

Začni testovat možnosti AI

GitHub Copilot je mocný nástroj, který ti ušetří čas a zefektivní programování. Je potřeba s ním vhodně pracovat, aby fungoval správně. V článku jsme se podívali na osvědčené postupy, které ti pomohou s GitHub Copilotem co nejlépe pracovat. Pokud chceš prohloubit své znalosti AI, může ti s tím pomoci kurz GitHub Copilot nebo zamíř na kurz Praktické využití umělé inteligence.

Autor: Martin Šlat

Více článků
Nastartuj kariéru v informačních technologiích krok za krokem
Jaká je budoucnost interoperability blockchainů?