7.2.1. Formatierung und Werkzeuge
In Go gehört Formatierung nicht zur Code-Diskussion. Wer gofmt akzeptiert, spart Reviews und Merge-Konflikte. Die Proverbs sagen es knapp: Gofmt’s style is no one’s favorite, yet gofmt is everyone’s favorite.
go fmt ./...
Fast der gesamte Go-Code in der Welt läuft durch gofmt. Eigenes Einrücken, eigene Leerzeilenregeln oder „mein Editor macht das anders“ lohnen den Streit nicht.
goimports ist gofmt plus Import-Hygiene: fehlende Imports ergänzen, ungenutzte entfernen. Typischerweise beim Speichern im Editor.
Stdlib zuerst, dann eine Leerzeile, dann externe und eigene Packages:
import (
"fmt"
"os"
"example.com/myproject/store"
)
go vet ./...
go vet findet Konstruktionen, die der Compiler oft durchlässt (z. B. falsche Printf-Formate). Es ist kein Korrektheitsbeweis, aber die offizielle Analyse-Baseline neben gofmt.
go fix modernisiert Code auf aktuelle Stdlib- und Sprachidiome (dieselbe Analyse-Familie wie go vet). Nützlich nach Toolchain-Upgrades; ersetzt keine manuelle Review der Semantik.
Offiziell reicht gofmt + go vet. golint ist deprecated. golangci-lint und ähnliche Bundles sind Teamentscheidungen, keine Sprachanforderung.
Es gibt kein starres Spaltenlimit. Unnatürliche Umbrüche sind oft ein Zeichen für zu viele Parameter oder zu lange Namen – dann die Signatur vereinfachen, nicht nur umbrechen.
Diese Seite gehört zu 7.2. Clean Code.