Programmierung und Softwareentwicklung

Wie Modern Go Guidelines KI-Programmieragenten dabei helfen, aktuellen Go-Code zu schreiben

GoLand von JetBrains hat ein Open-Source-Projekt gestartet, das Programmieragenten mit an die im Projekt verwendete Go-Version gebundenen Richtlinien versorgt, um ihre Abhängigkeit von veralteten Mustern oder inkompatiblen Funktionen zu verringern. Das Projekt nutzt die beiden Werkzeuge list und explain, um schrittweise den passenden Kontext bereitzustellen, ohne Projektdateien zu ändern.

2026-08-24
5 Min. Lesezeit
190 Aufrufe
certi.news Editorial Team
Wie Modern Go Guidelines KI-Programmieragenten dabei helfen, aktuellen Go-Code zu schreiben

KI-Programmieragenten können ausführbaren Go-Code erzeugen, doch das bedeutet nicht, dass sie die neuesten Sprachsyntaxvarianten oder Ergänzungen der Standardbibliothek verwenden. Ältere Go-Muster sind in den Trainingsdaten deutlich stärker vertreten, während neuere Funktionen möglicherweise in den Daten, auf denen das Modell basiert, nicht vorkommen. Um diese Lücke zu schließen, hat das GoLand-Team von JetBrains ein Open-Source-Projekt namens Modern Go Guidelines erstellt, das Agenten mit praktischen, an die im Projekt angegebenen Go-Version gebundenen Richtlinien versorgt.

Was bietet das Projekt?

Die Richtlinien decken nützliche Sprachfunktionen und Ergänzungen der Standardbibliothek in den Go-Versionen 1.0 bis 1.27 sowie Muster ab, die der go modernize-Analyzer behandelt. Der Agent erhält keine Richtlinien für Versionen, die neuer sind als die im Projekt verwendete Version. Enthält die Datei go.mod die Direktive go 1.25, kann der Agent die Richtlinien für Go 1.25 und ältere Versionen verwenden, erhält jedoch keine Vorschläge, die auf Go 1.26 oder Go 1.27 basieren.

Das bedeutet laut dem im Artikel angeführten Beispiel, dass der Agent sync.WaitGroup.Go vorschlagen kann, das in Go 1.25 eingeführt wurde, jedoch nicht errors.AsType, das Go 1.26 voraussetzt. Diese Verknüpfung der Richtlinien mit der Projektversion soll die Wahrscheinlichkeit verringern, dass Code erzeugt wird, der eine neuere Version als die verfügbare Umgebung benötigt. Gleichzeitig reduziert sie die Menge an unnötigem Kontext, den der Agent verarbeiten muss.

Schrittweise Offenlegung statt des Ladens des gesamten Kontexts

Die Erweiterung umfasst ein Kommandozeilenwerkzeug namens go-modern-guidelines und eine Anweisungsfähigkeit namens use-modern-go. Das Werkzeug unterstützt zwei Hauptbefehle:

  • list: Zeigt kurze, für eine Go-Datei oder eine bestimmte Version relevante Richtlinien an.
  • explain: Liefert eine ausführlichere Erklärung und ein Beispiel, das das alte Muster mit der modernen Alternative vergleicht.

Die Anweisungen schlagen vor, dass der Agent vor der Änderung der betreffenden Datei den Befehl list ausführt und explain verwendet, wenn er eine bestimmte Regel verstehen muss. Die Richtlinien können für eine Datei wie ./internal/worker/worker.go angefordert werden, oder die Version kann direkt mit --go-version 1.27 angegeben werden. Die Ausgabe von list beginnt mit den neuesten anwendbaren Richtlinien und enthält eine stabile Kennung für jede Regel, etwa sync_waitgroup_go, testing_t_context und json_omitzero.

Beispiele für moderne Muster

Die Richtlinien enthalten praktische Beispiele dafür, wie gängige Muster durch modernere ersetzt werden können, etwa die Verwendung von slices.Contains anstelle einer manuell geschriebenen Suchschleife, von min und max anstelle manueller Vergleiche sowie von cmp.Or anstelle einer Kette, die den ersten Wert ungleich null auswählt.

Außerdem erläutern sie die Verwendung von sync.WaitGroup.Go anstelle der getrennten Aufteilung von Add, go und Done, die Verwendung von errors.AsType für eine typsichere Fehlerübereinstimmung in Go 1.26 und höher sowie von new(value), wenn in Go 1.26 und höher ein Zeiger auf einen Wert benötigt wird. In Go 1.27 präsentieren die Richtlinien strings.CutLast und bytes.CutLast als Alternative zu LastIndex und manuellem Slicing.

Das Beispiel zu generic_methods, das seit Go 1.27 verfügbar ist, zeigt, wie eine generische Operation von einer Hilfsfunktion auf Paketebene in eine Methode des Typs verschoben werden kann, wenn die Operation natürlich mit diesem Typ verbunden ist. Der Befehl explain gibt die Erklärung der Regel mit einem Vorher-Nachher-Beispiel zurück und kann mehrere Regeln in einem einzigen Aufruf erläutern.

Was ändert sich praktisch für Entwickler?

Der wesentliche Wert liegt hier nicht in der automatischen Aktualisierung alten Codes, sondern darin, dem Agenten während der Erzeugung oder Änderung von Code eine kleine, gezielte Referenz bereitzustellen. Das Projekt ergänzt Werkzeuge wie go fix, statt sie zu ersetzen: Die Modern Go Guidelines helfen dem Agenten, mit einem modernen Muster zu beginnen, während go fix dabei hilft, bereits in der Codebasis vorhandene Muster zu aktualisieren.

Die Erweiterung kann über den Marketplace für Erweiterungen oder aus einem lokalen Repository installiert werden. Für die Integration muss die Go-Toolchain in PATH vorhanden sein. Bei der ersten Verwendung installiert die Integration das Kommandozeilenwerkzeug über go install und speichert es in einem lokalen Cache, ohne das Projekt selbst zu ändern. Der Artikel zeigt Befehle, um das Repository als Claude-Marktplatz hinzuzufügen, modern-go-guidelines zu installieren und /use-modern-go zu aktivieren. Außerdem wird ein Verfahren zum Testen eines lokalen Repositorys vor dessen Veröffentlichung oder Aktualisierung erwähnt, mit Beispielen, die Claude und Codex einbeziehen.

Lesart von certi.news

Das Projekt behandelt ein praktisches Problem beim Einsatz von KI-Agenten: Die syntaktische Korrektheit des Codes garantiert weder seine Eignung für die Sprachversion noch seine Orientierung an den verfügbaren besten Mustern. Die Bindung der Richtlinien an die Datei go.mod setzt eine klare technische Grenze dafür, was der Agent vorschlagen kann, während die schrittweise Offenlegung verhindert, dass er mit nicht benötigtem Kontext überladen wird. Das Werkzeug macht jedoch weder die Überprüfung durch Entwickler noch Tests überflüssig; es stellt dem Agenten Regeln und Beispiele bereit, und die Quelle belegt nicht, dass es jede von ihm erzeugte Änderung unabhängig überprüft. Außerdem reicht die angekündigte Abdeckung bis Go 1.27, sodass Richtlinien für neuere Versionen weiterhin hinzugefügt und aktualisiert werden müssen.

Nachrichtenquelle
c
Autor

certi.news Editorial Team

Das Wichtigste

Das Open-Source-Projekt Modern Go Guidelines von JetBrains versorgt Programmieragenten mit Go-Richtlinien, die an die in der Datei go.mod festgelegte Version gebunden sind. Dadurch können sie moderne und kompatible Muster vorschlagen. Das Projekt nutzt die beiden Tools list und explain, um den Kontext schrittweise bereitzustellen, ersetzt jedoch weder die Prüfung durch Entwickler noch Tests.

  • Das Projekt deckt Richtlinien für Sprachfunktionen und die Standardbibliothek in Go-Versionen von 1.0 bis 1.27 ab.
  • Wenn das Projekt Go 1.25 verwendet, schlägt der Agent keine Funktionen vor, die Go 1.26 oder 1.27 erfordern.
  • Das Tool list zeigt kurze, relevante Richtlinien an, während explain Erläuterungen sowie Vorher-Nachher-Beispiele liefert.
  • Das Projekt enthält Beispiele wie sync.WaitGroup.Go, errors.AsType, strings.CutLast und bytes.CutLast.
  • Modern Go Guidelines unterstützt den Agenten während der Codegenerierung, während go fix für die Aktualisierung bereits vorhandener Muster vorgesehen ist.
  • Die Integration ändert bei der Installation keine Projektdateien und macht die Prüfung durch Entwickler sowie Tests nicht überflüssig.

FAQ

Was ist Modern Go Guidelines?

Ein Open-Source-Projekt des GoLand-Teams von JetBrains, das Programmieragenten mit modernen Go-Richtlinien versorgt, die an die im Projekt verwendete Go-Version gebunden sind.

Wie bestimmt das Projekt, welche Richtlinien der Agent verwenden kann?

Es liest die in der Datei go.mod angegebene Go-Version und stellt anschließend Richtlinien für diese Version und ältere Versionen bereit, ohne Funktionen vorzuschlagen, die eine neuere Version erfordern.

Was ist der Unterschied zwischen list und explain?

list zeigt kurze, für eine bestimmte Datei oder Version relevante Richtlinien an, während explain eine ausführlichere Erläuterung und ein Beispiel liefert, das das alte Muster mit der modernen Alternative vergleicht.

Ersetzt das Projekt go fix?

Nein. Modern Go Guidelines hilft dem Agenten, mit modernen Mustern zu beginnen, während go fix vorhandene Muster in der Codebasis aktualisiert.

Aus derselben Kategorie

Das könnte Sie interessieren

Alle Nachrichten anzeigen