Golang Guide: Eine Liste der besten Golang-Frameworks, IDEs und Tools

Seit ihrer Einführung erfreut sich die Google-Programmiersprache Go (Golang) zunehmender Beliebtheit bei den Mainstream-Nutzern. In einer Umfrage vom Dezember 2016 gaben 89 % der 3.595 Befragten an, dass sie bei der Arbeit oder außerhalb der Arbeit in Go programmieren.

Außerdem rangiert Go unter den Programmiersprachen an erster Stelle in Bezug auf Fachwissen und Präferenz. Im Juli 2017 rangiert Go auf Platz 10 der Tiobe-Programmiersprache des Jahres und ist damit von Platz 55 im letzten Jahr aufgestiegen.

Es ist klar, dass Go viele Programmierer aus verschiedenen Disziplinen und Softwareentwicklungs-Outsourcing-Profis anzieht. Und man kann mit Sicherheit sagen, dass dies auf die Einfachheit der Verwendung von Go zurückzuführen ist.

Als kompilierte Open-Source-Programmiersprache macht es Go den Entwicklern leicht, einfache, zuverlässige und effiziente Software zu erstellen. Sie ist das Ergebnis der Innovation und Weiterentwicklung konservativerer Sprachen wie C und C++.

Mit Go wird die Menge der Code-Typisierung reduziert und das Schreiben robuster APIs ohne Leistungseinbußen wird einfacher. Go wurde für Skalierbarkeit und Nebenläufigkeit entwickelt und ermöglicht Optimierungen. Ein Compiler kann die gesamte Codeüberprüfung vor der Laufzeit durchführen.

Wir haben eine Liste der besten Frameworks, IDEs und Tools für Golang zusammengestellt, damit Sie schnell zugreifen können. Setzen Sie ein Lesezeichen in Ihrem Browser, damit Sie immer wieder darauf zurückkommen können, wenn Sie mit Go arbeiten!

Frameworks für Golang

Web-Frameworks helfen Entwicklern, Anwendungen so einfach und schnell wie möglich zu erstellen. Go ist noch relativ neu, daher ist es wichtig, Frameworks mit ausreichender Dokumentation zu verwenden.

Hier sind 9 Frameworks, die Sie verwenden können, um Projekte mit der Go-Sprache zu erstellen.

Revel

Als hochproduktives Framework für Go enthält Revel ein Hot Code Reload Tool, mit dem Sie Ihr Projekt bei jeder Dateiänderung neu erstellen können. Außerdem enthält es eine Vielzahl umfassender und leistungsstarker Funktionen, so dass Sie keine externen Bibliotheken finden müssen, um sie in das Framework zu integrieren.

Beego

Beego ist ein vollwertiges MVC-Framework mit einer eigenen Logging-Bibliothek, ORM und Web-Frameworks. Sie müssen keine Bibliotheken von Drittanbietern finden und installieren. Es verfügt über ein eingebautes Tool namens Bee Tool, das auf Codeänderungen achtet und Aufgaben ausführt, wenn Änderungen erkannt werden.

Beego wird Ihnen viele Stunden ersparen, vor allem zu Beginn eines Projekts, wenn Sie das Logging-Framework oder die Anwendungsstruktur herausfinden.

Martini

Inspiriert von Sinatra, ist Martini ein extrem leichtes, aber leistungsstarkes Framework. Es wurde entwickelt, um modulare Webanwendungen und Dienste in Golang zu schreiben.

Es zeichnet sich durch ein nicht-intrusives Design aus, das schnell und einfach zu benutzen ist und eine breite Palette von Handlern und Middleware enthält. Es ist in der Lage, grundlegendes Routing, Exception-Handling und Default Document Serving für AngularJS-Apps im HTML5-Modus durchzuführen.

Das beste Feature von Martini ist die Verwendung von Reflection, mit der Entwickler dynamisch Daten in die Handler-Funktionen einfügen und neue Dienste hinzufügen können. Martini ist auch vollständig kompatibel mit der http.HandlerFunc-Schnittstelle. Der Nachteil ist jedoch, dass das Martini-Framework nicht mehr gepflegt wird.

Gin Gonic

Gin Gonic ist ein Web-Framework mit einer Martini-ähnlichen API, aber mit viel besserer Leistung. Wenn Sie Martini schon einmal benutzt haben, dann werden Sie mit Gin Gonic vertraut sein. Ansonsten werden Sie nur 10 Minuten brauchen, um Gin zu lernen. Es ist so einfach!

Gin Gonic ist ein minimalistisches Framework, das nur die wichtigsten Bibliotheken und Funktionen enthält. Das macht es perfekt für die Entwicklung leistungsstarker REST-APIs. Außerdem ist es 40-mal schneller als Martini.

Sie können Middleware, verschachtelte Gruppen, JSON-Validierung und Rendering hinzufügen, aber es behält trotzdem seine optimale Leistung bei. Gin Gonic verwendet httprouter, den schnellsten HTTP-Router für Go.

Buffalo

Die Erstellung neuer Webanwendungen mit Go ist mit Buffalo schnell und einfach. Wenn Sie ein neues Projekt beginnen, hat Buffalo bereits alles für Sie vorbereitet – von der Front-End- bis zur Back-End-Entwicklung.

Buffalo verfügt über Hot Reloading, was bedeutet, dass der Dev-Befehl Ihre .go- und .html-Dateien automatisch überwacht. Anschließend wird die Binärdatei für Sie neu erstellt und neu gestartet. Führen Sie einfach den dev-Befehl aus, und Sie werden sehen, wie die Änderungen direkt vor Ihren Augen live gehen!

Buffalo ist mehr als nur ein Framework – es ist ein ganzheitliches Webentwicklungs-Ökosystem, mit dem Sie direkt mit der Erstellung Ihrer Anwendung beginnen können.

Goji

Goji ist ein leichtgewichtiges und schnelles Web-Framework, bei dem Kompatibilität und Einfachheit oberste Priorität haben. Ähnlich wie net/http.ServeMux ist Goji ein minimalistischer Multiplexer für HTTP-Anfragen. Es enthält Einhorn-Unterstützung, die es Ihnen ermöglicht, Websocket-Unterstützung in Goji zu haben.

Zusätzliche Funktionen umfassen URL-Muster, rekonfigurierbaren Middleware-Stack, Graceful Shutdown und mehr. Goji kann in der Produktion eingesetzt werden und hat bereits Milliarden von Anfragen in verschiedenen Organisationen bedient.

Tiger Tonic

Inspiriert von Dropwizard, ist Tiger Tonic ein Go-Framework für die Entwicklung von JSON-Webdiensten und den Aufbau von hochleistungsfähigen REST-APIs. Um den Prinzipien von Golang treu zu bleiben, strebt Tiger Tonic danach, die Funktionen orthogonal zu halten.

Der Nachteil von Tiger Tonic ist seine Unzulänglichkeit, wenn es darum geht, große Backend-Anwendungen zu erstellen.

Gocraft

Ein weiteres leistungsfähiges, aber minimalistisches Framework, Gocraft bietet schnelle und skalierbare Routing-Leistung. Es fügt Routing zum net/http-Paket aus der Standardbibliothek hinzu.

Gocraft ist ein Go-Mux- und Middleware-Paket, das Casting- und Reflection-Funktionen bietet, so dass Sie Ihren Code statisch schreiben können. Sie können auch eine optionale Funktionalität mit der eingebauten Middleware hinzufügen oder Ihre eigene schreiben.

Da die Leistung immer eines der Hauptanliegen für Entwickler ist, ist Gocraft eine gute Wahl für Entwickler. Es ist sehr einfach, Backend-Webanwendungen mit dem Gocraft-Framework zu schreiben.

Mango

Obwohl Mango von seinem Schöpfer, Paul Bellamy, nicht mehr aktiv gepflegt wird, wird es von vielen Go-Benutzern weiterhin verwendet. Das Tolle an Mango ist seine Modularität. Sie können aus einer Vielzahl von Bibliotheken wählen, um sie in Ihr Projekt einzubinden.

Mango ermöglicht es Ihnen, wiederverwendbare Module der HTTP-Funktionalität so schnell und einfach wie möglich zu erstellen. Es kompiliert eine Liste von Middleware und Anwendungen in ein einziges HTTP-Server-Objekt, um Ihren Code in sich geschlossen zu halten.

Integrierte Entwicklungsumgebungen (IDEs) für Golang

IDEs für Golang werden immer beliebter, zusammen mit der Go-Sprache. Während viele Entwickler immer noch lieber Texteditoren verwenden, bevorzugen viele auch IDEs.

Wenn Sie an einem großen Projekt mit einer umfangreichen Codebasis arbeiten, kann eine IDE Ihnen helfen, Ihren Code zu organisieren und einfach zu navigieren. Darüber hinaus können IDEs Ihnen dabei helfen, Ihren Code zu testen und entsprechend zu bearbeiten.

Hier sind die Top-IDEs, die hervorragend mit Golang funktionieren.

Gogland

Das Softwareentwicklungsunternehmen JetBrains hat eine weitere zuverlässige IDE herausgebracht, dieses Mal jedoch für Golang. Gogland ist eine kommerzielle IDE, die eine robuste und ergonomische Umgebung für Go-Entwickler bietet. Sie bietet außerdem eine Codierungshilfe, einen Debugger und ein integriertes Terminal.

Da Gogland von einem etablierten Unternehmen entwickelt wurde, verfügt es über ein umfangreiches IntelliJ-Plugin-Ökosystem, über das Sie zusätzliche Tools erhalten können, wenn Sie mehr benötigen.

Visual Studio Code

Das von Microsoft entwickelte Visual Studio Code ist eine voll ausgestattete Open-Source-IDE und ein Code-Editor, der eine Vielzahl von Programmiersprachen unterstützt. Es bietet intelligente Vervollständigung mit IntelliSense, Debugging mit Haltepunkten, Aufrufstapeln und einer interaktiven Konsole, integrierte Git-Integration und einen hierarchischen Ordner- und Datei-Explorer.

Als eine weitere beliebte IDE verfügt Visual Studio Code über eine unterstützende Gemeinschaft von Go-Entwicklern, die regelmäßig Beiträge leisten. Mit Visual Studio Code können Sie die Funktionalitäten mit einer Reihe von verfügbaren Plugins erweitern.

LiteIDE

LiteIDE ist eine der ersten Golang-zentrierten Open-Source-IDEs, die vor mehr als 5 Jahren entwickelt wurde. Als C++ Qt-Anwendung mit einem einzigartigen Look and Feel bietet LiteIDE Code-Management, konfigurierbare Build-Befehle, gdb- und Delve-Debugger, Autovervollständigung und Theming mit WordApi, MIME-Typ-basiertes System und mehr. Es bietet auch JSON und Golang Unterstützung.

Wide

Wide ist eine webbasierte IDE für Golang Programmierer. Sie ist für die gemeinschaftliche Entwicklung konzipiert und eignet sich am besten für Teams und Webentwicklungsagenturen. Zu den Funktionen von Wide gehören Code-Highlighting, Debugging, Git-Integration und vieles mehr.

Da Wide von einem chinesischen Entwickler erstellt und gewartet wird, sind die meisten Dokumentationen und der Support auf Chinesisch.

Atom mit go-plus Plugin

Wenn Sie bereits Atom verwenden, können Sie Ihre Code-Editier-Erfahrung in Golang mit einem Open-Source-Paket namens go-plus verbessern. Mit go-plus erhalten Sie sofortiges Echtzeit-Feedback zu Ihren Syntax- und Build-Fehlern.

Das go-plus Paket bietet fast die gesamte Golang-Unterstützung in Atom. Es kann auch für Tools, Build Flows, Linters, Vet und Coverage Tools verwendet werden.

Go-plus enthält auch verschiedene Code-Snippets und Funktionen wie Autovervollständigung mit gocode, Code-Formatierung mit gofmt, goreturns oder goimports und mehr.

Eclipse mit GoClipse

Da Eclipse eine weit verbreitete IDE ist, wurden zahlreiche Plugins dafür entwickelt. GoClipse ist ein Eclipse-Plugin für Golang, das die Bearbeitung von Go-Quellcode mit konfigurierbarer Syntaxhervorhebung und automatischer Einrückung und Klammervervollständigung ermöglicht.

GoClipse dient auch als Projekt-Assistent und Builder, der Syntax- und Build-Fehler sofort meldet. Weitere Funktionen von GoClipse sind Debugging-Funktionen und Code-Assist.

Sublime Text mit GoSublime

Sublime Text ist ein weiterer hochentwickelter Texteditor mit einer großen Gemeinschaft von Mitwirkenden und Entwicklern. Daher wurde eine Vielzahl von Plugins für diese IDE entwickelt.

GoSublime ist ein Golang-Plugin für Sublime Text 3, das Code-Vervollständigung von Gocode, Lint/Syntax-Prüfung während der Verdrahtung von Code, automatisches Hinzufügen und Entfernen von Paket-Importen und mehr bietet.

Vim mit vim-go-Plugin

Vim ist eine freie, quelloffene IDE, die mit verschiedenen Plugins angepasst und konfiguriert werden kann. Wenn Sie ein Golang-Programmierer sind, können Sie Vim mit dem von Fatih Arslan erstellten vim-go-Plugin verwenden. Vim-go installiert automatisch alle notwendigen Binärdateien, um eine reibungslose Vim-Integration für Golang zu ermöglichen.

Vim-go ist eine leistungsstarke Plugin-Suite zum Schreiben und Entwickeln von Go. Zu seinen Funktionen gehören erweiterte Quellcode-Analyse, Hinzufügen und Entfernen von Importpfaden, Unterstützung für mehrere 3rd-Liner, Goto-Definition, schnelle Dateiausführungen und vieles mehr.

Vim-go ist in hohem Maße anpassbar, mit individuellen Funktionen, die je nach Bedarf aktiviert oder deaktiviert werden können.

Komodo

Komodo ist eine vollwertige Go-Sprach-IDE, die auch andere Programmiersprachen wie Node.js, Python, Ruby, Perl und mehr unterstützt. Mit dieser Go-IDE können Sie problemlos sauberen Code schreiben. Zu den Funktionen gehören ein fortschrittlicher Code-Editor, intelligente Code-Vervollständigung, Syntaxprüfung, Versionskontrolle und Unit-Tests sowie eine Go-Code-Intelligenz, die Code-Browsing und Code-Hinweise ermöglicht.

Das Tolle an Komodo ist, dass es sich hervorragend für die Zusammenarbeit im Team eignet, da mehrere Entwickler ein Dokument gleichzeitig bearbeiten können. Komodo kann auf Mac, Windows oder Linux mit nur einer Lizenz installiert werden.

IntelliJ IDEA with Go Language (golang.org) Support Plugin

IntelliJ IDEA (dieselbe Firma wie JetBrains) ist eine IDE, die mit Golang durch das Go Sprachunterstützungs-Plugin verwendet werden kann. Wenn Sie IntelliJ IDEA mit Golang verwenden wollen, müssen Sie dieses Plugin installieren, wenn auch mit eingeschränkten Funktionen im Gegensatz zu Gogland.

Tools für Golang

Golang-Tools können für eine Vielzahl von Projekten und Webanwendungen verwendet werden. Entwickler können mit diesen hilfreichen Tools so schnell und einfach wie möglich Code schreiben und Anwendungen erstellen.

Hier ist eine Liste der wichtigsten Golang-Tools als Referenz.

Apicompat

Apicompat ist ein neues Go-Sprachwerkzeug, das Entwicklern hilft, rückwärtsgerichtete, inkompatible Änderungen und exportierte Deklarationen zu erkennen.

Mit Apicompat lassen sich falsch-positive Ergebnisse vermeiden. Allerdings kann nicht jede rückwärtsinkompatible Änderung von Apicompat erkannt werden. Das Vertauschen von Argumenten und andere Änderungen müssen immer noch vom Autor der Bibliothek berücksichtigt werden.

Checkstyle

Inspiriert von Java Checkstyle, gibt Checkstyle für Golang Vorschläge für den Codierungsstil aus. Es ermöglicht Entwicklern auch die Überprüfung von Datei-Zeilen/Funktionen und Zeilen/Parameter-Nummern, die dann vom Benutzer konfiguriert werden können.

Depth

Depth ist ein weiteres nützliches Golang-Tool, das Web-Entwicklern hilft, Go-Quellcode-Abhängigkeitsbäume abzurufen und zu visualisieren. Es kann als eigenständige Kommandozeilenanwendung oder als spezielles Paket innerhalb eines eigenen Projekts verwendet werden. Sie können Anpassungen hinzufügen, indem Sie einfach die entsprechenden Flags auf den Baum setzen, bevor Sie ihn auflösen.

Go-Swagger

Dieses Toolkit umfasst eine Vielzahl von Eigenschaften und Funktionen. Go-Swagger ist eine Implementierung von Swagger 2.0, und kann Swagger-Spezifikationen serialisieren und deserialisieren. Es handelt sich um eine minimalistische, aber leistungsstarke Darstellung Ihrer RESTful-API.

Mit Go-Swagger können Sie Swagger-Spezifikationen dokumentieren, gegen ein JSON-Schema validieren und andere zusätzliche Regeln anwenden. Weitere Funktionen sind Code-Generierung, API-Generierung auf Basis von Swagger-Spezifikationen, Generierung von Spec-Dokumenten auf Basis des Codes, erweiterte String-Formate und mehr.

Go Meta Linter

Wenn Sie Go-Lint-Tools ausführen und deren Ausgabe gleichzeitig normalisieren müssen, kann Go Meta Linter genau das für Sie tun. Go Meta Linter ist dafür gedacht, mit einem Texteditor oder einer IDE-Integration wie dem Sublime Linter Plugin, dem Atom go-plus Paket, dem Emacs Flycheck Checker, Vim/Neovim und Go für Visual Studio Code verwendet zu werden. Es unterstützt auch eine Vielzahl von Linters und Konfigurationsdateien wie JSON.

Go-callvis

Go-callvis ist ein Web-Entwicklungstool, mit dem Sie den Aufrufgraphen Ihres Go-Programms mit dem Dot-Format von Graphviz visualisieren können. Dieses Tool ist besonders nützlich, wenn Sie große Projekte mit komplexen Codebasen erstellen. Es ist auch nützlich, wenn man die Codestruktur eines anderen Entwicklers verstehen oder das Projekt eines anderen nachbauen will.

Mit go-callvis können Entwickler bestimmte Pakete innerhalb eines Programms fokussieren; Funktionen nach Paket und Methoden nach Typ gruppieren; und Pakete auf benutzerdefinierte Pfadpräfixe beschränken und solche ignorieren, die sie enthalten.

Gonative

Gonative ist ein einfaches Golang-Tool, mit dem sich Go-Toolchains mit nativen Libs erstellen lassen, die cross-kompiliert werden können, während die Cgo-fähigen Versionen der stdlib-Pakete weiterhin genutzt werden.

Gonative lädt die Binärdistributionen für jede Plattform herunter und kopiert deren Bibliotheken an die richtigen Stellen. Gleichzeitig setzt Gonative die korrekte Mod-Zeit, um unnötige Rebuilds zu vermeiden.

Leider ist Gonative unter Windows nicht getestet. Außerdem gibt es keine Unterstützung für Linux/Arm.

Grapes

Grapes ist ein leichtgewichtiges Golang-Tool, das entwickelt wurde, um Befehle einfach über ssh zu verteilen. Es wird von Yaron Sumel geschrieben und aktiv gepflegt.

Grapes wird bald eine vollständige Host-Key-Validierung unterstützen, also etwas, auf das Entwickler achten sollten.

Gosimple

Das Tolle an diesem Golang-Linter ist, dass er sich auf die Vereinfachung von Go-Quellcode konzentriert. Gosimple zielt immer auf die neueste Go-Version ab, benötigt also Go Version 1.6 oder neuer.

Wenn es eine neue Go-Version gibt, schlägt gosimple die einfachsten und einfachsten Methoden vor, um komplizierte Konstrukte zu vermeiden.

Go Vendor

Go Vendor ist das Golang-Tool, das mit dem Standard-Vendor-Ordner arbeitet. Es erlaubt Entwicklern, bestehende Abhängigkeiten aus $GOPATH mit govendor add/update zu kopieren. Sie können auch direkt neue Abhängigkeiten ziehen oder bestehende Abhängigkeiten mit govendor fetch aktualisieren und Altsysteme mit govendor migrate verschieben.

Wrapping It Up

Wenn Sie von einem JS/Node-Hintergrund kommen, müssen Sie einige neue Programmierkonzepte wie Coroutines, Channels, Strict Typing mit Compilation, Interfaces, Structs, Pointer und einige andere Unterschiede lernen. Aber sobald Sie sich eingearbeitet haben, werden Sie feststellen, dass Golang einfacher und schneller zu bedienen ist.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.