Skip to main content
Systems go recommended

Go Project Structure

Go project structure patterns covering directory layouts, domain-driven design, hexagonal architecture, internal packages, and scalable organization strategies.

Difficulty
intermediate
Read time
1 min read
Version
v1.0.0
Confidence
established
Last updated

Quick Reference

Go Structure: Start simple (main.go, go.mod). Use internal/ for private code. Organize by domain not layer (internal/user/ not internal/handlers/). cmd/ for entry points. Flat packages, avoid deep nesting. Interfaces in consumer package. Tests next to implementation. Let structure emerge, don't over-engineer upfront.

Use When

  • New Go projects
  • Refactoring Go codebases
  • Microservices in Go
  • CLI applications

Skip When

  • Tiny scripts (just main.go)
  • Library-only packages
  • Established project conventions

Go Project Structure

Go project structure patterns covering directory layouts, domain-driven design, hexagonal architecture, internal packages, and scalable organization strategies.

Tags

go golang architecture project-structure ddd

Discussion