Tworzenie skutecznych poleceń dla GitHub Copilot
prompt to instrukcja języka naturalnego, która informuje GitHub Copilot, co chcesz zrobić. Wskazówki mogą służyć do zadawania pytań, komunikowania próśb lub opisywania zadań.
Na przykład następujące komunikaty reprezentują pytanie, żądanie i opis zadania.
Question: How do I create a button that submits a form?
Request: Add a button that opens a modal dialog. The button should be blue with rounded corners.
Task: Build a product page that displays a product title, product image, product description, and price. Product information should be fetched from the attached ProductsList.json file. The price should be formatted as currency. The page should also include a button to add the product to the cart.
Jakość monitu bezpośrednio wpływa na jakość odpowiedzi GitHub Copilot.
Co sprawia, że dobra podpowiedź?
Tworzenie monitów o wysokiej jakości jest niezbędne do uzyskania największej wartości z GitHub Copilot. Poniższe strategie ułatwiają tworzenie monitów, które generują dokładniejsze, istotne i przydatne odpowiedzi.
Rozpocznij ogólne, a następnie uzyskaj szczegółowe informacje
Podczas pisania monitu dla Copilot, zacznij od szerokiego opisu celu lub scenariusza, a następnie podaj określone wymagania. Takie podejście zapewnia Copilotowi niezbędny kontekst i jednocześnie gwarantuje spełnienie szczegółowych potrzeb.
Example:
Write a function that tells me if a number is prime.
The function should take an integer and return true if the integer is prime.
The function should error if the input is not a positive integer.
Podaj konkretne przykłady
Przykłady to jeden z najskuteczniejszych sposobów przekazywania intencji do Copilot. Możesz podać przykładowe dane wejściowe, oczekiwane dane wyjściowe, a nawet przykładowe implementacje, aby poprowadzić zrozumienie sztucznej inteligencji.
Example:
Write a function that finds all dates in a string and returns them in an array. Dates can be formatted like:
- 05/02/24
- 05/02/2024
- 5/2/24
- 5/2/2024
- 05-02-24
- 05-02-2024
- 5-2-24
- 5-2-2024
Example usage:
findDates("I have a dentist appointment on 11/14/2023 and book club on 12-1-23")
Expected return: ["11/14/2023", "12-1-23"]
Podział złożonych zadań na prostsze kroki
W przypadku wykonywania złożonych lub dużych zadań należy podzielić je na mniejsze, możliwe do zarządzania składniki. Takie podejście prowadzi do lepszych wyników i ułatwia debugowanie i uściślenie poszczególnych elementów.
Example: Zamiast prosić Copilot o wygenerowanie pełnej zagadki wyszukiwania wyrazów, podziel ją na:
Write a function to generate a 10 by 10 grid of lettersWrite a function to find all words in a grid of letters, given a list of valid wordsWrite a function that uses the previous functions to generate a 10 by 10 grid containing at least 10 wordsUpdate the previous function to print the grid and 10 random words from the grid
Eliminowanie niejednoznaczności
Unikaj niejasnych odwołań i niejednoznacznych terminów, które mogą być interpretowane na wiele sposobów. Bądź jasny na co się powołujesz i co chcesz, aby Copilot zrobił.
Słabe przykłady:
- Co to robi? (Niejasne, co oznacza „to”).
- "Napraw usterkę" (nie określa, która usterka lub jak ją naprawić).
Lepsze przykłady:
- "Co robi funkcja createUser?"
- "Co robi kod w ostatniej odpowiedzi?"
- "Napraw błąd weryfikacji w polu wprowadzania wiadomości e-mail".
Zagadnienia dotyczące biblioteki:
- Jeśli używasz nietypowej biblioteki, opisz jej przeznaczenie.
- W przypadku określonych bibliotek dołącz instrukcje importu lub określ bibliotekę, której chcesz użyć.
Podaj odpowiedni kontekst
Pomóż Copilot zrozumieć strukturę i intencje projektu, efektywnie zarządzając środowiskiem deweloperów.
W środowisku IDE:
- Otwórz odpowiednie pliki i zamknij niepowiązane.
- Wyróżnij konkretne sekcje kodu, do których Copilot ma się odwoływać.
- Użyj przycisku Dodaj kontekst w widoku czatu, aby dołączyć określone pliki, symbole lub zawartość obszaru roboczego.
- Odwołuj się bezpośrednio do kontekstu w swoich promptach z odwołaniami, takimi jak
#,#filei#selection.
In Copilot Chat:
- Odnieś się do określonych plików lub bloków kodu.
- Dołącz odpowiednią dokumentację lub specyfikację.
- Użyj czystych ścieżek plików i nazw funkcji.
Iteruj i udoskonalaj
Nie oczekuj doskonałych wyników podczas pierwszej próby. Copilot działa najlepiej, gdy angażujesz się w konwersację iteracyjną, uściśliszając żądania na podstawie otrzymywanych odpowiedzi.
Strategie iteracji:
- Jeśli używasz sugestii w linii, usuń je i spróbuj ponownie ze zmodyfikowaną podpowiedzią.
- W Copilot Chat odwołaj się do poprzednich odpowiedzi i poproś o określone modyfikacje.
- Buduj na rozwiązaniach częściowych, prosząc o ulepszanie ich krok po kroku.
Zachowaj odpowiednią historię konwersacji
Copilot Chat używa historii konwersacji do zrozumienia kontekstu, więc strategicznie zarządzaj tą historią.
Najlepsze rozwiązania:
- Uruchom nowe wątki dla różnych zadań lub projektów.
- Usuń nieistotne lub nieudane żądania, które mogą mylić przyszłe odpowiedzi.
- Zachowaj konwersacje skoncentrowane na powiązanych funkcjach.
Postępuj zgodnie z dobrymi praktykami w zakresie kodowania
Jakość istniejącej bazy kodu wpływa na możliwość generowania odpowiednich sugestii przez Copilot. Zachowaj wysokie standardy w kodzie, aby uzyskać lepszą pomoc w zakresie sztucznej inteligencji.
Czynniki jakości kodu:
- Używaj spójnego stylu kodu i wzorców.
- Wybierz nazwy opisowe zmiennych i funkcji.
- Dodaj znaczące komentarze, aby wyjaśnić złożoną logikę.
- Strukturyzuj kod w modułowych, dobrze zdefiniowanych komponentach.
- Uwzględnij kompleksowe testy jednostkowe.
Note
Możesz poprosić Copilot, aby pomógł poprawić jakość kodu, prosząc o komentarze, sugestie dotyczące refaktoryzacji lub dzieląc duże funkcje na mniejsze, bardziej zarządzalne części.
Dobre wskazówki to:
- Jasne: Opisz dokładnie, czego chcesz.
- Specyficzne: dołącz układ, zachowanie lub szczegóły stylów.
- Kontekstowy: odwołuje się do istniejącego kodu lub struktury.
Iteracja nad monitami
Jeśli początkowa odpowiedź GitHub Copilot nie jest zgodna z oczekiwaniami, może być konieczne zmiana sformułowania polecenia. Rozważ następujące strategie:
- Edytuj monit, aby był bardziej szczegółowy.
- Dodaj kontekst do czatu, który wyjaśnia cele lub wymagania.
- Użyj Copilot Chat, aby zadawać pytania, które opierają się na poprzednich odpowiedziach.
Ocenianie sugestii Copilot i odpowiadanie na nie
Zrozumienie sposobu oceniania sugestii Copilot ma kluczowe znaczenie dla efektywnego kodowania vibe. Nie każda sugestia będzie idealna, a wiedza o tym, kiedy zaakceptować, odrzucić lub zmodyfikować reakcje, znacznie poprawi Twoje doświadczenie deweloperskie.
Kiedy zaakceptować sugestie
Zaakceptujesz sugestie Copilot, gdy:
- Spełnij wymagania: kod wykonuje dokładnie to, o co prosisz.
- Postępuj zgodnie z najlepszymi rozwiązaniami: używa odpowiednich wzorców, konwencji nazewnictwa i struktury.
- Są dobrze ustrukturyzowane: kod jest czytelny, łatwy w utrzymaniu i prawidłowo sformatowany.
- Uwzględnij właściwą obsługę błędów: uwzględniono przypadki brzegowe i potencjalne awarie.
- Dopasuj styl projektu: spójny z istniejącymi wzorcami i konwencjami bazy kodu.
Przykładowa dobra sugestia do zaakceptowania:
Polecenie: "Utwórz funkcję do weryfikowania adresów e-mail"
Copilot sugeruje:
function validateEmail(email) {
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
if (typeof email !== 'string') {
throw new Error('Email must be a string');
}
return emailRegex.test(email.toLowerCase());
}
Ta sugestia powinna zostać zaakceptowana, ponieważ zawiera walidację danych wejściowych, obsługę błędów i używa rozsądnego wzorca wyrażeń regularnych.
Kiedy odrzucić sugestie
Odrzuć sugestie Copilot, gdy:
- Nie odpowiadaj na swój monit: kod rozwiązuje inny problem niż wymagany.
- Zawierają luki w zabezpieczeniach: używaj niebezpiecznych rozwiązań lub uwidaczniaj poufne dane.
- Są zbyt złożone: proste zadania implementowane z niepotrzebną złożonością.
- Użyj przestarzałych metod: polegaj na przestarzałych lub nieaktualnych interfejsach API.
- Brak obsługi błędów: nie uwzględniaj potencjalnych scenariuszy awarii.
- Naruszenie standardów kodowania: nie przestrzegaj ustalonych praktyk zespołu.
Przykład sugestii odrzucenia:
Polecenie: "Utwórz funkcję walidacji bezpiecznego hasła"
Słaba sugestia:
function validatePassword(password) {
return password.length > 6;
}
Należy to odrzucić, ponieważ jest zbyt uproszczone w przypadku wymagań dotyczących zabezpieczeń i nie weryfikuje prawidłowo siły hasła.
Kiedy należy zmodyfikować sugestie
Należy zmodyfikować sugestie Copilota, gdy:
- Są w większości poprawne, ale wymagają korekt: Podstawowa logika jest prawidłowa, ale szczegóły wymagają dostosowania.
- Potrzebujesz dodatkowych funkcji: funkcjonalność podstawowa jest dobra, ale wymaga ulepszeń.
- Występują drobne problemy ze stylem: Kod działa, ale nie pasuje do preferencji formatowania.
- Wymagaj różnych nazw zmiennych: logika jest poprawna, ale można ulepszyć nazewnictwo.
- Potrzebne są optymalizacje wydajności: Funkcjonalne, ale mogłoby być bardziej wydajne.
Przykład sugestii modyfikacji:
Copilot sugeruje:
function calculateTotal(items) {
let total = 0;
for (let i = 0; i < items.length; i++) {
total += items[i].price;
}
return total;
}
Modyfikacja w celu zapewnienia lepszej czytelności i nowoczesnego języka JavaScript:
function calculateTotal(items) {
return items.reduce((total, item) => total + item.price, 0);
}
Strategie ulepszania sugestii
Jeśli sugestia nie jest prawidłowa, wypróbuj następujące podejścia:
Uściślij monit:
- Dodaj bardziej szczegółowe wymagania.
- Dołącz przykłady oczekiwanych danych wejściowych/wyjściowych.
- Określ styl programowania lub strukturę, której używasz.
Modyfikacje żądań:
- "Uczynić poprzednią funkcję bardziej niezawodną dzięki obsłudze błędów".
- "Uprość właśnie napisany kod".
- "Dodaj typy TypeScript do poprzedniej funkcji".
Budowanie stopniowe:
- Zacznij od wersji podstawowej i poproś o ulepszenia.
- Dodaj funkcje pojedynczo zamiast żądać wszystkiego jednocześnie.
- Przetestuj każdą iterację przed przejściem do następnego ulepszenia.
Tip
Podczas modyfikowania sugestii zachowaj odpowiednie elementy i określ, co należy zmienić. Pomaga to Copilotowi zrozumieć Twoje preferencje i przedstawiać lepsze przyszłe sugestie.
Summary
Tworzenie skutecznych sugestii dla GitHub Copilot jest niezbędne do maksymalizacji jego potencjału w vibe coding. Zaczynając od ogólnych opisów, podając konkretne przykłady, dzieląc złożone zadania oraz utrzymując wyraźną komunikację, możesz kierować Copilotem w generowaniu wysokiej jakości kodu, który spełnia Twoje potrzeby. Iterowanie na poleceniach i zrozumienie, jak oceniać sugestie, jeszcze bardziej poprawi Twoje doświadczenie deweloperskie, co pozwoli Ci efektywnie korzystać z pomocy sztucznej inteligencji, zachowując kontrolę nad procesem kodowania.