Optimale Nutzung von GitHub Copilot

Dec 01 2022
KI-Codierassistenten sind derzeit im Trend. Wie holen Sie das Beste aus ihnen heraus?
Als GitHub Copilot veröffentlicht wurde, habe ich es sofort ausprobiert. Die Behauptungen schienen zu gut, um wahr zu sein.

Als GitHub Copilot veröffentlicht wurde, habe ich es sofort ausprobiert. Die Behauptungen schienen zu gut, um wahr zu sein.

Was ich fand, war das Gegenteil – es war besser als angekündigt. Ich war so hin und weg davon, dass ich… nicht einmal darüber getwittert habe. Ich dachte, es wäre ein zu großer Vorteil, um ihn kostenlos zu verschenken!

Ich fand Copilot so wirkungsvoll, dass ich bei unserem Team-Retreat 2021 einen ganzen Abschnitt meiner CTO-Präsentation Copilot gewidmet habe. Die Verwendung von Copilot wurde bei Infinite Red fast so „erforderlich“ wie jedes andere Tool. Es war so ein großer Game-Changer.

Was Copilot für meinen Codierungs-Workflow tut

Unter normalen Umständen bin ich ein ziemlich schneller Programmierer; Copilot verdoppelt meine Geschwindigkeit.

Ich habe leichtes ADHS und einer meiner größten Kämpfe ist es, konzentriert zu bleiben. Sobald ich den „Flow-Zustand“ erreiche, bin ich nicht mehr aufzuhalten. Ich glaube nicht, dass ich damit allein zu kämpfen habe, aber selbst wenn Sie das nicht tun, haben Sie vielleicht immer noch Momente, in denen Sie irgendwie „den Faden verlieren“ und eine Aufforderung brauchen.

Ich habe festgestellt, dass mein idealer Codierungsfluss immer eine Paarung beinhaltet. Ein gutes Paar hält mich fokussiert, antizipiert, was als Nächstes benötigt wird, macht Vorschläge und ist geduldig mit mir. Copilot füllt diese Rolle jetzt automatisch aus. Ich werde einen Code schreiben, einen bestimmten Punkt erreichen, an dem mein Gehirn versucht, zu einem anderen Thema überzugehen, aber diese kleine Pause reicht aus, damit Copilot mit einem Vorschlag auftaucht und so meinen Fokus wieder auslöst.

Einschränkungen des Copiloten

Ein häufiger Fehler besteht darin, schlechte Ergebnisse von Copilot zu erhalten und dem Tool die Schuld zu geben. Copilot schreibt Ihren Code in den meisten Fällen nicht genau so, wie Sie ihn benötigen. Es tut sein Bestes, basierend auf Kontext, Hinweisen und der Menge an Trainingsdaten, auf die es Zugriff hat. Und wie bei jedem Tool müssen Sie lernen, wie man es benutzt, um das Beste daraus zu machen.

Lassen Sie uns darüber sprechen, wie Sie Copilot optimal nutzen können.

Leitende Kommentare für den Kontext schreiben

Der Kontext ist wichtig, sowohl für einen Paarprogrammierer als auch für einen KI-Codierungsassistenten. Beginnen Sie damit, einen klaren Kommentar zu schreiben, der in einfachem Englisch eine gute Vorstellung davon vermittelt, wozu eine Funktion dient, welche Argumente sie annehmen und was sie zurückgeben soll. Wenn Ihr Kommentar vage ist, erwarten Sie vage Ergebnisse:

Ein besserer Kommentar gibt Copilot bessere Informationen:

Zögern Sie nicht, zurückzugehen und Ihren Kommentar zu optimieren, bis Sie die gewünschten Ergebnisse erhalten. Sie können den Code natürlich manuell bearbeiten, aber wenn Sie gut darin sind, beschreibende Kommentare zu schreiben, wird es auch mit zukünftigem Code besser funktionieren.

In diesem Fall wurden durch Hinzufügen von „typisierte Funktion“ Typen zu den Funktionsargumenten hinzugefügt.

Diese Kommentare sind nicht unbedingt für die menschlichen Leser des Codes bestimmt, obwohl sie so wie sie sind lesbar sind. Ich gehe immer zurück und verfeinere sie für menschliche Leser, nachdem ich fertig bin.

Lernen Sie die Tastenkombinationen

Wenn Sie VS Code verwenden, finden Sie hier eine Liste mit Verknüpfungen .

  • Akzeptieren Sie einen Inline-Vorschlag:Tab
  • Verwerfen Sie einen Inline-Vorschlag:Esc
  • Nächsten Inline-Vorschlag anzeigen:Option (⌥)+]
  • Vorherigen Inline-Vorschlag anzeigen:Option (⌥)+[
  • Inline-Vorschlag auslösen:Option (⌥)+\
  • Öffnen Sie GitHub Copilot:Ctrl+Return

Diejenigen, die ich außer Tab/ am häufigsten verwende Esc, sind Option+[und ]. Auf diese Weise kann ich Vorschläge durchgehen, bis ich den nützlichsten habe.

Geben Sie Copilot eine Struktur, mit der Sie arbeiten können

Manchmal integriert Copilot Dinge, die Sie wirklich in eine Hilfsfunktion extrahieren möchten. Entfernen Sie die generierte Funktion vollständig, erstellen Sie zuerst die Hilfsfunktion, und Copilot wird sie normalerweise aufgreifen und in Zukunft verwenden.

Dies gilt auch für andere Dinge, wie z. B. fest codierte Konstantenwerte. Fügen Sie gut benannte Variablen direkt über dem generierten Code hinzu und Copilot integriert sie.

Copilot kann mit CLI-Befehlen helfen

Wenn Sie wie ich sind und sich nicht an viele Git-Befehle erinnern können, kann Copilot auch dabei helfen.

Schreiben Sie in eine leere Registerkarte etwa Folgendes:

Es ist nicht perfekt, aber es gibt Ihnen genug Hinweise, die Sie nahe bringen sollten!

Copilot eignet sich hervorragend für sich wiederholende Aufgaben wie das Schreiben von Tests

Einer meiner größten überwältigenden Momente im Stream war, als Copilot genaue Tests für ein ziemlich komplexes Feature schrieb, das ich entwickelte. Schau mal (Zeitstempel 2:23:00):

Copilot kann auch Kommentare für Sie schreiben!

Während das Schreiben von Kommentaren Copilot mit Code helfen kann, kann das Schreiben von Code Copilot auch mit Kommentaren helfen!

Wenn Sie über vorhandenen Code verfügen und diesen dokumentieren müssen, hat Copilot oft eine Vorstellung davon, worum es sich handelt.

Copilot kann Ihnen Code erklären (über Copilot Labs)

Wenn Sie die Copilot Labs-Erweiterung installieren, können Sie sie im Seitenbereich öffnen, einen Textblock markieren, und Copilot wird sein Bestes tun, um es Ihnen in einfachem Englisch zu erklären.

Ich fand das nicht ganz so nützlich, da ich Code fließend lesen kann, aber es könnte nützlich sein, wenn ein Code besonders kryptisch ist.

Copilot kann Ihnen helfen, eine neue Programmiersprache zu lernen

Als ich „ react-native-colo-loco “ baute, musste ich ein Gradle-Skript schreiben, das in Groovy geschrieben ist. Ich kenne ein wenig Groovy, aber nicht viel. Also konzentrierte ich mich darauf, präzise und genaue Kommentare zu schreiben, und ließ Copilot Codezeilen vorschlagen. Ich konnte mich dann auf meine Entwicklungserfahrung stützen, um Muster und Syntax aufzugreifen und von dort aus weiterzumachen.

Sie können die Ergebnisse hier sehen (ich habe fast alle Copilot-führenden Kommentare hinterlassen, um zu zeigen, was sie waren).

Wenn der Code von Copilot weit weg ist, bauen Sie einfach weiter

Copilot liebt Kontext. Je mehr Sie erstellen, desto mehr Kontext hat es und desto nützlicher wird es. Als ich mich entschied, einen Teil von MobX-State-Tree neu zu erstellen , war Copilot unglaublich hilfreich, da es den Rest der Codebasis untersuchen konnte. (Der Refactor wurde nie ausgeliefert, aber es war eine großartige Lernübung.)

Es ist noch früh, aber ich bin ziemlich optimistisch in Bezug auf GitHub Copilot. Wenn Sie weitere Tipps haben, lassen Sie es mich auf Twitter wissen !

Danksagungen:

  • Danke an Rizèl Scarlett für ihren Vortrag über Copilot hier (ebenfalls sehenswert!):https://www.youtube.com/watch?v=CuQSoHbOpTQ
  • Danke an Marie Prokopets für ihren ausgezeichneten Artikel über Copilot (diesen sollten Sie auch lesen!):https://nira.com/github-copilot/
  • Danke an Jenna Fucci für die tolle Grafik oben in diesem Artikel!