Wprowadzenie do korzystania z Copilota
Categories:
- Możliwości Copilot Labs
- Czym jest Copilot
- Zrozumienie
- Sugestie
- Debugowanie
- Inspekcja
- Refaktoryzacja
- Dokumentacja
- Rozszerzanie granic Copilota za pomocą Custom
- Uzyskiwanie bardziej profesjonalnych porad
- Czyste tekstowe porady
- Ustawienia
- Bezpieczeństwo danych
- Często zadawane pytania
GitHub Copilot to narzędzie uzupełniania kodu oparte na uczeniu maszynowym, które pomaga szybciej pisać kod i zwiększa wydajność programowania.
Możliwości Copilot Labs
| Możliwość | Opis | Uwagi | przykład |
|---|---|---|---|
Explain |
Generuje wyjaśnienie fragmentu kodu | Opcje zaawansowane do dostosowania podpowiedzi, bardziej przejrzyste wyjaśnienie wymagań | ![]() |
Show example code |
Generuje przykładowy kod fragmentu | Opcje zaawansowane do dostosowania | ![]() |
Language Translation |
Generuje tłumaczenie fragmentu kodu | To tłumaczenie jest oparte na językach programowania, np. C++ -> Python | ![]() |
Readable |
Poprawia czytelność kodu | To nie jest tylko formatowanie, to rzeczywiste zwiększenie czytelności | ![]() |
Add Types |
Wnioskowanie typów | Zmienia zmienne o automatycznych typach na jasne typy | ![]() |
Fix bug |
Naprawia błędy | Naprawia niektóre typowe błędy | ![]() |
Debug |
Ułatwia debugowanie kodu | Dodaje logowanie, lub zmienne tymczasowe do punktów przerwania | ![]() |
Clean |
Czyści kod | Czyści nieużywane części kodu, komentarze/wydruki/porzucony kod itp. | ![]() |
List steps |
Wymienia kroki kodu | Niektóre kody mają surową zależność sekwencyjną, należy wyraźnie oznaczyć komentarzem ich kolejność wykonywania | ![]() |
Make robust |
Sprawia, że kod jest bardziej odporny | Uwzględnia granice/zależności wielowątkowe/reentrancję itp. | ![]() |
Chunk |
Dzieli kod na bloki | Ogólnie funkcje powinny mieć <=50 wierszy kodu, zagnieżdżenie <=4, rozgałęzienie <=7, złożoność cyklomatyczna <=20 | ![]() |
Document |
Generuje dokumentację kodu | Poprzez pisanie komentarzy generuje kod, a także przez kod generuje komentarze i dokumentację | ![]() |
Custom |
Działania niestandardowe | Mówimy Copilotowi, jak działać na naszym kodzie | ![]() |
Czym jest Copilot
Opis na stronie głównej jest prosty i jasny: Twój AI programista parowy — Twój kolega programista
Programowanie parowe: to metoda elastycznego rozwoju oprogramowania, w której dwóch programistów pracuje przy tym samym komputerze: jeden wpisuje kod, drugi sprawdza każdy wiersz kodu. Role często się zmieniają, zapewniając ścisłą logikę i zapobieganie problemom.
Copilot uczestniczy w pracy programistycznej poprzez:
Zrozumienie
Copilot to model językowy, nie rozumie naszego kodu, my również nie rozumiemy modelu Copilota, tutaj chodzi o wzajemne zrozumienie między programistą a zespołem programistów. Opieramy się na pewnych zasadach i wspólnie piszemy kod.

Copilot zbiera informacje, aby zrozumieć kontekst, informacje obejmują:
- Kod, nad którym aktualnie pracujemy
- Powiązane pliki
- Otwarte pliki w IDE
- Adresy bibliotek
- Ścieżki plików
Copilot nie tylko rozumie się poprzez komentarz jednej linii, zbiera wystarczająco dużo informacji kontekstowych, aby zrozumieć, co będzie dalej.
Sugestie
| Całe sugestie | Sugestie inline |
|---|---|
![]() |
![]() |
Jak wiadomo, najczęstszym sposobem uzyskania sugestii jest opisanie wymagań w komentarzach, a nie bezpośrednie pisanie kodu, aby nakierować GitHub Copilot na podanie całościowej sugestii. Może to jednak powodować nadmiar komentarzy, komentarze nie są tym więcej, im więcej ich jest, komentarze pomagają w zrozumieniu, ale nie są główną częścią kodu. Dobry kod jest jasny i przejrzysty bez komentarzy, opiera się na odpowiednim nazewnictwie, rozsądnym projekcie i jasnej logice. Używając sugestii inline, wystarczy podać odpowiednie nazwy zmiennych/funkcji/klas, a Copilot zawsze poda odpowiednie sugestie.
Oprócz odpowiedniego wejścia zewnętrznego, Copilot również obsługuje sugestie na podstawie istniejących fragmentów kodu, Copilot Labs->Show example code może pomóc wygenerować przykładowy kod dla określonej funkcji, wystarczy zaznaczyć kod i kliknąć Show example code.
Ctrl+Enter, zawsze daje mnóstwo inspiracji, utworzyłem trzy pliki, pusty main.cpp, pusty calculator.h, w calculator.cpp zaimplementowałem “dodawanie” i “odejmowanie”, Copilot podał następujące sugestie:
- Dodaj implementację “mnożenia” i “dzielenia”
- Wywołaj implementację “dodawania, odejmowania, mnożenia i dzielenia” w main
- Metoda tworzenia i używania statycznej biblioteki calculator
- Wynik działania funkcji main, i wynik jest poprawny
- Sugerowana zawartość pliku nagłówkowego calculator.h
- Komenda kompilacji g++
- Przypadek testowy gtest
- Zawartość CMakeLists.txt, wraz z testami
- objdump -d main > main.s, aby zobaczyć kod asemblerowy, i pokazać kod asemblerowy
- ar, aby zobaczyć zawartość statycznej biblioteki, i pokazać zawartość statycznej biblioteki
W konfiguracji domyślnej, za każdym razem, gdy naciśniesz Ctrl+Enter, wyświetlane treści różnią się znacznie, nie można przejrzeć treści wygenerowanych w poprzednim razie. Jeśli potrzebujesz bardziej stabilnej treści generowanej, możesz ustawić wartość temperature[0, 1]. Im mniejsza wartość, tym stabilniejsza wygenerowana treść; im większa wartość, tym bardziej nieprzewidywalna wygenerowana treść.
Powyższe sugestie znacznie przekraczają ogólne treści sugerowane w codziennym użytkowaniu, może to być spowodowane rzeczywiście zbyt prostym projektem, raz, gdy pliki kompilacji i nagłówki zostaną napisane, sugestie nie będą już takie obfite, ale nadal często mają bardzo dobrą inspirację.
Skróty klawiaturowe do używania sugestii Copilota
| Działanie | Skrót klawiaturowy | Nazwa polecenia |
|---|---|---|
| Akceptuj sugestie inline | Tab |
editor.action.inlineSuggest.commit |
| Zignoruj sugestie | Esc |
editor.action.inlineSuggest.hide |
| Pokaż następną sugestię inline | Alt+] |
editor.action.inlineSuggest.showNext |
| Pokaż poprzednią sugestię inline | Alt+[ |
editor.action.inlineSuggest.showPrevious |
| Wyzwól sugestię inline | Alt+\ |
editor.action.inlineSuggest.trigger |
| Pokaż więcej sugestii na oddzielnym panelu | Ctrl+Enter |
github.copilot.generate |
Debugowanie
Ogólnie dwa sposoby debugowania, drukowanie i punkt przerwania.
- Copilot może pomóc automatycznie wygenerować kod drukowania, używając odpowiedniego drukowania lub dziennika na podstawie kontekstu.
- Copilot może pomóc zmodyfikować istniejącą strukturę kodu, zapewniając wygodne miejsca punktów przerwania. Niektóre zagnieżdżone style kodu trudno jest przerwać, Copilot może je bezpośrednio zmodyfikować.
Copilot Labs ma następujące funkcje wstępnie ustawione:
- Debug, generuje kod debugowania, np. drukowanie, punkt przerwania, oraz inne kodu debugowania.
Inspekcja
Inspekcja jest wzajemna, my i copilot musimy często inspekcjonować się wzajemnie, nie ufajmy lekkomyślnie szybko wygenerowanemu kodowi.
Copilot Labs ma następujące funkcje wstępnie ustawione:
- Fix bug, bezpośrednio naprawia znalezione błędy, należy najpierw zapisać swój kod, dokładnie inspekcjonować zmiany Copilota.
- Make robust, sprawia, że kod jest bardziej odporny, Copilot odkryje nieobsłużone sytuacje, wygeneruje ulepszony kod, powinniśmy być zainspirowani przez niego, myśleć bardziej dogłębnie.
Refaktoryzacja
Copilot Labs ma następujące funkcje wstępnie ustawione:
- Readable, poprawia czytelność, prawdziwie poprawia czytelność, a nie tylko prostą formatowanie, ale należy bardzo ostrożnie inspekcjonować zmiany Copilota.
- Clean, sprawia, że kod jest bardziej zwięzły, usuwa niepotrzebny kod.
- Chunk, sprawia, że kod jest łatwiejszy do zrozumienia, dzieli kod na bloki, dzieli dużą funkcję na wiele małych funkcji.
Dokumentacja
Copilot Labs ma następujące funkcje wstępnie ustawione:
- Document, generuje dokumentację, np. komentarze do funkcji, oraz inne dokumenty.
Rozszerzanie granic Copilota za pomocą Custom
Custom nie jest zbyt rzucające się w oczy, ale daje Copilotowi nieskończone możliwości. Możemy to zrozumieć jako nowy język programowania, tym językiem programowania jest angielski lub chiński.
Możesz przez Custom wpisać
-
Usuń zakomentowany kod

-
Dodaj zdolność mnożenia i dzielenia

-
Przepisz na go

-
Dodaj obliczenia funkcji trygonometrycznych

-
Dodaj obliczenia różniczkowe, tutaj język chiński nie działa dobrze, użyjsupport calculate differential, w trybie niskiej temperatury nie ma wiarygodnych odpowiedzi, w trybie wysokiej temperatury jest kilka dziwnych odpowiedzi.
W codziennej pracy, możesz w dowolnym momencie zgłosić swoje wymagania do Copilota, poprzez możliwość Custom, możesz poprosić Copilota o pomoc w wielu operacjach, które chcesz wykonać.
Kilka przykładów:
| prompts | Opis |
|---|---|
generate the cmake file |
Generuj plik cmake |
generate 10 test cases for tan() |
Generuj 10 przypadków testowych dla tan() |
format like google style |
Sformatuj jak styl Google |
consider boundary conditions |
Rozważ warunki brzegowe |
confirm memory release |
Potwierdź zwolnienie pamięci |
Użycie Custom pełne jest wyobraźni, ale czasami nie jest zbyt wiarygodne, sugeruję zapisanie kodu przed użyciem, a następnie dokładnie przejrzeć zmiany wprowadzone przez niego.
Uzyskiwanie bardziej profesjonalnych porad
Im jaśniejsze wskazówki dajesz Copilotowi, tym dokładniejsze porady daje, profesjonalne wskazówki mogą uzyskać bardziej profesjonalne porady. Wiele nieodpowiednich kodów nie wpływa na kompilację kodu, ani na działanie biznesowe, ale wpływa na czytelność, utrzymywalność, rozszerzalność, ponowne użycie, te cechy są również bardzo ważne, jeśli chcesz uzyskać bardziej profesjonalne porady, najlepiej zrozumieć angielskie nazwy najlepszych praktyk.
- Po pierwsze używaj zrozumiałego angielskiego, możesz uczyć się języka angielskiego poprzez oglądanie projektów open source.
- Konwencje nazewnictwa, nazewnictwo to najbardziej podstawowa definicja koncepcji, dobre nazewnictwo może uniknąć niejednoznaczności, unikać czytelnika wpadającego w szczegóły biznesowe, a tym samym poprawiać czytelność kodu, to również najlepsza praktyka.
- Często wystarczy odpowiednia nazwa zmiennej, aby Copilot podał cały fragment kodu.
- Lista wzorców projektowych, wzorce projektowe to szablony rozwiązywania problemów, rozsądnie dobierają podstawowe zasady projektowania SOLID dla różnych problemów, oszczędzają czas projektowania rozwiązań, poprawiają jakość kodu.
- Wystarczy napisać nazwę potrzebnego wzorca, aby Copilot wygenerował pełny fragment kodu.
- Lista algorytmów, dobry algorytm to wysoko rozwinięte rozwiązanie problemów, programiści muszą sami abstrakcyjnie rozwiązać konkretny problem, abstrakcyjnie przekształcić dane i wprowadzić je do algorytmu.
- Kod algorytmu jest zazwyczaj uniwersalny, wystarczy napisać nazwę algorytmu, aby Copilot wygenerował fragment kodu algorytmu, a Copilot zawsze potrafi巧妙nie wykorzystać struktury danych kontekstu w algorytmie.
Czyste tekstowe porady
| en | zh |
|---|---|
| GitHub Copilot uses the OpenAI Codex to suggest code and entire functions in real-time, right from your editor. | GitHub Copilot używa OpenAI Codex, aby sugerować kod i całe funkcje w czasie rzeczywistym, bezpośrednio z edytora. |
| Trained on billions of lines of code, GitHub Copilot turns natural language prompts into coding suggestions across dozens of languages. | Wytrenowany na miliardach linii kodu, GitHub Copilot zamienia naturalne wskazówki językowe na sugestie kodowania w dziesiątkach języków. |
| Don’t fly solo. Developers all over the world use GitHub Copilot to code faster, focus on business logic over boilerplate, and do what matters most: building great software. | Nie leć sam. Deweloperzy z całego świata używają GitHub Copilot, aby szybciej kodować, skupiać się na logice biznesowej zamiast na szablonach, i robić to, co najważniejsze: budować świetne oprogramowanie. |
| Focus on solving bigger problems. Spend less time creating boilerplate and repetitive code patterns, and more time on what matters: building great software. Write a comment describing the logic you want and GitHub Copilot will immediately suggest code to implement the solution. | Skup się na rozwiązywaniu większych problemów. Mniej czasu poświęcaj tworzeniu szablonów i powtarzalnych wzorców kodu, a więcej na to, co ważne: budowanie świetnego oprogramowania. Napisz komentarz opisujący logikę, jaką chcesz, a GitHub Copilot natychmiast zaproponuje kod implementujący rozwiązanie. |
| Get AI-based suggestions, just for you. GitHub Copilot shares recommendations based on the project’s context and style conventions. Quickly cycle through lines of code, complete function suggestions, and decide which to accept, reject, or edit. | Uzyskaj sugestie oparte na AI, tylko dla ciebie. GitHub Copilot dzieli się rekomendacjami na podstawie kontekstu projektu i konwencji stylu. Szybko przeglądaj linie kodu, kompletne sugestie funkcji i decyduj, które zaakceptować, odrzucić lub edytować. |
| Code confidently in unfamiliar territory. Whether you’re working in a new language or framework, or just learning to code, GitHub Copilot can help you find your way. Tackle a bug, or learn how to use a new framework without spending most of your time spelunking through the docs or searching the web. | Koduj z pewnością siebie na nieznanych terenach. Niezależnie od tego, czy pracujesz w nowym języku lub frameworku, czy tylko uczysz się kodowania, GitHub Copilot może pomóc ci znaleźć drogę. Rozwiązuj błąd, lub naucz się korzystać z nowego frameworka bez spędzania większości czasu na poszukiwaniu w dokumentach lub w sieci. |
Te tłumaczenia są generowane przez Copilota, nie można określić, czy te sugestie są generowane na podstawie modelu, czy powstają w wyniku działania tłumaczenia. Faktycznie dowolna treść angielska w kolumnie en tabeli może być przez Copilota przetłumaczona (wygenerowana) na treść w kolumnie zh.

Ustawienia
Ustawienia klienta
| Ustawienie | Opis | Uwagi |
|---|---|---|
| temperature | Temperatura próbkowania | 0.0 - 1.0, 0.0 generuje najczęstsze fragmenty kodu, 1.0 generuje najmniej prawdopodobne, bardziej przypadkowe fragmenty kodu |
| length | Maksymalna długość generowanych sugestii kodu | Domyślnie 500 |
| inlineSuggestCount | Liczba generowanych sugestii inline | Domyślnie 3 |
| listCount | Liczba generowanych sugestii | Domyślnie 10 |
| top_p | Priorytetowe wyświetlanie sugestii z prawdopodobieństwem N | Domyślnie wyświetla wszystkie możliwe sugestie |
Własne ustawienia konta mają dwa ustawienia, jedno związane z prawami autorskimi, drugie związane z prywatnością.
- Czy używać kodu open source do dostarczania sugestii, głównie do unikania problemów z prawami autorskimi w fragmentach kodu generowanych przez Copilota, unikania ograniczeń licencji open source.
- Czy zezwolić na używanie własnych fragmentów kodu do poprawy produktu, unikania ryzyka wycieku prywatności.
Bezpieczeństwo danych
Zbieranie informacji przez Copilota
- Wersja komercyjna
- Informacje o użytkowaniu funkcji, mogą zawierać dane osobowe
- Zbiera fragmenty kodu, odrzuca je natychmiast po zaproponowaniu, nie zachowuje żadnych fragmentów kodu
- Udostępnianie danych, GitHub, Microsoft, OpenAI
- Wersja osobista
- Informacje o użytkowaniu funkcji, mogą zawierać dane osobowe
- Zbiera fragmenty kodu, w zależności od ustawień telemetrycznych, zachowuje lub odrzuca po zaproponowaniu
- Fragmenty kodu zawierają, kod, nad którym aktualnie pracujemy, powiązane pliki, otwarte pliki w IDE, adresy bibliotek, ścieżki plików
- Udostępnianie danych, GitHub, Microsoft, OpenAI
- Ochrona danych kodu, 1. Szyfrowanie. 2. Część pracowników zespołu Copilot związanych z Github/OpenAI może przeglądać. 3. Dostęp wymaga kontroli dostępu opartej na rolach i weryfikacji wieloskładnikowej
- Unikanie używania (zachowania lub szkolenia) fragmentów kodu, 1. Ustawienia 2. Skontaktuj się z zespołem Copilot
- Czy prywatny kod zostanie użyty? Nie.
- Czy zostaną wygenerowane dane osobowe (imię, data urodzenia itp.)? Rzadko, wciąż się poprawia.
- Szczegółowe oświadczenie prywatności
Często zadawane pytania
- Dane treningowe Copilota, pochodzą z publicznych repozytoriów Github.
- Czy kod napisany przez Copilota jest idealny? Niekoniecznie.
- Czy można napisać kod dla nowej platformy? Na razie możliwości są ograniczone.
- Jak lepiej używać Copilota? Podziel kod na małe funkcje, opisz funkcję funkcji językiem naturalnym, a także wejście i wyjście, używaj zmiennych i nazw funkcji o konkretnym znaczeniu.
- Czy kod generowany przez Copilota ma błędy? Oczywiście nie można tego uniknąć.
- Czy kod generowany przez Copilota można używać bezpośrednio? Niekoniecznie, czasami trzeba go zmodyfikować.
- Czy kod generowany przez Copilota można używać w projektach komercyjnych? Tak.
- Czy kod generowany przez Copilota należy do praw autorskich Copilota? Nie.
- Czy Copilot kopiuje kod ze zbioru treningowego? Copilot nie kopiuje kodu, bardzo rzadko może się zdarzyć, że więcej niż 150 wierszy kodu może pasować do zbioru treningowego, następujące dwa przypadki mogą się zdarzyć
- Gdy informacja kontekstowa jest bardzo mała
- To uniwersalne rozwiązanie problemu
- Jak uniknąć powtarzania się z kodem publicznym, ustaw filtr

- Jak prawidłowo używać kodu generowanego przez Copilota? 1. Samodzielnie testuj/inspekcjonuj generowany kod; 2. Nie kompiluj ani nie uruchamiaj automatycznie generowanego kodu przed inspekcją.
- Czy Copilot ma taką samą wydajność w każdym języku naturalnym? Najlepsza wydajność to język angielski.
- Czy Copilot wygeneruje obraźliwe treści? Są filtrowane, ale nie wyklucza się możliwości ich wystąpienia.














