Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /srv/vhost/diaridigital.net/home/html/sourcecode/includes/config.php on line 61

Deprecated: substr(): Passing null to parameter #1 ($string) of type string is deprecated in /srv/vhost/diaridigital.net/home/html/sourcecode/includes/config.php on line 61
Estructura de proyecto
Source Code

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  

Warning: Undefined array key "typ" in /srv/vhost/diaridigital.net/home/html/sourcecode/includes/navigation.inc.php on line 10

Warning: Undefined array key "typ" in /srv/vhost/diaridigital.net/home/html/sourcecode/includes/navigation.inc.php on line 21
Xavier es un desarrollador senior full stack y opera desde la ciudad mediterránea de Barcelona. Le encantan las tecnologías de software y está convencido que el desarrollo de software es un proceso colaborativo y abierto.
Y es un apasionado de la astronomía y de la fotografía. Lo puedes encontrar en:
Comparte este post


Warning: Undefined array key "typ" in /srv/vhost/diaridigital.net/home/html/sourcecode/includes/footer.inc.php on line 24