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.
Ask episode
AI Snips
Chapters
Transcript
Episode notes
ADVICE

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.
ANECDOTE

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.
INSIGHT

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.
Get the Snipd Podcast app to discover more snips from this episode
Get the app