Untersuchen bewährter Methoden für GitHub Copilot
Die GitHub Copilot-Erweiterungen für Visual Studio Code helfen Entwicklern, Code schneller und mit weniger Fehlern zu schreiben.
Aber GitHub Copilot ist ein KI-Paarprogrammierer, kein Programmierer. Um die GitHub Copilot-Tools optimal zu verwenden, müssen Sie bewährte Methoden befolgen.
Wählen Sie das richtige Copilot-Tool für den Auftrag aus.
Während die Codevervollständigen-Features von GitHub Copilot und die Chatfeatures von GitHub Copilot einige Funktionen teilen, werden die beiden Tools unter unterschiedlichen Umständen am besten verwendet.
Codevervollständigungen bieten den größten Wert, wenn sie für Folgendes verwendet werden:
- Schließen Sie Codeausschnitte, Variablennamen und Funktionen ab, während Sie sie schreiben.
- Generieren Sie sich wiederholenden Code.
- Generieren Sie Code aus Inlinekommentaren in natürlicher Sprache.
- Generieren Sie Tests für die testgesteuerte Entwicklung.
Alternativ bieten die Chatfunktionen von GitHub Copilot den größten Nutzen, wenn sie verwendet werden:
- Beantworten Sie Fragen zu Code in natürlicher Sprache.
- Generieren Sie große Codeabschnitte, und verfeinern Sie diesen Code, um Ihre Anforderungen zu erfüllen.
- Erledigen Sie bestimmte Aufgaben mit Schlüsselwörtern und Fähigkeiten. GitHub Copilot Chat verwendet integrierte Schlüsselwörter (und Fähigkeiten, die für wichtige Kontexte entwickelt wurden) innerhalb von Eingabeaufforderungen, um häufige Aufgaben schnell zu erledigen. Verschiedene Arten von Schlüsselwörtern und Fähigkeiten stehen auf verschiedenen Copilot-Chatplattformen zur Verfügung.
- Führen Sie eine Aufgabe als bestimmte Persona aus. Sie können z. B. Copilot Chat mitteilen, dass es sich um einen Senior C++-Entwickler handelt, der sich um Codequalität, Lesbarkeit und Effizienz kümmert. Nach dem Einrichten der Persona können Sie GitHub Copilot bitten, Ihren Code zu überprüfen.
Optimales Nutzen von Copilot-Inlinevorschlägen
Die GitHub Copilot-Erweiterung stellt Vorschläge automatisch bereit, die Ihnen helfen, effizienter zu programmieren. GitHub Copilot bietet bessere Vorschläge, wenn Sie bestimmte Aktionen und Verhaltensweisen befolgen. Möglicherweise befolgen Sie bereits einigen dieser Aktionen und Verhaltensweisen, da sie Ihnen und Ihren Kollegen auch helfen, Ihren Code zu verstehen.
GitHub Copilot Kontext zur Verfügung stellen
GitHub Copilot funktioniert am besten, wenn ausreichenden Kontext vorhanden ist, um zu verstehen, was Sie tun und wobei Sie Hilfe benötigen. Genau wie Sie einem Kollegen bei der Frage nach Hilfe einen relevanten Kontext zur Verfügung stellen, müssen Sie GitHub Copilot Kontext zur Verfügung stellen.
Öffnen von Dateien
Für Codeabschlüsse untersucht GitHub Copilot die Dateien, die in Ihrem Editor geöffnet sind, um Kontext zu etablieren und entsprechende Vorschläge zu erstellen. Wenn verwandte Dateien in Visual Studio Code geöffnet werden, während GitHub Copilot verwendet wird, können Sie den Kontext definieren und Copilot eine Übersicht über Ihr Projekt geben.
Allgemeine Kommentare
Genau wie Sie einem Kollegen eine kurze, allgemeine Einführung geben würden, kann ein allgemeiner Kommentar in einer Codedatei GitHub Copilot helfen, den Gesamtkontext des Codes zu verstehen, den Sie erstellen.
Entsprechende Includes und Verweise
Es empfiehlt sich, die für Ihre Arbeit benötigten Includes oder Modulverweise manuell festzulegen. GitHub Copilot kann Vorschläge machen, aber Sie wissen wahrscheinlich am besten, welche Abhängigkeiten Sie berücksichtigen müssen. Dies kann GitHub Copilot bei der Erstellung von Vorschlägen auch informieren, welche Frameworks, Bibliotheken und deren Versionen Sie verwenden möchten.
Aussagekräftige Funktionsnamen
Genau wie eine Methode namens fetchData() einem Kollegen (oder Ihnen nach mehreren Monaten) nicht mehr viel sagt, hilft fetchData() GitHub Copilot nicht Ihren Code zu verstehen. Die Verwendung aussagekräftiger Funktionsnamen hilft Copilot dabei, Vorschläge zu generieren, die erreichen, was Sie sich vorstellen.
Spezifische und treffende Funktionskommentare
Ein Funktionsname kann nur begrenzt beschreibend sein, ohne übermäßig lang zu werden. Funktionskommentare können dazu beitragen, Details zu ergänzen, die Copilot möglicherweise kennen muss.
Vorbereiten von Copilot mit Beispielcode
Ein Trick, Copilot die richtigen Tipps zu geben, besteht darin, wünschenswerte Codebeispiele in eine geöffnete Editor-Registerkarte zu kopieren. Das Beispiel sollte den Code darstellen, den GitHub Copilot emulieren soll. Wenn Sie ein Beispiel bereitstellen, kann GitHub Copilot damit Vorschläge generieren, die mit der Sprache und den Aufgaben übereinstimmen, die Sie emulieren möchten. Nachdem Copilot Ihnen geholfen hat, Code zu erstellen, der Ihrem Ziel entspricht, können Sie den Beispielcode löschen. Dieser Ansatz ist besonders hilfreich, wenn Sie Copilot „trainieren“ müssen. Angenommen, GitHub Copilot schlägt standardmäßig Codeschnipsel vor, die eine ältere Version einer Bibliothek implementieren. Sie können Code in Ihr Projekt einfügen, das die neueste Version der Bibliothek verwendet. Dadurch kann Copilot mit dem Vorschlagen von Codeschnipseln beginnen, die die neueste Version der Bibliothek verwenden. Nachdem GitHub Copilot gelernt hat, die neue Bibliotheksversion zu verwenden, können Sie den Beispielcode löschen.
Aufrechterhalten von Konsistenz und hoher Qualität
GitHub Copilot nutzt Ihren Code, um Vorschläge zu generieren, die dem vorhandenen Muster folgen, sodass die Wendung „Garbage In, Garbage Out“ gilt.
Es kann Disziplin erfordern, die Qualität immer hoch zu halten. Besonders, wenn Sie schnell und locker Code schreiben, um etwas zum Funktionieren zu bringen. Möglicherweise möchten Sie GitHub Copilot-Fertigstellungen im „Hacking“-Modus deaktivieren. Sie können Fertigstellungen vorübergehend über das GitHub Copilot-Statusmenü deaktivieren (zugänglich über die Statusleiste von Visual Studio Code).
Optimale Nutzung von GitHub Copilot Chat
Wenn Sie die Chatfunktionen von GitHub Copilot verwenden, gibt es mehrere Möglichkeiten, ihre Erfahrung zu optimieren.
Allgemein beginnen, dann spezifisch werden
Wenn Sie einen Prompt für GitHub Copilot schreiben, geben Sie Copilot zunächst eine umfassende Beschreibung des Ziels oder Szenarios. Listen Sie dann alle spezifischen Anforderungen auf. Berücksichtigen Sie die folgenden Prompts:
- Schreiben Sie eine Funktion, die mir sagt, ob eine Zahl eine Primzahl ist.
- Die Funktion sollte eine ganze Zahl aufnehmen und true zurückgeben, wenn die ganze Zahl eine Primzahl ist.
- Die Funktion sollte einen Fehler auslösen, wenn die Eingabe keine positive ganze Zahl ist.
Beispiele geben
Verwenden Sie Beispiele, um GitHub Copilot dabei zu helfen, das Gewünschte zu verstehen. Sie können Beispieleingabedaten, Beispielausgaben und Beispielimplementierungen bereitstellen.
Aufteilen komplexer Aufgaben in einfachere Aufgaben
Wenn GitHub Copilot einen komplexen oder großen Vorgang abschließen soll, unterteilen Sie den Vorgang in mehrere einfache, kleine Vorgänge. Anstatt z. B. Copilot aufzufordern, ein Wortsuchpuzzle zu generieren, brechen Sie den Prozess in kleinere Aufgaben auf, und bitten Sie GitHub Copilot, sie nacheinander auszuführen:
- Schreiben Sie eine Funktion, um ein 10 x 10 Buchstabenraster zu generieren.
- Schreiben Sie eine Funktion, um alle Wörter in einem Buchstabenraster zu finden, wenn Sie eine Liste von gültigen Wörtern haben.
- Schreiben Sie eine Funktion, die die vorherigen Funktionen verwendet, um ein 10 x 10 Buchstabenraster zu erzeugen, das mindestens 10 Wörter enthält.
- Aktualisieren Sie die vorherige Funktion, um das Buchstabenraster und 10 zufällige Wörter aus dem Raster zu drucken.
Mehrdeutigkeit vermeiden
Vermeiden Sie mehrdeutige Begriffe. Fragen Sie z. B. nicht „Was tut dies“, wenn „dies“ die aktuelle Datei, die letzte GitHub Copilot-Antwort oder ein bestimmter Codeblock sein könnte. Statt mehrdeutige Begriffe zu verwenden, müssen Sie spezifisch sein: Was macht die createUser-Funktion?
Angeben des relevanten Codes
Wenn Sie GitHub Copilot Chat in Ihrer IDE verwenden, öffnen Sie die Dateien, oder markieren Sie den Code, den GitHub Copilot referenzieren soll. Verwenden Sie Chatteilnehmer, Schrägstrich-Befehle und Chatvariablen in Prompts, um Kontext hinzuzufügen. Geben Sie z. B. an, auf welche Dateien GitHub Copilot Chat verweisen soll.
Verwenden von Chatteilnehmern, Schrägstrich-Befehlen und Chatvariablen
Chatteilnehmer wurden konzipiert, um zusätzlichen Kontext über eine Codebasis oder eine bestimmte Domäne oder Technologie zu sammeln. Wenn Sie den entsprechenden Teilnehmer angeben, kann GitHub Copilot Chat bessere Informationen finden und bereitstellen, die an das Copilot-Back-End gesendet werden können. Verwenden Sie z. B. @workspace, wenn Sie Fragen zu Ihrem geöffneten Projekt stellen, oder @vscode, wenn Sie Fragen zu Visual Studio Code-Features und APIs stellen.
Schrägstrich-Befehle helfen GitHub Copilot Chat, Ihre Absicht zu verstehen, wenn Sie eine Frage stellen. Informieren Sie sich über eine Codebasis (/explain), wünschen Sie Hilfe beim Beheben eines Problems (/fix), oder erstellen Sie Testfälle (/tests)? Indem Sie Copilot Chat wissen lassen, was Sie tun möchten, kann er seine Antwort für Ihre Aufgabe optimieren und hilfreiche Befehle, Einstellungen und Codeschnipsel bereitstellen.
Chatteilnehmer, z. B. @workspace oder @vscode, können Chatvariablen beitragen, die domänenspezifischen Kontext bereitstellen. Sie können in Ihrem Chatprompt auf eine Chatvariable verweisen, indem Sie das Symbol # verwenden. Sie können Chatvariablen verwenden, um den Kontext Ihres Prompts genauer anzugeben.
Mit der #file-Chatvariablen können Sie beispielsweise in ihrem Chatprompt auf bestimmte Dateien in Ihrem Arbeitsbereich verweisen. Dadurch werden die Antworten von GitHub Copilot Chat für Ihren Code relevanter, indem Sie Kontext zu der Datei bereitstellen, mit der Sie arbeiten. Sie können Fragen wie „Can you suggest improvements to #file:package.json?“ oder „How do I add an extension in #file:devcontainer.json?“ stellen. Die Verwendung der Variablen #file kann Ihnen helfen, gezieltere und genauere Antworten von Copilot zu erhalten.
Experimentieren und durchlaufen
Wenn Sie nicht das gewünschte Ergebnis erhalten, durchlaufen Sie Ihren Prompt und versuchen Sie es erneut. Verweisen Sie in Ihrer nächsten Anforderung auf die vorherige Antwort. Sie können auch die vorherige Antwort löschen und von vorn beginnen.
Verlauf relevant halten
GitHub Copilot Chat verwendet den Chatverlauf, um Kontext zu Ihrer Anfrage zu erhalten. So stellen Sie sicher, dass GitHub Copilot einen relevanten Chatverlauf verwendet:
- Verwenden Sie Threads zum Starten einer neuen Unterhaltung für eine neue Aufgabe.
- Löschen Sie Anfragen, die nicht mehr relevant sind oder die nicht zum gewünschten Ergebnis geführt haben.
Befolgen Sie bewährte Programmiermethoden
Wenn Sie die gewünschten Antworten nicht erhalten, wenn Sie GitHub Copilot nach Vorschlägen fragen, stellen Sie sicher, dass Ihr vorhandener Code bewährte Methoden befolgt und leicht zu lesen ist. Zum Beispiel:
- Verwenden Sie konsistenten Codestil und -muster.
- Verwenden Sie beschreibende Namen für Variablen und Funktionen.
- Kommentieren Sie Ihren Code.
- Strukturieren Sie Ihren Code in modulare, bereichsbezogene Komponenten.
- Schließen Sie Komponententests ein.
Zusammenfassung
GitHub Copilot ist ein leistungsfähiges Tool, mit dem Sie Code schneller und mit weniger Fehlern schreiben können. Um gitHub Copilot optimal nutzen zu können, müssen Sie jedoch bewährte Methoden befolgen. Indem Sie das richtige Copilot-Tool für den Auftrag auswählen, Kontext bereitstellen und bewährte Codierungsmethoden ausführen, können Sie Ihre Erfahrung mit GitHub Copilot optimieren.