Skip to content

RaikaSurendra/go-design-patterns

 
 

Repository files navigation

Go Gopher

Go Design Patterns

A curated collection of 56 idiomatic design & application patterns for the Go programming language — actively maintained and 100% implemented.

📦 56 Patterns 📂 10 Categories 100% Implemented
🏗️
Creational
Object creation mechanisms — factories, builders, singletons, pools, and generics.
7 patterns
🧱
Structural
Compose objects into larger structures — bridges, proxies, decorators, and facades.
6 patterns
🎭
Behavioral
Manage algorithms and object responsibilities — commands, observers, and strategies.
10 patterns
🔒
Synchronization
Coordinate concurrent access — mutexes, semaphores, monitors, and condition variables.
5 patterns
Concurrency
Harness goroutines and channels — errgroups, pipelines, worker pools, and rate limiters.
12 patterns
📨
Messaging
Move data between components — fan-in/out, pub/sub, futures, and push/pull.
5 patterns
🛡️
Stability
Build resilient systems — circuit breakers, bulkheads, deadlines, and fail-fast.
6 patterns
📊
Profiling
Measure and optimize performance with timing functions and profiling wrappers.
1 pattern
🔧
Idioms
Go-specific idioms — functional options, context propagation, error wrapping, DI, and table-driven tests.
5 patterns
⚠️
Anti-Patterns
Common pitfalls — cascading failures and patterns to avoid in production systems.
1 pattern

Actively maintained fork of tmrts/go-patterns — updated with modern Go, complete implementations, and full documentation. Contributions welcome!

About

A curated, actively maintained collection of idiomatic design & application patterns for Go (forked from tmrts/go-patterns)

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • CSS 51.9%
  • Go 29.2%
  • JavaScript 18.2%
  • Handlebars 0.7%