go-design-patterns
Installation
SKILL.md
Go Design Patterns
Go favors composition over inheritance and simplicity over abstraction. These patterns are idiomatic Go — not Java patterns ported to Go.
1. Functional Options
The most idiomatic Go pattern for configurable constructors. Use when a type has many optional settings.
type Server struct {
addr string
readTimeout time.Duration
writeTimeout time.Duration
logger *slog.Logger
}
type Option func(*Server)
Related skills