Skip to content

Instantly share code, notes, and snippets.

@LuisPalacios
Last active August 29, 2024 10:57
Show Gist options
  • Save LuisPalacios/050181e89255d486355500ec4e3c5802 to your computer and use it in GitHub Desktop.
Save LuisPalacios/050181e89255d486355500ec4e3c5802 to your computer and use it in GitHub Desktop.
Ejemplo VSCode settings.json para un Proyecto Golang para microservicios Dockerizados
{
// Configuración específica para el desarrollo en Go
// con soporte para la depuración, formateo y configuración
// específica para proyectos que se ejecutan como microservicios.
// Formateo y linting: Se configura gofmt como la herramienta de formateo predeterminada
// y golangci-lint como la herramienta de linting, con una bandera de –fast para realizar
// un análisis rápido.
// Depuración: La configuración de delve (dlv) para depurar aplicaciones Go está ajustada
// para manejar punteros y estructuras complejas de manera eficiente.
// Integración con Docker: Se configura VSCode para trabajar con Docker, incluyendo la
// instalación de las extensiones necesarias y la configuración del entorno de contenedores.
// Ejecución de pruebas: Se activa la ejecución automática de pruebas al guardar el código,
// lo que es útil para mantener la calidad del código de los microservicios.
// Compilación y terminal: Se configuran variables de entorno y flags de compilación
// específicos para asegurar que el código Go esté preparado para ejecutarse dentro de un
// contenedor Docker con GOOS y GOARCH configurados para Linux y arquitectura amd64.
//
// Activar el formato de código al guardar usando gofmt
"go.formatTool": "gofmt",
"editor.formatOnSave": true,
// Configurar el tamaño de las pestañas y el uso de espacios en lugar de tabs
"editor.tabSize": 4,
"editor.insertSpaces": false,
// Configuración de linting para Go
"go.lintTool": "golangci-lint",
"go.lintFlags": [
"--fast"
],
// Configuración de depuración para Docker
"go.delveConfig": {
"dlvLoadConfig": {
"followPointers": true,
"maxVariableRecurse": 1,
"maxStringLen": 64,
"maxArrayValues": 64,
"maxStructFields": -1
}
},
// Configuración para manejar el entorno de Docker
"remote.containers.dockerPath": "/usr/local/bin/docker",
"remote.containers.defaultExtensions": [
"golang.go",
"ms-azuretools.vscode-docker"
],
"remote.containers.workspaceFolder": "/workspace",
"go.toolsGopath": "/go",
// Definición de las asociaciones de archivos para manejar Dockerfiles y Go modules
"files.associations": {
"Dockerfile*": "dockerfile",
"go.mod": "go",
"go.sum": "go"
},
// Ejecución automática de tests al guardar
"go.testOnSave": true,
"go.testFlags": ["-v"],
// Configuración de compilación para GOOS y GOARCH, ajustada para Docker
"go.buildFlags": [
"-tags=containers",
"-ldflags=-linkmode=external"
],
// Definir los comandos para la terminal integrada
"terminal.integrated.env.linux": {
"GOOS": "linux",
"GOARCH": "amd64"
},
// Desactivar la confirmación de eliminación en el explorador de archivos
"explorer.confirmDelete": false
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment