Skip to main content
Entwickler Themen
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

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.

gofmt / go fmt

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

goimports ist gofmt plus Import-Hygiene: fehlende Imports ergänzen, ungenutzte entfernen. Typischerweise beim Speichern im Editor.

Import-Gruppen

Stdlib zuerst, dann eine Leerzeile, dann externe und eigene Packages:

import (
	"fmt"
	"os"

	"example.com/myproject/store"
)

go vet

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

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.

Weitere Linter

Offiziell reicht gofmt + go vet. golint ist deprecated. golangci-lint und ähnliche Bundles sind Teamentscheidungen, keine Sprachanforderung.

Zeilenlänge

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.