Golang trifft VSCode

Golang trifft VSCode

Jede Entwicklungsumgebung und Plugins haben ihre Tücken. Das Golang Plugin bringt in VSCode viele vorteilhafte Funktionalitäten mit sich. Das nötigtse ist dabei: Code Navigation, Linting, Autocompletion… Doch Fällt einem Entwickler schnell auf, dass der Entwicklungsprozess noch nicht optimal von statten geht. In diesem Artikel betrachten wir Writing Tests und Renaming und wie es optimiert werden kann.

Probleme und Lösungen

Writing Tests

Testen ist mit Golang nicht schwer. Alle Tests-Dateien müssen mit _test.go enden und alle Test-Funktionen haben *testing.T als Parameter. Doch, wenn man viel testet, müssen auch viele Tests geschrieben werden. Das kann mit gotests vereinfacht werden. Zur Installation muss die Executable in den GOPATH eingefügt werden. Mit Interaktion einer zu testenden Funktion, Packages oder Datei, lassen sich automatisch Tests und Testdateien erstellen, die gleich eine Vorlage für die Eingabe der zu testenden Parameter generiert. So müssen nurnoch Testdaten eingegeben werden und welcher Rückgabewert erwartet wird, um einen kompletten Test erstellt zu haben.

Renaming

Renaming funktioniert wie zu erwarten: Bei Umbennenen einer Funktion oder einer Variable ändern sich auch alle Referenzen. Doch beim Umbenennen gibt es ein Problem. Je mehr Referenzmöglichkeiten im GOPATH vorhanden sind, desto länger dauert das umbennen. Es wird der komplette GOPATH nach Abhängigkeiten durchsucht. Um den Scope zu verringern und die Umbennenungsdauer zu verkürzen gibt es gorename. So wie auch Writing Tests muss die Executable in den GOPATH abgelegt werden oder per go get geholt werden. Damit dauert Renaming nurnoch einige Sekunden.

Zusammenfassung

Das waren zwei Probleme, mit denen ich länger zu kämpfen hatte, bevor ich die Tools dazu gefunden habe. Ich hoffe, Sie helfen Ihnen bei Ihrer Entwicklung. Das waren sicher nicht die einzigen oder letzten Probleme die beim Entwicklungsprozess aufkommen. So sicher war dies nicht der letzte Artikel zu dem Thema.

comments powered by Disqus