Skill: go-dev-workflow
Flujo completo de desarrollo en GoFHIR.
Cuándo usar este skill
- Al configurar ambiente de desarrollo
- Al ejecutar comandos make
- Al trabajar con git hooks
- Al preparar código para commit/push
Setup Inicial
# 1. Instalar herramientas de desarrollo
make tools
# 2. Instalar git hooks
make hooks-install
# 3. Descargar dependencias
make deps
Comandos Make Principales
Desarrollo Diario
# Formatear código
make fmt
# Ejecutar linter
make lint
# Ejecutar tests
make test # Con race detector
make test-short # Sin race detector (más rápido)
make test-fhirpath # Solo fhirpath
make test-validator # Solo validator
# Ver cobertura
make coverage # Abre en navegador
make coverage-check # Verifica threshold (50%)
Benchmarks
make bench # Ejecutar todos
make bench-fhirpath # Solo fhirpath
make bench-validator # Solo validator
make bench-baseline # Guardar baseline
make bench-compare # Comparar con baseline
Seguridad
make security # gosec + govulncheck
make gosec # Solo gosec
make govulncheck # Solo vulnerabilidades
Documentación
make doc # Inicia godoc en :6060
CI Local
make ci # Ejecuta lint + test + security + build
make ci-quick # Sin race detector
Git Hooks
Instalación
make hooks-install # Instala hooks
make hooks-uninstall # Desinstala hooks
make hooks-run # Ejecuta pre-commit manualmente
Hook: pre-commit
Ejecuta automáticamente antes de cada commit:
go fmt- Verifica formatogo vet- Análisis estáticogolangci-lint- Linting completo- Detecta TODO/FIXME y prints de debug
Hook: commit-msg
Valida formato Conventional Commits:
type(scope): description
# Tipos válidos:
feat # Nueva funcionalidad
fix # Corrección de bug
docs # Documentación
style # Formato (no afecta lógica)
refactor # Refactorización
perf # Mejora de rendimiento
test # Tests
build # Sistema de build
ci # CI/CD
chore # Otros
revert # Revertir commit
Ejemplos:
git commit -m "feat(validator): add profile validation"
git commit -m "fix(fhirpath): handle null in where()"
git commit -m "docs: update README"
Hook: pre-push
Solo en push a main/master:
- Ejecuta tests con race detector
- Ejecuta govulncheck
Flujo de Trabajo Recomendado
# 1. Crear branch
git checkout -b feat/nueva-funcionalidad
# 2. Desarrollar con formato continuo
make fmt
# 3. Verificar antes de commit
make lint
make test-short
# 4. Commit (hooks se ejecutan automáticamente)
git add .
git commit -m "feat(module): description"
# 5. Antes de PR
make ci
# 6. Push (pre-push hook ejecuta tests)
git push -u origin feat/nueva-funcionalidad
DevContainer (VSCode)
Para desarrollo en contenedor:
- Abrir proyecto en VSCode
- Command Palette > "Dev Containers: Reopen in Container"
- Ambiente preconfigurado con todas las herramientas
Archivos de Configuración
| Archivo | Propósito |
|---|---|
Makefile |
Comandos de desarrollo |
.golangci.yml |
Configuración de linters |
.editorconfig |
Estilo de código por editor |
scripts/hooks/* |
Git hooks nativos |
.devcontainer/ |
Configuración DevContainer |
Converted and distributed by TomeVault — claim your Tome and manage your conversions.