Am Puls von Microsoft

Entwicklertagebuch MyLife #8: Wie hilfreich ist GitHub Copilot Edit?

Entwicklertagebuch MyLife #8: Wie hilfreich ist GitHub Copilot Edit?

Das Internet hat ein neues Buzzword: „Vibe-Coding„. Sprich: Man schreibt nicht mehr selbst, sondern lässt die Künstliche Intelligenz für sich arbeiten. Ob das wirklich funktioniert und was sonst noch passiert ist, erfahrt ihr in diesem neuen MyLife.NET Entwicklertagebuch.

Für alle, denen diese Artikelreihe noch unbekannt ist – das habt ihr bislang verpasst, könnt euch aber natürlich nachträglich einlesen:

Was ist Vibe-Coding?

Unter dem Begriff „Vibe Coding“ versteht man neuerdings eine Methode, bei der Entwickler mit KI-Tools wie Copilot Software erstellen, indem sie der KI eine Liste von Anweisungen in natürlicher Sprache geben. Die KI generiert daraufhin den Code. Der Fokus liegt auf Schnelligkeit und Kreativität, ohne selbst Code schreiben zu müssen. Besonders geeignet ist es für schnelle Prototypen und kleine Projekte. Einige der größten Produkte in diesem Zusammenhang sind der Editor “Cursor” oder GitHub Copilot , wobei letzteres mehr Funktionalität als nur das Erstellen von Quelltext mittlerweile mit sich bringt.

Die Begrifflichkeit ist nicht nur positiv belegt. Dieser kann auch als Schmähung verwendet werden, da man nicht keine Kontrolle oder Wissen über die “selbst”-entwickelte Software hat und somit anfällig für Sicherheitslücken sein könnte.

Was ist GitHub Copilot Edits?

GitHub Copilot ist ein KI-gestützter Assistent, der Entwicklern helfen soll, Quelltext schneller und effizienter zu schreiben. Der Copilot bietet kontextbezogene Vorschläge, die von kleinen Änderungen an einer Codezeile bis hin zum Erstellen ganzer Funktionen reichen können.

GitHub Copilot Edits ist eine Erweiterung dieses Tools, die speziell für das Bearbeiten und Überarbeiten von ganzen Projekten entwickelt wurde. Mit Edits können Entwickler Änderungen über mehrere Dateien hinweg vornehmen, indem sie mit menschlicher Sprache eine Liste an Anforderungen formulieren. Grob könnte man dies mit einem traditionellen Anforderungsbrief beziehungsweise Pflichtenheft umschreiben. Das Tool schlägt daraufhin gezielte Codeänderungen auf Dateibasis vor, die direkt im Editor überprüft und angepasst werden können.

Auf Rückfrage kann GitHub Copilot auch erklären, wieso manche Änderungen angedacht sind. Dies hilft mir, etwas tiefer in die Materie einzutauchen – wenn man den Aussagen trauen möchte.

Meine Erfahrungen

Eins vorneweg: Ich stehe dem “Vibe Coding” und dem Entwickeln mit KI noch recht kritisch gegenüber, so betrachtet ist dieses Segment des Tagebuchs als nicht objektiv einzustufen. Des weiteren nutzte ich GitHub Copilot im kostenfreien Paket, welches sich in meinen Augen nur in der Quota, aber nicht in der Qualität gegenüber den bezahlten Paketen unterscheidet.

Ausgangssituation

Als Grundsetup nutze ich die stabile Variante von Visual Studio Code mit den offiziellen .NET-, C#- und MAUI- Erweiterungen von Microsoft. Für die KI sorgen ebenfalls die direkt von GitHub veröffentlichten Extension Copilot und Copilot Chat. All dies läuft einem Mac mini mit M4 SoC. Wie gewohnt ist MyLife.NET eine Solution mit jeweiligen Sub-Projekten für die jeweiligen Features wie “Core” für geteilte Funktionalität und beispielsweise MAUI für die mobile iOS- und Android-App.

Für mich ist es das erste Mal, direkt mit dem Copiloten zu arbeiten, so tastete ich mich während meines Experimentes langsam an das Formulieren von Prompts heran, dies kann ebenfalls die Qualität dieser ganzen Evaluation beeinflusst haben.

Die Verwirrtheit ist verwirrt

Ich bin ehrlich, ich hoffe es ist alles meine Schuld! Wenn das folgend beschriebene Verhalten, das ist, was auch andere Entwickler vor sich haben, dann gute Nacht.

Visual Studio Code war sich oft nicht sicher, wem es eher vertrauen sollte. Der eigenen Code-Completion oder doch den Vorschlägen der AI. Hat sich der Editor oder der Nutzer dann für eins entschieden, ist die Einfärbung des Quelltextes mehr Regenbogen als was ein Einhorn je sehen könnte. Ich bin ein sehr visueller Entwickler und verlasse mich stark auf das Syntax-Highlighting, und etwas, was ich nicht erwarte, verwirrt mich sehr und lenkt mich mehr ab als manch Compiler-Error.

Leichtsinnsfehler Galore

Ebenfalls fiel mir auf, dass manchmal sehr einfach zu vermeidende Fehler gemacht wurden seitens der KI. So wurden in XAML-Dateien, welche, grob gesagt, XML-Dateien sind, als Kommentare im C#-Stil hinzugefügt, oder XAML-Elemente haben plötzlich Parameter, welche sie gar nicht haben – zu mindestens nicht im XAML-Dialekt, was MAUI spricht.

Würden Tests helfen?

Oft hinterließ der Assistent Quelltext, der nicht mehr kompiliert oder ein Verhalten unerwartet änderte. Ist also eine hohe Testabdeckung, die automatisch geprüft wird, hier dann eine gute Hilfe für die KI, um entstandene Fehler zu korrigieren?

Hilfe auch außerhalb vom Code

Was ich wirklich zu schätzen gelernt habe, waren Hilfestellung außerhalb von Quelltextänderungen. Beispielsweise wie man das wirklich nützliche Feature von „Hot Reload“ in Visual Studio aktiviert oder einen Android (leider) Emulator via der Kommandozeile starten kann. Diese waren für mich die kleinen Helden, was mich wirklich dazu verleitet hat, weniger händisch im Web zu suchen, sondern einfach die KI zu Fragen.

Gute Prompts sind echt schwer

All diesen Problemen könnten eventuell mit besseren Anfragen an Copilot Einhalt geboten werden. Ich habe eventuell auch zu viel “Kontextwissen” erwartet, wie das es ein MAUI-Projekt ist. Das längliche Schreiben fällt mir noch schwer, eventuell kann mir hier die Extension “Voice” helfen, mit der ich das ganze diktieren könnte.

Vertrauen nicht verlieren

Ich bin ein Ü30-Entwickler aus Bayern, ich bin manchmal zu schwer davon zu überzeugen, etwas Neuem Vertrauen zu geben, vor allem wenn es sich manchmal als zu labil herausstellt. Dennoch, der GitHub Copilot hat mir oft genug gezeigt, dass ich meinen Blick aufweiten muss. Ein Großteil der Ausgaben und Hilfen war nachweislich hilfreich und zu einem Fehler gehören immer zwei – die KI und der Mensch was sie befragt.

Ich werde – sobald ich wieder Credits habe – den Copiloten weiter benutzen und Erfahrungen sammeln. Ob ich dafür jetzt im Moment Geld ausgeben möchte, um mehr Anfragen stellen zu können, muss ich mir dennoch noch einmal durch den Kopf gehen lassen.

Was ist sonst passiert?

Einfach mal die Anleitung lesen

Ich habe meine .NET-Umgebung auf einem neuen Rechner aufbauen müssen und davor wirklich Skrupel gehabt. Jedes Mal ging etwas nicht, Pfade stimmten nicht oder sonstiges, was mir den Schauer über den Rücken laufen lassen, wenn ich allein daran denke. Ich habe dieses Mal etwas getan, was wir alle öfter machen sollten: Die Anleitung Schritt für Schritt gelesen und nicht gedacht “hach das geht auch anders”.

Das Endresultat ist, dass alles viel schneller und ohne einen einzigen Fehler auszuspucken einfach funktionierte.

Neue Features?

Den Copiloten habe ich, wie erwähnt, vor allem dazu genutzt, die aktuelle Quelltextbasis zu verbessern und fehlende Kommentare und Co hinzuzufügen. Das einzige neue Feature während meiner Evaluation war der Start der “Open Source”-Ansicht im .NET MAUI Sub-Projekt, welche langsam Gestalt annimmt.

Gruppierte Liste vs. Vertikales Layout

Für die Entwicklung der OpenSource-Ansicht wollte ich wie im Blazor-Projekt eine gruppierte Liste anwenden. Dies scheint mit der aktuellen Datenstruktur nicht so möglich zu sein, wie ich gehofft habe. Hierzu darf es eventuell nur ein String, den Sektionsnamen, und eine Liste von Elementen, die Listeneinträge, geben.

In der kommenden Zeit werde ich also dies von einer Liste in zu einem vertikalen Stack-Layout umbauen. Hier wird es spannend, ob es dynamisch geladen wird oder die Ansicht mit vielen Bildern und Texten auf einen Anhieb gebaut wird, was zu einer langsamen Oberfläche führen könnte – wir werden sehen!

Xcode 16 / iOS 18 ready

Was für Cross-Plattform-Projekte nicht immer üblich ist – egal ob .NET MAUI, React Native oder Flutter –, wenn ein neues Xcode erscheint, kann alles in die Brüche gehen, vor allem wenn man aus Versehen sein Xcode aktualisiert. Dieses Mal ging hier jedoch alles glatt und somit ist unsere App Xcode 16 und iOS 18.4 fähig – ganz ohne Tränen vergießen zu müssen.

Wie geht es weiter?

Fokus auf MAUI

Erst einmal wieder mehr Zeit finden, je mehr mein Leben fortschreitet, merke ich, dass diese Wochenend-Coding-Sessions rar werden. Nichtsdestotrotz liegt mein Fokus auf der .NET-MAUI-App, um diese mit der Blazor-Anwendung funktionsgleich zu bekommen.

Für alle Fragen bezüglich App-Veröffentlichung: Nein, wird es in 2025 wohl nicht geben. Hierauf liegt kein Fokus und sehe auch keinen Mehrwert im Moment.

Web wird nicht vergessen

Anschließend muss ich unbedingt an das Design dieser erwähnten Komponente. Mein CSS, das ich seit zwei Dekaden mit mir mitziehe, wirkt, wer hätte es gedacht, nicht mehr zeitgemäß. Dennoch möchte ich hier nichts Generisches verwenden – eventuell kann KI hier helfen?

Ihr habt Lust mitzuwirken?

Falls ihr euch beteiligen wollt, weil ihr mir zeigen wollt, wie etwas richtig oder einfacher geht, oder ihr euch zum ersten Mal an einer noch übersichtlichen .NET-Solution beteiligen wollt, seid ihr herzlich eingeladen, auf GitHub vorbeizusehen, das Repository zu forken, Issues mit Problemen oder Hinweisen zu eröffnen oder einfach zu stöbern. Wir alle sind hier, um zu lernen und, noch wichtiger, um Spaß an der Softwareentwicklung zu haben!

Über den Autor

Tobias Scholze

Tobias Scholze

Bayrischer Open Source- und Community-Enthusiast, Verfechter des neuen Microsoft und Wandler zwischen den Betriebssystemwelten. #communityrocks Von Herzen ein Nerd mit der festen Überzeugung, dass man gemeinsam und durch den Einsatz von moderner IT die Welt für jeden ein Stückchen besser machen kann.

Anzeige