Tentokrát navážeme na první část “Jak začít s GitHub Copilotem? #1”, kde jsme probrali jeho hlavní funkce, nastavení a celkově první kroky k tomu, jak začít. Pokud vám tenhle článek unikl, tak doporučujeme začít u něj.
Teď už se posuneme trochu dál a ukážeme si, s čím dalším vám může Copilot pomoci, konkrétně projdeme refektorování, optimalizaci a generování testů.
Právě v těchto oblastech dokáže Copilot přinést velmi konkrétní výsledky. Týmy, které jej využívají naplno, reportují výrazné zkrácení času potřebného na úpravy kódu, rychlejší generování testů a celkově vyšší kvalitu výstupu. Vývojáři tráví méně času rutinními úkoly a mohou se více soustředit na klíčové tasky.
Co konkrétně Copilot přináší:
- Refaktorování rychleji až o , díky identifikaci a úpravě složitých funkcí.
- Úspora až ~ 50 % času při generování unit, integračních a E2E testů.
- Lepší čitelnost, stabilita a snížení technického dluhu.
- Snazší onboarding vývojářů díky automatickému vysvětlování kódu.
- Zlepšení vývojových metrik jako cycle time a deployment frequency.
Refaktorování & optimalizace
Copilot je užitečný nejen pro psaní nového kódu, ale také pro úpravu existujícího – zlepšuje čitelnost, strukturu a výkon.
Příklady použití:
- Rozdělení dlouhých funkcí
Můžete označit komplexní funkci a požádat Copilota, aby ji rozdělil na logické, samostatné části:
def process_data_and_generate_report(data):
# načítání, čištění, analýza, generování reportu …
pass
# Prompt v Copilot Chat:
# "/refactor Rozděl tuto funkci `process_data_and_generate_report` na menší části."
# Jeden z možných návrhů Copilota:
def load_data(data):
pass
def clean_data(data):
pass
def analyze_data(data):
pass
def generate_report(data):
passdef process_data_and_generate_report(data):
# načítání, čištění, analýza, generování reportu …
pass
# Prompt v Copilot Chat:
# "/refactor Rozděl tuto funkci `process_data_and_generate_report` na menší části."
# Jeden z možných návrhů Copilota:
def load_data(data):
pass
def clean_data(data):
pass
def analyze_data(data):
pass
def generate_report(data):
pass- Přejmenování proměnných / funkcí
Požádejte Copilota o smysluplnější jména:
tmp = 10
# Prompt:
# "Přejmenuj `tmp` na výraznější název."
# Copilot například navrhne:
customer_age = 10- Zjednodušení logiky
Např. složité podmínky lze udělat přehlednějšími:
if (user.isAdmin === true && user.isActive === true && user.hasPermission('edit')) {
// ...
}
// Prompt:
// "/refactor Zjednoduš tuto podmínku"
// Copilot může navrhnout:
if (user.isAdmin && user.isActive && user.hasPermission('edit')) {
// ...
}- Optimalizace výkonu
Copilot může navrhnout efektivnější datové struktury nebo algoritmy:
# Původní:
for i in range(len(my_list)):
if my_list[i] == value:
# …
# Prompt:
# "/optimize Tuto smyčku pro lepší výkon"
# Návrh Copilota:
if value in my_list:
# …Slash-příkazy v Copilot Chat pro refaktoring:
- /refactor — refaktoruje vybraný blok podle zadání
- /optimize — navrhuje vylepšení výkonu
- /explain — vysvětlí, co daný blok kódu dělá, což vám pomůže ho lépe pochopit před úpravami.
zdroj:
Testování & Debugování
V této sekci Copilot kombinuje generování testů s podporou pro ladění a opravy chyb, čímž urychluje vývoj a zvyšuje kvalitu kódu.
Generování testů:
- Použijte /tests v Copilot Chat (nebo označte kód v editoru), aby Copilot navrhl unit testy podle vaší funkce.
- Copilot může vytvořit testy pro metody, zahrnout okrajové případy, ošetřit výjimky apod.
- Experimentálně lze použít /setupTests, který nastaví testovací prostředí pro celý projekt (vybere framework, vytvoří soubor atd.).
Debugování a opravy chyb:
- Po označení chybného kódu můžete použít /fix — Copilot nabídne opravenou verzi.
- Pokud test selže, lze využít /fixTestFailure — Copilot analyzuje selhání a navrhne opravu.
- V experimentálním režimu můžete použít /startDebugging pro vytvoření konfigurace ladění („launch configuration“) a spuštění debugování přímo z copilot chatu.
Ukázka kódu + prompt:
def compute_factorial(n):
factorial = 1
for i in range(1, n + 1):
factorial *= i * factorial # chyba: násobí navíc factorial
return factorialPrompt k ladění:
/explain Proč tato funkce počítá faktorial špatně?Poté:
/fix Oprav logiku tak, aby počítala faktoriál korektně.Copilot může navrhnout opravenou verzi:
def compute_factorial(n):
factorial = 1
for i in range(1, n + 1):
factorial *= i
return factorialDokumentace & Onboarding
Tato část je o tom, jak Copilot usnadní psaní dokumentace a zapracování nových vývojářů do projektu.
Dokumentace:
- Pomocí příkazu /doc můžete nechat Copilota generovat docstringy, komentáře nebo popisy funkcí a tříd.
- Kód, který je složitý nebo nebyl dokumentován, může Copilot vysvětlit a přidat potřebné komentáře.
Onboarding nových vývojářů:
- Nováčci mohou využít Copilot Chat pro otázky jako „Co dělá tahle část kódu?“ a Copilot jim poskytne přehledné vysvětlení.
- Při zakládání nového modulu nebo části aplikace mohou vývojáři požádat Copilota, aby vygeneroval skeleton projektu: složky, testy, konfigurační soubory apod.
- Dokumentace, která vznikne automaticky (docstringy, komentáře), snižuje bariéru pro nové členy týmu a urychluje jejich zapracování.
Závěr
GitHub Copilot je víc než jen nástroj pro rychlé psaní nového kódu. Je to výkonný asistent, který výrazně pomáhá i v činnostech, které vývojáři často odsouvají – jako je refaktorování, optimalizace nebo generování testů. A právě v těchto oblastech může přinést okamžité výsledky: od zrychlení vývoje a snížení technického dluhu až po kvalitnější kód a vyšší pokrytí testy.
V pokračování si shrneme, jak zvýšit kvalitu výstupů Copilota, projdeme si pokročilé funkce a integrace.