Warning: Undefined array key "typ" in /srv/vhost/diaridigital.net/home/html/sourcecode/main/articles.php on line 18
Estructura de proyecto
Tiempo de lectura: 1 minutos
La comunidad de Golang ha desarrollado un estándar para la estructura de proyectos que puede ayudarte a mantener tu código limpio, modular y escalable.
Estructura
En Go se recomienda utilizar une estructura de directorios que organice los diferentes tipos de fichero y su finalidad. Esta estructura tiene una serie de carpetas que se utilizan comúnmente en los proyectos de Go.
Dependiendo del proyecto que se construya tendremos una serie de directorios u otros
Directorios clave
Estos son los principales directorios dentro de la estructura recomendada
bin/ Directorio de salida de los ejecutables creados.
c m d/ Contiene los puntos de entrada específicos de la aplicación, normalmente un o por aplicación. Aquí es donde empieza la ejecución de la aplicación.
Cada subdirectorio representa un ejecutable separado. El nombre del subdirectorio debe coincidir con el nombre del ejecutable deseado.
internal/ Aquí se guardan los paquetes de uso privado para la aplicación. Se supone que el código de esta carpeta no se va a utilizar por otros aplicativos.
Por ejemplo, la lógica de configuración sería:
├── internal/
│ ├── config/
│ │ ├── config.go # Configuración del proyecto pkg/ Este directorio contiene paquetes que son reutilizables por otros aplicativos. Es el código que se supone importan otras aplicaciones. Un subdirectorio por paquete.
api/ Contiene el código relacionado con HTTP o RPC API, incluye gestores de peticiones y middleware.
web/ Si el proyecto incluye un front-end de tipo web, aquí se colocan los activos como CSS, JavaScript, templates, etc.
Más detalle para este directiorio en el post de Proyectos web estáticos
scripts/ Contiene los scripts para crear, desplegar o mantener el proyecto y otros automatismos.
configs/ Ficheros de configuración de la aplicación para los diferentes entornos (development, production), por ejemplo ficheros .yaml.
Ejemplos de configuraciones que se ubican en este directorio en el post de variables de entorno
tests/ Test de integración i otros tipos de test.
docs/ Documentación del proyecto y de las posibles APIs.
build/ archivos de compilación, como scripts para compilar.
Recomendado
La estructura recomendada para un proyecto en Golang es la siguiente:
.
├── cmd
├── bin
├── internal
├── pkg
├── api
├── web
├── configs
├── scripts
├── build
├── test
├── docs