Configuración del Entorno de Desarrollo (DX)
Nivel básico-intermedio — Docker, linters, formatters y git hooks para maximizar la productividad del equipo.
El problema
Situación típica: el desarrollador A escribe código con tabs y comillas simples; el B usa espacios y comillas dobles. Cada PR tiene 500 líneas de cambios de formato mezcladas con 10 líneas de lógica real. Code review es imposible. Merge conflicts constantes por formateo. // el problema no es de habilidad, es de falta de automatización
Docker para desarrollo
Elimina "funciona en mi máquina" garantizando que todos usan exactamente el mismo entorno: mismas versiones (Node, PostgreSQL, Redis), setup de un comando (docker-compose up), aislamiento sin contaminar el sistema local, y consistencia dev → staging → prod.
Linters y formatters
| Herramienta | Función | Detecta |
|---|---|---|
| ESLint | Linter | Errores de lógica, malas prácticas, bugs potenciales |
| Prettier | Formatter | Inconsistencias de estilo (tabs, comillas, punto y coma) |
| TypeScript | Type checker | Errores de tipos |
| Stylelint | Linter CSS | Errores y convenciones en estilos |
Regla de oro: Prettier formatea, ESLint encuentra bugs. No uses ESLint para formateo — son herramientas con responsabilidades distintas, aunque ambas toquen el mismo código.
Git hooks
Scripts que se ejecutan automáticamente en eventos de git, moviendo la validación de la disciplina individual a la automatización:
| Hook | Cuándo | Qué hacer |
|---|---|---|
pre-commit | Antes del commit | Lint, format, tests rápidos |
commit-msg | Al escribir el mensaje | Validar formato del mensaje |
pre-push | Antes del push | Tests completos |
ESLint y Prettier atrapan inconsistencias mecánicas, pero no deciden si una función hace demasiado o si un nombre es claro. Los git hooks garantizan que lo automatizable se aplique siempre — no que el código sea bueno. Configurar esto bien libera al code review para discutir diseño, no espacios en blanco.
Practica: DX sobre el Walking Skeleton
Partiendo del Walking Skeleton de la lección anterior, agrega configuración completa de DX: ESLint + Prettier configurados para no pisarse entre sí, Husky para git hooks, y lint-staged para que el pre-commit solo revise los archivos modificados.