Zastosowane techniki narzędzia GitHub Copilot

Zakończone

W poprzednich lekcjach pokazaliśmy, jak skonfigurować platformę Copilot i wspomnieć o tym, jak można przyspieszyć pisania kodu przez dewelopera.

W tej lekcji omówimy, jak copilot może pomóc w pracy z istniejącymi projektami i pomóc w rozwiązywaniu bardziej skomplikowanych zadań.

Zaawansowane zadania za pomocą narzędzia GitHub Copilot

Często pracujesz z istniejącym projektem jako inżynier. Podczas naprawiania kodu lub implementowania funkcji musimy napisać dokumentację i testy oraz pracować z poleceniami terminalu. Przyjrzyjmy się kilku sposobom, które można osiągnąć za pomocą narzędzia GitHub Copilot.

Monity niejawne

Chociaż możesz być specyficzny w monitach o uzyskanie wskazówek Dotyczących copilot w usłudze GitHub, możesz skorzystać z funkcji, które niejawnie zapewniają wstępnie utworzony monit, aby uzyskać dobrą odpowiedź.

Jeśli na przykład pracujesz nad projektem w języku Python i masz otwarty plik z następującym kodem, który zawiera usterkę:

with open("file.txt", "r") as file:
    # Read the file and print the content
    contents = file.read

Po wybraniu kodu i naciśnięciu Ctrl+i w systemie Windows lub Command+i na komputerze Mac możesz poprosić narzędzie GitHub Copilot o pomoc w naprawieniu kodu przy użyciu wbudowanego czatu i /fix polecenia ukośnika.

Jeśli wpiszesz /fixtylko ciąg , możesz uzyskać odpowiedź z witryny GitHub Copilot podobną do następującej sugestii: "Aby naprawić kod, dodaj nawiasy po pliku.read, aby wywołać metodę read i naprawić literówkę w nazwie metody.

Polecenia Slash mogą służyć zarówno do rozmów wbudowanych, jak i interfejsu czatu. Oprócz /fix polecenia poniżej przedstawiono niektóre z najbardziej przydatnych poleceń slash, których można użyć w czacie Copilot:

  • /doc: dodaje komentarze do określonego lub wybranego kodu.
  • /explain: pobiera wyjaśnienia dotyczące kodu.
  • /generate: generuje kod, aby odpowiedzieć na określone pytanie.
  • /help: Dostaje pomoc w sposobie korzystania z czatu Copilot.
  • /optimize: analizuje i ulepsza środowisko uruchomieniowe wybranego kodu.
  • /tests: tworzy testy jednostkowe dla wybranego kodu.

Korzystanie z poleceń slash umożliwia łatwiejszą interakcję z rozwiązaniem GitHub Copilot i ułatwia uzyskanie lepszych odpowiedzi bez konieczności pisania dłuższych monitów.

Łączenie funkcji, takich jak polecenia slash z czatem wbudowanym, pozwala wybrać sposób, w jaki działa najlepiej dla Ciebie i kodu, nad którym pracujesz.

Kontekst selektywny

Narzędzie GitHub Copilot można dostosować, aby udostępniać sugestie na podstawie kontekstu, nad którym pracujesz. Możesz na przykład poprosić Narzędzie GitHub Copilot o podanie sugestii na podstawie całego obszaru roboczego lub danych wyjściowych terminalu.

Narzędzie GitHub Copilot może zapewnić dokładną sugestię dla projektu bez konieczności otwierania wielu plików. Wyobraź sobie, że musisz spakować projekt przy użyciu pliku Dockerfile. Plik Dockerfile to specjalny plik, który musi zawierać konkretne instrukcje dotyczące tworzenia pakietu projektu. Możesz użyć agenta, @workspace aby zapytać GitHub Copilot, jak ci pomóc. Na przykład otwórz aplikację GitHub Copilot Chat i wpisz następujące polecenie:

@workspace I need to create a Dockerfile for this project, can you generate one that will help me package it?

Otrzymasz odpowiedź z powrotem, która wyjaśnia kroki tworzenia pliku Dockerfile dla projektu wraz z pewnymi wyjaśnieniami dotyczącymi kroków pliku, które będą wykonywane.

Jak zawsze, jeśli sugestie nie są dokładnie tym, czego szukasz, możesz zmienić kolejność monitu i być bardziej szczegółowe. Możesz na przykład poprosić narzędzie GitHub Copilot o użycie określonego kroku podczas tworzenia pliku Dockerfile:

@workspace help me create a Dockerfile to package this project but make sure you are using a Virtual Environment for Python.

Oprócz agenta @workspace możesz użyć innych agentów, takich jak @terminal, @filei @directory , aby uzyskać sugestie specyficzne dla kontekstu:

  • @terminal: udostępnia sugestie na podstawie danych wyjściowych terminalu.
    • Przykład: @terminal Jak naprawić wyświetlany komunikat o błędzie?
  • @file: koncentruje się na zawartości określonego pliku.
    • Przykład: @file Czy możesz mi pomóc refaktoryzować tę funkcję w main.py?
  • @directory: uwzględnia zawartość określonego katalogu.
    • Przykład: @directory Jak mogę zoptymalizować skrypty w katalogu utils?

Jeśli utkniesz lub nie otrzymasz żądanych wyników, możesz zmienić kolejność monitu lub rozpocząć pisanie kodu dla rozwiązania Copilot w celu autouzupełniania.

Uwaga

Chociaż w edytorze tekstów można domyślnie używać @workspaceplików otwartych w edytorze tekstów jako dodatkowego kontekstu, domyślnie można używać funkcji GitHub Copilot.