Einstieg in die Verwendung von Copilot

Video-Beitrag

GitHub Copilot ist ein auf maschinellem Lernen basierendes Code-Vervollständigungswerkzeug, das Ihnen hilft, schneller Code zu schreiben und die Codier-Effizienz zu steigern.

Copilot Labs-Funktionen

Funktion Beschreibung Anmerkungen Beispiel
Explain Erzeugt Erklärungen zu Codeabschnitten Erweiterte Optionen zur Anpassung der Prompt, klarere Darstellung der Anforderungen Bild 1
Show example code Erzeugt Beispielcode zu Codeabschnitten Erweiterte Optionen zur Anpassung Bild 2
Language Translation Erzeugt Übersetzungen von Codeabschnitten Diese Übersetzung bezieht sich auf Programmiersprachen, z.B. C++ -> Python Bild 3
Readable Verbessert die Lesbarkeit eines Codes Nicht nur einfache Formatierung, echte Verbesserung der Lesbarkeit Bild 4
Add Types Fügt Typen hinzu Ändert automatisch typisierte Variablen zu expliziten Typen Bild 5
Fix bug Behebt Bugs Behebt einige häufige Bugs Bild 6
Debug Macht Code leichter debuggbar Fügt Logging-Prints hinzu oder temporäre Variablen für Breakpoints Bild 7
Clean Räumt Code auf Entfernt ungenutzte Teile, Kommentare/Prints/veralteten Code Bild 8
List steps Listet Code-Schritte auf Einige Codes hängen streng von der Reihenfolge ab, daher ist eine klare Kommentierung der Ausführungsreihenfolge erforderlich Bild 9
Make robust Macht Code robuster Berücksichtigt Grenzfälle/Multithreading/Reentrancy usw. Bild 10
Chunk Teilt Code in Blöcke Im Allgemeinen sollten Funktionen <=50 effektive Zeilen haben, Schachtelung <=4, Fan-out <=7, Zyklomatische Komplexität <=20 Bild 11
Document Erzeugt Dokumentation zum Code Erzeugt Code durch Kommentare und kann auch aus Code Kommentare und Dokumentation erzeugen Bild 12
Custom Benutzerdefinierte Operationen Sagt Copilot, wie er Ihren Code bearbeiten soll Bild 13

Was ist Copilot?

Die Webseite beschreibt Copilot kurz und knapp: Ihr KI-Paarprogrammierer

Pair Programming: Eine agile Softwareentwicklungsmethode, bei der zwei Programmierer am selben Computer arbeiten: einer tippt Code, der andere überprüft jede Codezeile. Die Rollen werden häufig ausgetauscht, um logische Strenge und Problemprävention sicherzustellen.

Copilot beteiligt sich an der Codierung auf folgende Weise, um die Rolle des Pair Programmers zu übernehmen:

Verständnis

Copilot ist ein großes Sprachmodell, das Ihren Code nicht versteht, und wir verstehen auch nicht das Modell von Copilot. Das Verständnis hier bezieht sich auf das gegenseitige Verständnis zwischen einem Programmierer und einer Gruppe von Programmierern. Wir basieren auf gemeinsamen Vereinbarungen, um gemeinsam Code zu schreiben.

Bild 14

Copilot sammelt Informationen, um den Kontext zu verstehen. Die Informationen umfassen:

  • Der aktuell bearbeitete Code
  • Zugehörige Dateien
  • Im IDE geöffnete Dateien
  • Bibliotheksadressen
  • Dateipfade

Copilot versteht nicht nur durch einen Kommentar, sondern sammelt ausreichend Kontextinformationen, um zu verstehen, was als Nächstes getan werden soll.

Empfehlungen

Vollständige Empfehlungen Inline-Empfehlungen
Bild 15 Bild 16

Wie allgemein bekannt ist, ist die häufigste Methode, Empfehlungen zu erhalten, die Beschreibung der Anforderungen durch Kommentare, anstatt direkt Code zu schreiben, um so vollständige Empfehlungen von GitHub Copilot zu erhalten. Dies kann jedoch zu redundanten Kommentaren führen. Kommentare sind nicht umso mehr, desto besser; sie sind kein Hauptteil des Codes. Guter Code ist ohne Kommentare klar verständlich und basiert auf passenden Namen, vernünftigem Design und klarer Logik. Bei Verwendung von Inline-Empfehlungen reicht ein passender Variablenname/Funktionsname/Klassenname aus, damit Copilot passende Vorschläge liefert.

Neben geeigneten externen Eingaben unterstützt Copilot auch Vorschläge basierend auf bestehenden Codeabschnitten. Copilot Labs -> Show example code kann helfen, Beispielcode für spezifische Funktionen zu generieren. Wählen Sie einfach den Code aus und klicken Sie auf Show example code.

Strg+Enter bietet immer sehr viel Inspiration. Ich habe drei Dateien erstellt: eine leere main.cpp, eine leere calculator.h, und in calculator.cpp habe ich “Addition” und “Subtraktion” implementiert. Copilot gab folgende Vorschläge:

  1. Hinzufügen der Implementierung von “Multiplikation” und “Division”
  2. Aufruf von “Addition, Subtraktion, Multiplikation, Division” in main
  3. Anleitung zur Erstellung und Verwendung einer calculator statischen Bibliothek
  4. Ausführungsergebnis der main-Funktion, wobei das Ergebnis korrekt ist
  5. Vorschlag für den Inhalt der calculator.h-Header-Datei
  6. g++-Kompilierbefehl
  7. gtest-Testfälle
  8. Inhalt von CMakeLists.txt mit Tests
  9. objdump -d main > main.s zur Anzeige des Assemblercodes, mit angezeigtem Assemblercode
  10. ar zur Anzeige des Inhalts der statischen Bibliothek, mit angezeigtem Inhalt

Standardmäßig unterscheiden sich die Inhalte bei jedem Drücken von Strg+Enter stark, und es ist nicht möglich, den zuletzt generierten Inhalt erneut anzuzeigen. Wenn Sie stabilere Inhalte generieren möchten, können Sie den Wert von temperature [0, 1] einstellen. Je kleiner der Wert, desto stabiler der generierte Inhalt; je größer der Wert, desto unvorhersehbarer der generierte Inhalt.

Die oben genannten Vorschläge gehen weit über die allgemeinen täglichen Empfehlungen hinaus. Möglicherweise liegt dies daran, dass das Projekt tatsächlich sehr einfach ist. Sobald die Kompilierdateien und Headerdateien vollständig geschrieben sind, werden die Vorschläge nicht mehr so zahlreich sein, aber sie bleiben dennoch oft sehr inspirierend.

Verwenden Sie die Tastenkürzel für Copilot-Empfehlungen:

Aktion Tastenkombination Befehlsname
Inline-Empfehlung akzeptieren Tab editor.action.inlineSuggest.commit
Vorschlag ignorieren Esc editor.action.inlineSuggest.hide
Nächste Inline-Empfehlung anzeigen Alt+] editor.action.inlineSuggest.showNext
Vorherige Inline-Empfehlung anzeigen Alt+[ editor.action.inlineSuggest.showPrevious
Inline-Empfehlung auslösen Alt+\ editor.action.inlineSuggest.trigger
Mehr Vorschläge in separatem Panel anzeigen Strg+Enter github.copilot.generate

Debugging

Im Allgemeinen gibt es zwei Debugging-Methoden: Drucken und Breakpoints.

  • Copilot kann helfen, Druckcode automatisch zu generieren und je nach Kontext das richtige Druck- oder Log-Format auszuwählen.
  • Copilot kann helfen, die bestehende Code-Struktur zu ändern und bequeme Breakpoint-Positionen bereitzustellen. Einige verschachtelte Code-Stile sind schwer zu debuggen; Copilot kann sie direkt ändern.

Copilot Labs bietet vordefinierte Funktionen:

  • Debug, generiert Debug-Code wie Drucken, Breakpoints und andere Debug-Code.

Überprüfung

Die Überprüfung ist wechselseitig; wir und Copilot sollten uns regelmäßig gegenseitig überprüfen und nicht blind auf schnell generierten Code vertrauen.

Copilot Labs bietet vordefinierte Funktionen:

  • Fix bug, behebt direkt Bugs, die es entdeckt. Stellen Sie sicher, dass Sie zuerst Ihren Code sichern und die Änderungen von Copilot sorgfältig prüfen.
  • Make robust, macht Code robuster. Copilot erkennt unverarbeitete Fälle und generiert Verbesserungscode. Wir sollten von ihm inspiriert werden, gründlicher zu denken.

Refactoring

Copilot Labs bietet vordefinierte Funktionen:

  • Readable, verbessert die Lesbarkeit, echte Verbesserung der Lesbarkeit, nicht nur einfache Formatierung, aber achten Sie sorgfältig auf die Änderungen von Copilot.
  • Clean, macht Code kürzer, entfernt unnötigen Code.
  • Chunk, macht Code leichter verständlich, teilt Code in Blöcke, teilt eine große Funktion in mehrere kleinere Funktionen.

Dokumentation

Copilot Labs bietet vordefinierte Funktionen:

  • Document, generiert Dokumentation wie Funktionskommentare und andere Dokumentation.

Erweiterung der Copilot-Grenzen mit Custom

Custom ist unauffällig, aber es verleiht Copilot unbegrenzte Möglichkeiten. Sie können es als eine neue Programmiersprache verstehen, die Sprache ist Englisch oder Chinesisch.

Sie können über Custom eingeben:

  • Entferne Kommentarcode
    Bild 17

  • Füge Multiplikations- und Divisionsfähigkeit hinzu
    Bild 18

  • Umschreiben in Go
    Bild 19

  • Füge trigonometrische Berechnung hinzu
    Bild 20

  • Füge Differentialrechnung hinzu, hier funktioniert Chinesisch nicht gut, verwenden Sie support calculate differential. Im Low-Temperature-Modus gibt es keine zuverlässigen Antworten, im High-Temperature-Modus gibt es einige absurde Antworten.

Im täglichen Geschäft können Sie jederzeit Ihre Anforderungen an Copilot stellen. Durch die Custom-Fähigkeit kann Copilot Ihnen helfen, viele gewünschte Operationen durchzuführen.

Einige Beispiele:

prompts Beschreibung
generate the cmake file Erzeuge CMake-Datei
generate 10 test cases for tan() Erzeuge 10 Testfälle für tan()
format like google style Formatieren wie Google-Stil
考虑边界情况 Berücksichtige Randbedingungen
确认释放内存 Bestätige Speicherfreigabe

Die Verwendung von Custom ist voller Vorstellungskraft, aber manchmal auch nicht sehr zuverlässig. Es wird empfohlen, vor der Nutzung den Code zu sichern und dann die von ihm vorgenommenen Änderungen sorgfältig zu prüfen.

Erhalt professionellerer Empfehlungen

Je klarer die Hinweise für Copilot sind, desto genauer sind die Vorschläge. Professionelle Hinweise führen zu professionelleren Empfehlungen. Viele ungeeignete Codes beeinträchtigen weder die Kompilierung noch den Betrieb des Geschäfts, aber sie beeinflussen Lesbarkeit, Wartbarkeit, Erweiterbarkeit und Wiederverwendbarkeit. Diese Eigenschaften sind ebenfalls sehr wichtig. Wenn Sie professionellere Empfehlungen erhalten möchten, sollten Sie einige englische Bezeichnungen für Best Practices kennen.

  • Zunächst einmal sollte verständliches Englisch verwendet werden, was durch das Lesen von Open-Source-Projekten gelernt werden kann.
  • Namenskonventionen, Namensgebung ist die grundlegendste Definition eines Konzepts. Eine gute Namensgebung kann Mehrdeutigkeiten vermeiden und verhindern, dass Leser in Geschäftsdetails versinken, wodurch die Lesbarkeit des Codes erhöht wird, was ebenfalls eine Best Practice ist.
    • Normalerweise reicht ein vernünftiger Variablenname aus, damit Copilot eine ganze Passage an verlässlichen Vorschlägen liefert.
  • Liste der Entwurfsmuster, Entwurfsmuster sind Vorlagen zur Problemlösung, die verschiedene Probleme unter Berücksichtigung der SOLID-Entwurfsprinzipien vernünftig abwägen, die Zeit für die Entwurfsplanung sparen und die Codequalität verbessern.
    • Schreiben Sie nur den Namen des benötigten Musters, Copilot kann den vollständigen Codeabschnitt generieren.
  • Liste der Algorithmen, gute Algorithmen sind hochintelligente Kristallisationen zur Lösung bestimmter Probleme. Entwickler müssen das konkrete Problem selbst abstrahieren und die Daten in den Algorithmus eingeben.
    • Algorithmuscode ist in der Regel universell. Schreiben Sie nur den Algorithmenamen, Copilot kann den Algorithmuscode generieren und fügt geschickt die Datenstruktur des Kontexts in den Algorithmus ein.

Reine Text-Empfehlungen

en zh
GitHub Copilot uses the OpenAI Codex to suggest code and entire functions in real-time, right from your editor. GitHub Copilot nutzt den OpenAI Codex, um in Echtzeit Code- und Funktionsvorschläge direkt aus Ihrem Editor heraus zu liefern.
Trained on billions of lines of code, GitHub Copilot turns natural language prompts into coding suggestions across dozens of languages. Trainiert auf Milliarden von Codezeilen verwandelt GitHub Copilot natürliche Sprachprompts in Codierungsvorschläge über Dutzende von Sprachen hinweg.
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. Fliegen Sie nicht allein. Entwickler auf der ganzen Welt nutzen GitHub Copilot, um schneller zu coden, sich auf Geschäftslogik anstelle von Standardcode zu konzentrieren und das Wichtigste zu tun: großartige Software zu bauen.
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. Konzentrieren Sie sich auf die Lösung größerer Probleme. Verbringen Sie weniger Zeit damit, Standard- und repetitive Code-Muster zu erstellen, und mehr Zeit auf das, was zählt: großartige Software zu bauen. Schreiben Sie einen Kommentar, der die Logik beschreibt, die Sie wollen, und GitHub Copilot wird sofort Codevorschläge zur Implementierung der Lösung liefern.
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. Holen Sie sich KI-basierte Vorschläge, nur für Sie. GitHub Copilot teilt Empfehlungen basierend auf dem Kontext und den Stilkonventionen des Projekts. Durchlaufen Sie schnell Codezeilen, vollständige Funktionsvorschläge und entscheiden Sie, welche akzeptiert, abgelehnt oder bearbeitet werden sollen.
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. Coden Sie selbstbewusst in unbekanntem Terrain. Egal, ob Sie in einer neuen Sprache oder einem neuen Framework arbeiten oder gerade das Programmieren lernen, GitHub Copilot kann Ihnen helfen, Ihren Weg zu finden. Lösen Sie einen Bug oder lernen Sie, wie man ein neues Framework verwendet, ohne die meiste Zeit mit der Suche in Dokumentationen oder im Internet zu verbringen.

Diese Übersetzungen werden von Copilot generiert. Es kann nicht sichergestellt werden, ob diese Vorschläge auf Modellgenerierung oder Übersetzungsverhalten basieren. Tatsächlich kann jeder englische Inhalt, den Sie in die Spalte en der Tabelle schreiben, von Copilot in den chinesischen Inhalt der Spalte zh übersetzt (generiert) werden.

Bild 21

Einstellungen

Client-Einstellungen

Einstellung Beschreibung Anmerkungen
temperature Sampling-Temperatur 0.0 - 1.0, 0.0 generiert die häufigsten Codeabschnitte, 1.0 generiert die ungewöhnlichsten und zufälligsten Codeabschnitte
length Maximale Länge der Codevorschläge Standard 500
inlineSuggestCount Anzahl der Inline-Vorschläge Standard 3
listCount Anzahl der Vorschläge Standard 10
top_p Priorisierung der Anzeige der N wahrscheinlichsten Vorschläge Standardmäßig werden alle möglichen Vorschläge angezeigt

Personenkontoeinstellungen haben zwei Einstellungen: eine copyrightbezogene und eine datenschutzbezogene.

  • Ob Open-Source-Code zur Bereitstellung von Vorschlägen verwendet wird, dient hauptsächlich dazu, Urheberrechtsprobleme in den von Copilot generierten Codeabschnitten zu vermeiden und Lizenzbeschränkungen zu vermeiden.
  • Ob die Nutzung persönlicher Codeabschnitte zur Verbesserung des Produkts erlaubt ist, dient dazu, Risiken von Datenschutzverletzungen zu vermeiden.

Datensicherheit

Copilot-Datensammlung

  • Unternehmensversion
    • Funktionsnutzungsinformationen, die persönliche Daten enthalten können
    • Sammeln von Codeabschnitten, die nach der Bereitstellung von Vorschlägen sofort verworfen werden, keine Codeabschnitte werden gespeichert
    • Datenfreigabe, GitHub, Microsoft, OpenAI
  • Persönliche Version
    • Funktionsnutzungsinformationen, die persönliche Daten enthalten können
    • Sammeln von Codeabschnitten, die nach der Bereitstellung von Vorschlägen je nach persönlichen Telemetrie-Einstellungen behalten oder verworfen werden
    • Codeabschnitte enthalten: aktuell bearbeiteter Code, zugehörige Dateien, im IDE geöffnete Dateien, Bibliotheksadressen, Dateipfade
    • Datenfreigabe, GitHub, Microsoft, OpenAI
    • Code-Datenschutz: 1. Verschlüsselung. 2. Teile des GitHub/OpenAI-Teams mit Bezug zu Copilot können sehen. 3. Zugriff erfolgt über rollenbasierte Zugriffssteuerung und mehrfaktorielle Authentifizierung
    • Vermeidung der Nutzung (Speicherung oder Training) von Codeabschnitten: 1. Einstellungen 2. Kontakt zum Copilot-Team
    • Wird privater Code genutzt? Nein.
    • Werden persönliche Daten (Name, Geburtstag usw.) ausgegeben? Selten, wird noch verbessert.
  • Detaillierte Datenschutzerklärung

Häufig gestellte Fragen

  • Copilot-Trainingsdaten stammen aus öffentlichen GitHub-Repositories.
  • Ist der von Copilot geschriebene Code perfekt? Nicht unbedingt.
  • Kann für neue Plattformen Code geschrieben werden? Zurzeit begrenzte Fähigkeiten.
  • Wie kann Copilot besser genutzt werden? Code in kleine Funktionen aufteilen, die Funktionsfähigkeit in natürlicher Sprache beschreiben sowie Ein- und Ausgaben, aussagekräftige Variablen- und Funktionsnamen verwenden.
  • Enthält der von Copilot generierte Code Bugs? Natürlich kann dies nicht vermieden werden.
  • Kann der von Copilot generierte Code direkt verwendet werden? Nicht unbedingt, manchmal müssen Änderungen vorgenommen werden.
  • Kann der von Copilot generierte Code für kommerzielle Projekte verwendet werden? Ja.
    • Gehört der von Copilot generierte Code dem geistigen Eigentum von Copilot? Nein.
    • Kopiert Copilot Code aus dem Trainingsset? Copilot kopiert keinen Code, es ist äußerst unwahrscheinlich, dass mehr als 150 Zeilen Code mit dem Trainingsset übereinstimmen. Dies tritt in folgenden Fällen auf:
      • Wenn die Kontextinformationen sehr gering sind
      • Wenn es sich um eine allgemeine Lösung für ein Problem handelt
    • Wie kann man die Wiederholung mit öffentlichem Code vermeiden? Einstellung des Filters
      Bild 22
  • Wie kann man den von Copilot generierten Code richtig verwenden? 1. Selbstständige Tests/Überprüfung des generierten Codes; 2. Vor der Überprüfung nicht automatisch kompilieren oder den generierten Code ausführen.
  • Hat Copilot in jeder natürlichen Sprache die gleiche Leistung? Beste Leistung ist Englisch.
  • Generiert Copilot beleidigende Inhalte? Es gibt bereits Filter, aber es kann nicht ausgeschlossen werden, dass sie auftreten.