
Fallthrough Package Hell
9 snips
Feb 28, 2026 A lively dive into Go repo organization, package design, and the pain of dependency cycles. They debate practical naming patterns, when to split packages, and tooling needed to safely refactor large codebases. Conversation also covers community fragmentation, the effects of module politics, and how tone and scale shape the Go ecosystem.
AI Snips
Chapters
Transcript
Episode notes
Start Single Then Split By Clear Boundaries
- Start with a single package and split only when you find clear boundaries like distinct call graphs or domain responsibilities.
- Matthew Sanabria suggests looking for which functions and types call each other to define package boundaries.
One-String Util Package Revealed Poor Design
- Matthew recounts seeing a 'meta' or 'util' package containing a single exported string, a sign of poor project design.
- He refactored to express the provider domain explicitly and found the code more readable and maintainable.
Compatibility Promise Enables Reproducibility But Hinders Evolution
- The Go 1 compatibility promise helps build old code but traps ecosystems in past assumptions; evolution needs safe, scalable migration tooling.
- Kris Brandow highlights analyzers and fixers as seeds but warns about trust, diffs, and evolving third-party code safely.
