Guia de estilo Backend - mcarrasqub/eventify GitHub Wiki
Guía de Estilo y Calidad de Código (Backend)
Para evitar que el estilo del código dependa de criterios individuales, en el Back-end se automatiza la revisión y el formato utilizando dos herramientas clave del ecosistema NestJS / TypeScript: Prettier para la apariencia visual y ESLint para la calidad técnica y el cumplimiento de las reglas de arquitectura.
1. Prettier (Formateador Automático)
Prettier reescribe el código para mantener un estilo visual consistente (indentación, comillas, punto y coma y longitud de línea) sin alterar la lógica de negocio ni modificar el comportamiento de los endpoints.
- Archivos soportados: Se aplica de forma global en todos los archivos TypeScript (
.ts), archivos de configuración (.json) y documentación (.md) dentro del directoriobackend/. - Configuración: Administrada mediante la configuración centralizada de formateo en el
package.json/.prettierrcdel backend, siendo de uso obligatorio para todo el equipo de desarrollo. - Comandos en la terminal (ejecutar dentro de
backend/):- Para formatear todo el código del backend automáticamente:
npm run format
- Para formatear todo el código del backend automáticamente:
2. ESLint (Linter de Calidad Técnica)
ESLint analiza el código de forma estática (sin necesidad de levantarlo o ejecutarlo) para detectar malas prácticas, código muerto, vulnerabilidades de tipado y asegurar que se cumplan los estándares arquitectónicos antes de subir cambios al repositorio.
- Configuración: Las reglas se administran de forma centralizada en la configuración de ESLint del backend.
- Reglas mínimas exigidas:
- Prohibición estricta de
any: Ninguna función, parámetro o retorno debe usarany(@typescript-eslint/no-explicit-any). Todo debe tiparse con DTOs, Entidades o interfaces. - Imports limpios y tipados: Prohibición de variables o importaciones no utilizadas (
no-unused-vars) y uso obligatorio deimport typepara importaciones exclusivas de tipos. - Tipado estricto en controladores y servicios: Toda función asíncrona debe definir su retorno explícito con
Promise<T>. - Comparación estricta: Uso obligatorio de igualdad estricta (
===y!==).
- Prohibición estricta de
- Comandos en la terminal (ejecutar dentro de
backend/):- Para analizar y corregir automáticamente los problemas detectados por el linter:
npm run lint
- Para analizar y corregir automáticamente los problemas detectados por el linter:
3. Orden Obligatorio de Ejecución antes de un Commit
Durante el desarrollo local, cada integrante puede trabajar libremente, pero antes de realizar un git push o abrir un Pull Request hacia la rama develop, se debe seguir estrictamente este flujo para asegurar la integridad de la base de código:
- Guardar todos los cambios en el editor de código.
- Abrir la terminal ubicada en la carpeta
backend/. - Ejecutar el análisis y corrección automática del linter:
npm run lint