Rodin
d6f36b67c8
docs: cross-cutting concerns analysis (logging, config, retry, lifecycle)
...
How CockroachDB, Prometheus, Ecto, and Oban handle the
things that touch everything but belong nowhere. Includes
red flags and review questions for each concern.
2026-04-30 10:31:19 -07:00
Rodin
cee58e85a4
docs: ecosystem-level analysis — how codebases present to consumers
...
Extension points, deliberate absences, test architecture,
and consumer contracts across CockroachDB, Prometheus, Ecto, Oban.
Key insight: smaller interface → larger ecosystem.
2026-04-30 10:02:07 -07:00
Rodin
725308c37a
docs: architectural analysis across CockroachDB, Prometheus, Ecto, Oban
...
Not just per-file patterns — structural analysis of how these
codebases organize at scale. Key findings:
- 116 packages @ 4 files each (CockroachDB)
- Interface layer breaks circular deps
- Testability designed in, not bolted on
- Composition via data, not inheritance
2026-04-30 09:28:03 -07:00
Rodin
758ae5dae4
docs: add patterns extracted from cockroachdb and prometheus
...
CockroachDB: 4 patterns (Stopper lifecycle, leak detection, two-phase shutdown, CloserFn adapter)
Prometheus: 5 patterns (atomic file ops, DefaultOptions, aligned timestamps, sentinel errors, compile-time interface checks)
2026-04-30 09:04:11 -07:00
Rodin
1ef2a4a189
changelog: 2026-04-30 digest
2026-04-30 14:07:37 +00:00
aweiker
733aa7d261
docs: add when-not to style + smells (package-design + documentation already done)
2026-04-30 13:31:47 +00:00
aweiker
11048ae73e
docs: add when-not to interfaces + error-handling + concurrency
2026-04-30 13:26:20 +00:00
aweiker
a7a853bb43
docs: add when-not to structs + testing-advanced + api-conventions
2026-04-30 13:24:01 +00:00
aweiker
631be02392
refactor: remove Kubernetes content (moved to rodin/kubernetes-patterns)
2026-04-30 12:10:11 +00:00
aweiker
eb9171368b
docs: add 'when to use' triggers + examples to all patterns
...
Added 'When to Use' subsections with concrete decision triggers and
before/after Go code examples to patterns across all directories:
- patterns/error-handling.md (3 patterns: sentinels, wrapping, Join)
- patterns/concurrency.md (4 patterns: Mutex, Once, done channels, pipelines)
- patterns/interfaces.md (4 patterns: small interfaces, accept/return, adapter, optional)
- patterns/structs.md (3 patterns: zero-value, constructors, config structs)
- patterns/package-design.md (3 patterns: internal/, init(), context keys)
- patterns/style.md (3 patterns: interface checks, iota constants, named types)
- patterns/testing-advanced.md (3 patterns: table tests, golden files, httptest)
- patterns/api-conventions.md (3 patterns: Must, layered API, graceful shutdown)
- patterns/documentation.md (2 patterns: examples, deprecated)
- kubernetes/patterns.md (3 patterns: controller, workqueue, leader election)
- kubernetes/production-go.md (2 patterns: codegen, HandleCrash)
- smells/anti-patterns.md (2 anti-patterns: cache mutation, edge-triggered)
2026-04-30 12:08:41 +00:00
rodin
0e5974f39a
add MIT license
2026-04-30 11:58:36 +00:00
Rodin
c797178fb9
docs: idiomatic Go patterns from stdlib + Kubernetes with source citations
2026-04-30 11:07:33 +00:00
Rodin
0f1d7e4c06
feat: initial Go patterns guide from stdlib + Kubernetes source study
...
9 pattern files covering stdlib (structs, interfaces, API conventions, docs, style),
Kubernetes (controller/reconciler, informer/cache, leader election, code generation),
comparison (stdlib vs K8s approaches), and anti-patterns.
All patterns cite exact source files and line numbers.
2026-04-30 06:34:02 +00:00