Prozkoumání osvědčených postupů pro GitHub Copilot
GitHub Copilot pro Visual Studio Code pomáhá vývojářům psát kód rychleji a s menším počtem chyb.
GitHub Copilot je však AI pomocník pro párové programování, nikoli samostatný programátor. Pokud chcete GitHub Copilot co nejlépe používat, musíte postupovat podle osvědčených postupů.
Výběr správného nástroje GitHub Copilot pro úlohu
I když funkce dokončování kódu GitHub Copilot a funkce chatu GitHub Copilot sdílejí některé funkce, nejlépe se používají za různých okolností.
Dokončování kódu poskytuje nejvyšší hodnotu, když se používají k:
- Dokončete fragmenty kódu, názvy proměnných a funkce, jakmile je píšete.
- Vygenerujte opakující se kód.
- Vygenerujte kód z vložených komentářů v přirozeném jazyce.
- Generování testů pro testem řízený vývoj
Funkce chatu GitHub Copilot také poskytují maximální hodnotu, když se používají k:
- Odpovězte na otázky týkající se kódu v přirozeném jazyce.
- Vygenerujte velké části kódu a pak iterujte tento kód tak, aby vyhovoval vašim potřebám.
- Proveďte konkrétní úkoly pomocí účastníků chatu, lomítkových příkazů a proměnných chatu. Účastníci chatu (například
@vscodenebo@terminal) nastavují kontext požadavku, příkazy s lomítkem (například/explainnebo/fix) vyjadřují váš záměr a proměnné chatu (například#filenebo#codebase) nastavují Copilot na konkrétní kontext. Různí účastníci a příkazy jsou k dispozici na různých platformách Copilot Chat GitHubu. - Dokončete úkol jako určitou osobu. Například můžete GitHub Copilot Chat říct, že je to senior C++ vývojář, který klade velký důraz na kvalitu kódu, čitelnost a efektivitu. Po vytvoření persony můžete požádat GitHub Copilot o revizi kódu.
Využijte vložené návrhy z GitHub Copilot co nejvíce
GitHub Copilot vám automaticky nabídne návrhy, které vám pomůžou efektivněji kódovat. GitHub Copilot poskytuje lepší návrhy, když budete postupovat podle určitých akcí a chování. Možná už některé z těchto akcí a chování sledujete, protože vám a vašim kolegům také pomůžou porozumět vašemu kódu.
Zadejte kontext pro GitHub Copilot
GitHub Copilot funguje nejlépe, když má dostatečný kontext, abyste věděli, co děláte a s čím potřebujete pomoct. Tak jako poskytnete kolegovi relevantní kontext, když žádáte o pomoc, musíte poskytnout kontext i GitHub Copilot.
Otevření souborů
V případě dokončování kódu se GitHub Copilot podívá na soubory, které jsou otevřené v editoru, aby vytvořil kontext a vhodné návrhy. Když máte související soubory otevřené v Visual Studio Code při použití GitHub Copilot, pomůže vám definovat kontext a umožní GitHub Copilot zobrazit větší obrázek projektu.
Komentář nejvyšší úrovně
Stejně jako byste svému spolupracovníkovi dali stručný a souhrnný úvod, může komentář na vysoké úrovni v souboru s kódem pomoci nástroji GitHub Copilot pochopit celkový kontext kódu, který vytváříte.
Vhodné zahrnutí a odkazy
Nejvhodnější je ručně nastavit odkazy na zahrnutí nebo moduly, které potřebujete pro vaši práci. GitHub Copilot může navrhnout návrhy, ale pravděpodobně víte nejlépe, jaké závislosti potřebujete zahrnout. To může také informovat GitHub Copilot o architekturách, knihovnách a jejich verzích, které chcete použít při vytváření návrhů.
Smysluplné názvy funkcí
Stejně jako metoda nazvaná fetchData() nebude mít pro spolupracovníka (nebo pro vás po několika měsících) velký význam, fetchData() také nepomůže GitHub Copilot pochopit váš kód. Použití smysluplných názvů funkcí pomáhá GitHub Copilot generovat návrhy, které dělají to, co chcete.
Konkrétní a dobře vymezené komentáře k funkcím
Název funkce může být tak popisný, aniž by byl příliš dlouhý. Komentáře funkcí můžou pomoct vyplnit podrobnosti, které GitHub Copilot možná potřebují vědět.
Prime GitHub Copilot s ukázkovým kódem
Jedním z triků, jak získat GitHub Copilot na pravé stránce, je zkopírovat a vložit žádoucí ukázky kódu do otevřené karty editoru. Ukázka by měla představovat kód, který chcete GitHub Copilot emulovat. Poskytnutím příkladu můžete GitHub Copilot generovat návrhy, které odpovídají jazyku a úkolům, které má emulovat. Jakmile vám GitHub Copilot pomohl vytvořit kód, který odpovídá vašemu cíli, můžete ukázkový kód odstranit. Tento přístup je užitečný zejména v případě, že potřebujete "trénovat" GitHub Copilot. Předpokládejme například, že GitHub Copilot ve výchozím nastavení navrhuje fragmenty kódu, které implementují starší verzi knihovny. Do projektu můžete vložit kód, který používá nejnovější verzi knihovny. Tímto GitHub Copilot začne navrhovat úryvky kódu, které používají nejnovější verzi knihovny. Jakmile se GitHub Copilot naučí používat novou verzi knihovny, můžete ukázkový kód odstranit.
Buďte konzistentní a udržujte vysoký standard kvality.
GitHub Copilot se k vašemu kódu připojí, aby vygeneroval návrhy, které navazují na existující vzor, takže platí přísloví "odpad dovnitř, odpad ven".
Vždy udržovat vysoký standard kvality vyžaduje disciplínu. Zvlášť když kódujete rychle a neformálně, abyste něco zprovoznili. Možná budete chtít zakázat dokončení GitHub Copilot, když jste v „režimu hackingu“. Dokončení můžete dočasně zakázat v nabídce stavu GitHub Copilot (přístupné ze stavového řádku Visual Studio Code).
Získejte maximum z GitHub Copilot Chatu
Když používáte funkce chatu GitHub Copilot, můžete pro optimalizaci prostředí udělat několik věcí.
Začněte obecně a pak přejděte ke konkrétnímu
Při psaní výzvy pro GitHub Copilot nejprve dejte GitHub Copilot široký popis cíle nebo scénáře. Pak uveďte všechny konkrétní požadavky. Zvažte následující výzvy:
- Napište funkci, která mi řekne, jestli je číslo prime.
- Funkce by měla vzít celé číslo a vrátit hodnotu true, pokud je celé číslo prime.
- Funkce by měla vyvolat chybu, pokud vstup není kladné celé číslo.
Příklady
Příklady vám pomůžou GitHub Copilot pochopit, co chcete. Můžete zadat ukázková vstupní data, ukázkové výstupy a ukázkové implementace.
Rozdělení složitých úloh na jednodušší úkoly
Pokud chcete GitHub Copilot dokončit složitý nebo velký úkol, rozdělte ho na několik jednoduchých a malých úkolů. Například místo žádání GitHub Copilotu, aby vygeneroval slovní hádanku, rozdělte proces na menší úkoly a požádejte GitHub Copilot, aby je prováděl jeden po druhém:
- Napište funkci pro vygenerování 10 až 10 mřížky písmen.
- Napište funkci, která najde všechna slova v mřížce písmen s uvedením seznamu platných slov.
- Napište funkci, která používá předchozí funkce k vygenerování mřížky 10 po 10 písmen, která obsahuje alespoň 10 slov.
- Aktualizujte předchozí funkci tak, aby se vytiskla mřížka písmen a 10 náhodných slov z mřížky.
Vyhněte se nejednoznačnosti
Vyhněte se nejednoznačným termínům. Například se neptejte na to, co to dělá, když "to" může být aktuální soubor, poslední GitHub Copilot odpověď nebo konkrétní blok kódu. Místo použití nejednoznačných termínů buďte specifická: Co dělá funkce createUser?
Určení relevantního kódu
Pokud v integrovaném vývojovém prostředí používáte GitHub Copilot Chat, otevřete soubory nebo zvýrazněte kód, na který chcete GitHub Copilot odkazovat. K definování kontextu použijte účastníky chatu, příkazy se znakem lomítka a proměnné chatu. Zadejte například soubory, na které se má GitHub Copilot Chat odkazovat.
Použijte účastníky chatu, příkazy se znakem lomítka a proměnné chatu
Účastníci chatu jsou navrženi tak, aby shromáždili další kontext buď o základu kódu, nebo konkrétní doméně nebo technologii. Když zadáte příslušného účastníka, GitHub Copilot Chat může najít a poskytnout lepší informace pro odeslání GitHub Copilot back-endu. Například při kladení otázek k funkcím a rozhraním API Visual Studio Code použijte @vscode.
Slash commands pomáhají GitHub Copilot Chatu porozumět vašemu záměru při kladení otázky. Dozvíte se o základu kódu (/explain), chcete pomoct s opravou problému (/fix) nebo vytváříte testovací případy (/tests)? Tím, že dáte GitHub Copilot Chatu vědět, co se snažíte udělat, může přizpůsobit svou odpověď vašemu úkolu a poskytovat užitečné příkazy, nastavení a úryvky kódu.
Účastníci chatu, například @terminal nebo @vscode, můžou přispívat proměnnými chatu, které poskytují kontext specifický pro doménu. Pomocí symbolu můžete odkazovat na proměnnou chatu ve výzvě chatu # . Proměnné chatu můžete použít ke konkrétnějšímu kontextu výzvy.
Proměnná chatu #file například umožňuje odkazovat na konkrétní soubory z vašeho pracovního prostoru ve výzvě chatu. To vám pomůže usnadnit odpovědi z GitHubu Copilot Chat relevantnější pro váš kód tím, že poskytne kontext souboru, se kterým pracujete. Můžete klást otázky, jako je "Can you suggest improvements to #file:package.json?" nebo "How do I add an extension in #file:devcontainer.json?". Použití proměnné #file vám může pomoct získat cílenější a přesnější odpovědi z GitHub Copilot.
Experimentování a iterace
Pokud se vám požadovaný výsledek nezobrazí, iterujte na příkazovém řádku a zkuste to znovu. V další žádosti použijte předchozí odpověď. Můžete také odstranit předchozí odpověď a začít znovu.
Zachování relevantní historie
GitHub Copilot Chat používá historii chatu k získání kontextu vaší žádosti. Abyste měli jistotu, že GitHub Copilot používá relevantní historii chatu:
- Pomocí vláken můžete zahájit novou konverzaci pro nový úkol.
- Odstraňte žádosti, které už nejsou relevantní nebo které vám neudělily požadovaný výsledek.
Dodržování osvědčených postupů kódování
Pokud se vám při dotazování GitHub Copilot na návrhy nezobrazují požadované odpovědi, ujistěte se, že váš stávající kód dodržuje osvědčené postupy a je snadno čitelný. Příklad:
- Používejte konzistentní styl a vzory kódu.
- Pro proměnné a funkce použijte popisné názvy.
- Okomentujte svůj kód.
- Strukturujte kód do modulárních komponent s vymezeným oborem.
- Zahrnout jednotkové testy.
Shrnutí
GitHub Copilot je výkonný nástroj, který vám pomůže rychleji psát kód a s menším počtem chyb. Pokud ale chcete GitHub Copilot co nejlépe používat, musíte postupovat podle osvědčených postupů. Výběrem správného nástroje GitHub Copilot pro úlohu, poskytnutím kontextu a dodržováním osvědčených postupů kódování můžete optimalizovat své zkušenosti s GitHub Copilot.