Sobes.tech
Principal

How do you choose the project structure in Go?

sobes.tech AI

Answer from AI

The choice of project structure in Go depends on the scale and goals of the project, but I usually follow these principles:

  • Simplicity and clarity: the structure should be intuitive for new participants.
  • Package separation: logically related functions and types are grouped into separate packages.
  • Use of standard approaches, such as a structure with folders cmd/, pkg/, internal/.

Example of a basic structure:

myapp/
  cmd/           # application entry point
    myapp/
      main.go
  pkg/           # common libraries that can be used outside the project
  internal/      # packages accessible only within the project
  api/           # API description, protobuf, swagger
  configs/       # configuration files
  scripts/       # auxiliary scripts
  docs/          # documentation

For larger projects, consider architectural patterns (e.g., Clean Architecture) and separate business logic, interfaces, and infrastructure.

How do you choose the project structure in Go… - sobes.tech