Transformiert Java-Entwicklungsabläufe mit GitHub Copilot

GitHub Copilot ist in aller Munde, und ich bin mir sicher, dass auch ihr schon davon gehört habt. Was ihr hier in der Hand habt, ist ein revolutionäres Tool, das Entwickler dabei unterstützt, Code effizienter und in höherer Qualität zu schreiben. Aus unserer Sicht steht fest: KI-unterstütztes Programmieren ist gekommen, um zu bleiben. Für alle, die GitHub Copilot noch nicht kennen: Dabei handelt es sich um einen KI-basierten Pair Programmer, der mithilfe von Machine Learning direkt in eurer bevorzugten IDE Codezeilen und -vorschläge liefert.
In diesem Blogbeitrag betrachten wir Copilot aus der Perspektive eines Java-Entwicklers und zeigen, wie die folgenden Prinzipien auch auf andere Programmiersprachen übertragbar sind.
Copilot oder ChatGPT?
In der Welt der künstlichen Intelligenz gibt es eine Reihe von Tools, die euch bei eurer Arbeit helfen können: ChatGPT und GitHub Copilot.
ChatGPT ist ein KI-Sprachmodell, das menschenähnliche Sprache generieren und Aufgaben der natürlichen Sprachverarbeitung wie Übersetzung oder Zusammenfassung übernehmen kann. Es wurde mit einer Vielzahl an Textdaten – darunter Nachrichtenartikel, Bücher und Webseiten – trainiert und liefert entsprechend natürliche Antworten auf unterschiedlichste Anfragen.
Copilot hingegen ist ein KI-gestützter Coding-Assistent, der auf einer großen Menge an Code-Daten basiert. Er passt sich im Laufe der Zeit an euren individuellen Programmierstil und eure Vorlieben an. Copilot analysiert den bereits geschriebenen Code sowie den Kontext der aktuellen Coding-Session und schlägt darauf basierend Code-Snippets oder Auto-Vervollständigungen vor. Zusätzlich kann Copilot passende Dokumentation und Beispiele liefern, um euch beim Schreiben besseren Codes zu unterstützen.
Copilot basiert auf OpenAIs GPT-3-Modell für natürliche Sprachverarbeitung und versteht daher auch natürliche Spracheingaben, aus denen automatisch entsprechender Code generiert wird. Unterstützt werden unter anderem Java, Python, JavaScript, TypeScript, Ruby, Go und Rust.
Es schreibt den Code mit euch
Die Codevervollständigung beschleunigt das Programmieren, indem sie längere Snippets und Methodennamen vorschlägt – zum Beispiel Repository-Klassen basierend auf bestehenden Domänenklassen. Dabei werden eure bestehenden Codekonventionen eingehalten, auch bei längeren Methoden oder komplexeren Strukturen. Besonders hilfreich ist das bei häufig wiederkehrendem Projektcode wie der Repository-Verwaltung. So entstehen grundlegende Strukturen deutlich schneller – und ihr könnt euch ganz auf die eigentliche Aufgabe konzentrieren, anstatt langwierige Implementierungen zu schreiben.
Konzentration auf das Wesentliche
Der größte Produktivitätsgewinn durch Copilot liegt darin, dass ihr euch auf echte Herausforderungen konzentrieren könnt und nicht ständig denselben Code wiederholen müsst. Beim Aufbau von Microservices zum Beispiel sind die ersten hundert Zeilen fast immer identisch. Es fühlt sich an, als könnte das jeder machen, aber durch individuelle Datenmodelle und projektspezifische Details muss der Code jedes Mal neu geschrieben werden. In Projekten mit vielen Microservices kostet das enorm viel Zeit. Copilot generiert diesen Boilerplate-Code automatisch, sodass ihr euch auf analytische Aufgaben und kreative Problemlösung konzentrieren könnt, statt euch mit mühsamer Standardarbeit aufzuhalten, die sich eben nicht einfach per Copy & Paste einfügen lässt.
Bewährte Praktiken einführen
Bei der Entwicklung eines Produkts in größerem Umfang kann es zu Abweichungen zwischen den Kodierungskonventionen kommen, die von Entwickler zu Entwickler variieren (oder zumindest zu kleinen Fehlern in den Konventionen wie Einrückungen, Leerzeichen usw.). Bei Java gibt es weit verbreitete und allgemein akzeptierte Konventionen, wie z. B. die Schreibweise von Klassen, die mit Großbuchstaben beginnen, und von Methoden und Methodennamen mit Kleinbuchstaben, z. B. die Klasse Car
und die Methode getTires()
.
Copilot macht die Einhaltung von Code-Konventionen viel einfacher, was zu einer besseren Code-Qualität für das gesamte Team führt. Es hilft auch dabei, besser testbaren Code zu schreiben, da er anhand von Best-Practice-Modellen vermittelt wird. Darüber hinaus vereinfacht Copilot Code-Reviews, da die Code-Konventionen bereits eingehalten werden und sich die Reviews auf die Funktionalität und nicht auf die Konventionen konzentrieren können.
Die Verwendung von Best Practices ist nicht zwingend erforderlich, aber da sie gelehrt werden, werden Vorschläge mit Best Practices geliefert.
Ihr müsst verstehen, was ihr tut
Habt ihr schon Dutzende Methoden geschrieben und gemerkt, dass noch keine Unit-Tests vorhanden sind? Tests nachträglich für jede Methode zu schreiben, ist mühsam – und selten die Lieblingsaufgabe. Trotzdem ist gerade in regulierten Umgebungen, etwa im Banken- oder Medizinbereich mit Java, klar: Tests sind Pflicht. Aber nicht nur irgendwelche – sie müssen sinnvoll und belastbar sein. In solchen Projekten müssen Tests korrekt implementiert und regelmäßig ausgeführt werden.
Mit Copilot könnt ihr das Grundgerüst eurer Testfälle schnell und automatisch erstellen lassen – gerade bei vielen Methoden ein echter Zeitgewinn. Trotzdem gilt: Ihr müsst weiterhin genau wissen, was ihr testet. Copilot erleichtert das Testen, nimmt euch aber das Denken nicht ab. Damit Tests wirklich hilfreich sind, müsst ihr sie durchdacht und zielgerichtet schreiben. In manchen Fällen, etwa bei automatisch erzeugten Tests, sind uns sogar Division-durch-Null-Fehler begegnet.
TL;DR: GitHub Copilot ist ein großartiger Assistent
GitHub Copilot markiert den Beginn einer neuen Ära für Entwickler! Im Gegensatz zu früheren IDEs, die sich auf die automatische Vervollständigung von Methodennamen auf der Grundlage der Dokumentation verlassen, ist dieses KI-gestützte Tool ein bedeutender Schritt nach vorn. Es und andere ähnliche Tools revolutionieren die Arbeitsweise von Programmierern. Wenn ihr euch also fragen, ob ihr es ausprobieren solltet, lautet die Antwort: Ja.
Veröffentlicht:
Aktualisiert: