Canonical guidance

Use when

Avoid

Preferred pattern

var defaultTimeout = 5 * time.Second

func init() {
	if defaultTimeout <= 0 {
		panic("invalid default timeout")
	}
}

Anti-pattern

Explanation: This anti-pattern is tempting because init runs automatically, but hidden startup logic makes order, testing, and configuration harder to reason about.

Why

Related pages

Sources