¿Cuál es la estructura de carpetas recomendada para un proyecto Go?
Los proyectos pequeños normalmente no necesitan ninguna estructura. Todo lo que necesitas para empezar es sólo main.go
. Recomiendo siempre empezar un proyecto con un solo archivo main.go
.
Entonces, una vez que tu proyecto crece (imagina, te das cuenta de que ahora tienes que tener dos binarios), el enfoque común es añadir la carpeta cmd/
. Puede ser cualquier dir, por supuesto, pero cmd
es algo que cada gopher reconoce inmediatamente en el proyecto.
Entonces, una vez que su base de código crece, usted comienza a agregar más archivos «.go» y más paquetes – cada uno de ellos estará en un subdirectorio separado (por definición). Y aquí es donde muchos recién llegados se confunden y traen patrones de estructuración de otros lenguajes o frameworks.
En muchos otros lenguajes, el directorio se utiliza para «namespacing» grupo de archivos, como handlers
o models
, pero en Go, el directorio es un paquete separado (es decir, la biblioteca). Así que «estructurar carpetas» en Go en realidad significa «cómo abstraer el código en subpaquetes y cuándo».
Pero en general, usted no piensa en estructurar su repo a menos que su código base lo pida (es decir, demasiados archivos, abstracciones obvias que pueden ser reutilizadas y aisladas en su propio paquete, etc).