Go ist eine fantastische Programmiersprache. Es verfügt auch über eine umfassende Werkzeugkette. Viele Entwickler verwenden einfach Nur-Text-Editoren mit oder ohne Plugins, um Go-Code zu schreiben, aber viele andere bevorzugen die Verwendung geeigneter IDEs (integrierte Entwicklungsumgebungen)..
In diesem Tutorial erfahren Sie mehr über den aktuellen Status von Go-IDEs und sind bereit, Ihre Waffe auszuwählen.
Ich war immer ein großer Fan von IDEs. Zu Beginn meiner Karriere habe ich Microsoft Visual Studio für die C / C ++ - Entwicklung sowie C # verwendet. Ich habe NetBeans für eine kurze Java-Entwicklung verwendet. Ich habe die PyCharm-Technologie von JetBrains für die Python-Entwicklung verwendet, und heutzutage verwende ich die Gogland for Go-Entwicklung von JetBrains.
Normalerweise arbeite ich mit großen Softwaresystemen, die aus mehreren Projekten mit Tausenden von Dateien bestehen. Ich brauche viel Hilfe bei großen Codebases. Hier die Hauptgründe, warum ich IDEs so mag:
Mit einer guten IDE können Sie Ihren Code hierarchisch organisieren, ihn problemlos anzeigen und darin navigieren sowie Ihren Code schnell durchsuchen. Die IDE führt viel mehr als nur eine Textsuche durch und ermöglicht das Filtern nach sprachspezifischen Konstrukten (z. B. nur Klassen oder Interfaces mit einem bestimmten Namen anzeigen)..
Integriertes Testen ist ebenfalls von entscheidender Bedeutung. Ich verbringe die meiste Zeit in der Entwicklung mit Tests - entweder, um sie zu schreiben, zu versuchen, sie zum Bestehen zu bringen, oder zu untersuchen, warum Tests plötzlich fehlgeschlagen sind. Mit einer guten IDE mit integrierten Tests können Sie Tests selektiv ausführen (alle, nur ein Projekt, nur fehlgeschlagene Tests des vorherigen Laufs), werden Fehler hervorgehoben und Sie können schnell zur richtigen Stelle im Code springen, um alle zu beheben Problem.
Dies ist wahrscheinlich das wichtigste Merkmal für mich. Ich liebe integrierte Debugger. Ich möchte in der Lage sein, einen Haltepunkt (einschließlich bedingter Haltepunkte) hinzuzufügen, den Stack-Trace anzuzeigen und die Variablen in jedem Frame anzuzeigen.
Für Bonuspunkte (danke PyCharm) möchte ich gerne eine interaktive Konsolensitzung haben, wenn ein Haltepunkt erreicht wird. Die Alternativen zum Printf-Debugging (das den Code ändern und neu erstellen muss) oder das Anzeigen von Protokolldateien (oft nicht genügend Granularität oder viel Rauschen) sind viel frustrierender und weniger produktiv. Selbst eigenständige Debugger wie gdb kommen der Produktivität eines guten integrierten Debuggers nicht nahe.
Gogland ist meine derzeitige Golang-IDE. Es ist ein sehr junges Produkt, das sich noch in der Vorschau für den frühen Zugriff befindet, aber ich halte es immer noch für die vollständigste und integrierte Go IDE. Es basiert auf dem starken Fundament von JetBrains und ist daher äußerst robust und voll funktionsfähig.
Der Code-Editor von Gogland ist hervorragend. Hier sind einige seiner Fähigkeiten:
Der Gogland-Debugger ist ausgezeichnet. Es basiert auf Delve, das auch von anderen IDEs verwendet wird, die wir ebenfalls behandeln. Es verwendet die bekannten JetBrains-Debug-Konfigurationen, um alles über einen Debug-Lauf wie die ausgeführte Binärdatei, die Umgebungsvariablen, das Arbeitsverzeichnis und die Befehlszeilenargumente zu steuern.
Sie können Haltepunkte, bedingte Haltepunkte und Überwachungen festlegen. Wenn ein Haltepunkt erreicht wird, können Sie die Stack-Ablaufverfolgung und die lokalen Variablen in jedem Frame beobachten. Leider werden globale Variablen nicht angezeigt und sind häufig in Go erforderlich.
Ich hatte ein Problem mit dem Debugger, bei dem Haltepunkte vorzeitig getroffen werden! Betrachten Sie das folgende Go-Snippet:
x: = 1 y: = 3 z: = x + y fmt.Println (z)
Wenn ich in der letzten Zeile einen Haltepunkt setze, traf dieser manchmal, aber der Wert von z wäre 0 anstatt 4. Wie kann das sein? Es stellt sich heraus, dass der Debugger irgendwie verwirrt wurde. Wenn ich weiter durch den Code gehe, springt er zurück zu z: = x + y
, Weisen Sie 4 zu z zu, gehen Sie dann wieder zur letzten Zeile und drucken Sie 4 ordnungsgemäß auf dem Bildschirm.
Ich habe ein paar Stunden damit verbracht, einen komplizierten Code zu debuggen, ohne zu merken, dass ich nicht immer das richtige Bild bekam. Schließlich fand ich heraus, was los war, und ignorierte einfach das vorzeitige Auslösen von Haltepunkten.
Ich bin mir nicht sicher, ob es ein Delve- oder Gogland-Problem ist, aber ich bin mir sicher, dass sie es bald beheben werden. Denken Sie daran, dass dies nur eine Vorschau für den frühen Zugriff ist.
Mit dem Testrunner können Sie Tests ausführen, stoppen und erneut starten. Ich konnte es erfolgreich zum Ausführen und Debuggen von Komponententests sowie für Integrationstests mit Gos Testpaket und einem BDD-Testframework wie ginkgo verwenden.
Go wird mit verschiedenen Tools geliefert, die von Gogland direkt in die IDE integriert werden. Sie können jedes Tool über das Menü "Code | Go Tools" aufrufen. Die integrierte Code-Formatierung von Gogland verwendet das Standardwerkzeug "go fmt".
Gogland übernimmt das ausgereifte Quellcodeverwaltungssystem anderer JetBrains-Produkte. Ich habe in erster Linie die Git-Unterstützung verwendet, die die Verwaltung mehrerer Projekte, eine hervorragende Anzeige von Verzweigungen, mehrere Änderungssätze und mehr ermöglicht. Andere Quellensteuerungssysteme wie Mercurial und SVN werden ebenfalls über zusätzliche Plugins unterstützt.
Gogland bietet ein integriertes Terminal für den Fall, dass Sie einige Befehle ausführen müssen. Es ist schön, in der IDE zu bleiben und von / zu Editierfenstern sehen oder kopieren zu können, ohne das Fenster vollständig zu wechseln.
Gogland verfügt über eine Vielzahl integrierter Funktionen, ist jedoch vollständig erweiterbar und viele seiner integrierten Funktionen sind vorinstallierte Plug-ins. Sie können viele nützliche Plugins installieren und auf Wunsch auch eigene Plugins entwickeln.
Visual Studio Code ist ein erweiterbarer Open-Source-Code-Editor, der hauptsächlich von Microsoft entwickelt wurde (mit vielen Beiträgen der Community). Es basiert auf Electron, das wiederum auf Chrom basiert. Visual Studio Code unterstützt viele Sprachen und konzentrierte sich ursprünglich auf die Webentwicklung. Die Go-Entwicklung wird stark unterstützt, einschließlich der Integration aller Go-Tools und des Delve-Debuggers über eine dedizierte Erweiterung. Sie müssen einige Go-Pakete und Tools installieren, um zu beginnen.
Visual Studio Code bietet außerdem eine integrierte Integration von git, einen hierarchischen Ordner- / Datei-Explorer und eine Oberfläche mit Registerkarten.
Die IntelliSense-Unterstützung (automatische Vervollständigung, Darstellung der Parametertypen und Dokumentation) ist großartig und sorgt für ein sehr angenehmes Bearbeitungserlebnis. Der integrierte Debugger (der auch Delve unter der Haube verwendet) ist sehr gut gemacht und passt zu Goglands Debugger.
Visual Studio Code ist sehr ansprechend und schnell. Hier ist die Liste der wesentlichen Funktionen:
LiteIDE ist sehr ungewöhnlich. Es war die erste seriöse Go-IDE, die 2011/2012 gegründet wurde und noch immer gut läuft. Es handelt sich um eine C ++ Qt-Anwendung, und sie hat ein benutzerdefiniertes Erscheinungsbild. Ähnlich wie bei Gogland und Visual Studio Code verwendet es die Go-Tools und den Delve-Debugger, um Sprachdienste bereitzustellen (obwohl es bereits mit dem gdb-Debugger begann, bevor Delve bereit war).
Insgesamt handelt es sich um eine voll funktionsfähige IDE, die sich jedoch nicht so poliert anfühlt. Soweit ich das beurteilen kann, handelt es sich um eine Ein-Mann-Anstrengung, die außergewöhnlich ist. Hier ist eine Aufschlüsselung der LiteIDE-Funktionen.
Wide ist interessant, weil es sich um eine dedizierte Golang-IDE handelt. Der Fokus liegt auf der kollaborativen Entwicklung und ist für Teams konzipiert. Der Entwickler ist chinesisch und die Dokumentation ist größtenteils auf Chinesisch, daher ist sie möglicherweise nicht für jeden geeignet. In Bezug auf Funktionen und Integration ist es definitiv nicht mit den anderen IDEs vergleichbar.
Es gibt viele allgemeine IDEs, die viele Programmiersprachen unterstützen und die Go-Sprache zusätzlich unterstützen. Ich bin kein großer Fan solcher Umgebungen. Ich glaube, dass eine integrierte Umgebung über tief integrierte sprachspezifische Haken verfügen muss. Es ist schwierig, es als einfaches Plugin zu implementieren (obwohl Sie vielleicht behaupten, dass dies genau das ist, was VS Code tut).
Einige beliebte Entwicklungsumgebungen, die Go-Unterstützung hinzugefügt haben, sind:
Go ist eine einfache Sprache. Viele Leute fühlen sich sehr produktiv, wenn sie einen Texteditor verwenden, möglicherweise mit zusätzlichen Go-Plugins. Ich denke nicht an diese wirklich integrierten Entwicklungsumgebungen. Es ist jedoch sinnvoll, wenn Sie viele Jahre Erfahrung mit Ihrem Texteditor haben, ihn bereits an Ihre Bedürfnisse angepasst haben und ihn für viele andere Aufgaben verwenden. Hier sind einige der beliebtesten Texteditoren und deren Go-Plugins:
Mit folgenden Plugins:
Mit dem GoSublime-Plugin
Mit einer Fülle von Go-Plugins.
Go hat einen langen Weg zurückgelegt und verfügt über ein robustes Ökosystem, das viele Optionen für die Entwicklungsumgebung umfasst. Der Delve-Debugger bietet ein fantastisches interaktives Debugging-Erlebnis und wird von den meisten Top-IDEs verwendet. Spielen Sie mit diesen IDEs herum und finden Sie diejenige, die am besten zu Ihnen passt.
Die richtige IDE kann die Arbeit mit Go noch mehr Spaß machen.