Saltar al contenido principal

Documentación

La documentación técnica de un proyecto es el conjunto de textos, diagramas y referencias que describen cómo está construido, cómo funciona y cómo se usa un sistema de software. En el backend, abarca desde los comentarios en el código fuente hasta las especificaciones detalladas de los endpoints de una API.

Una buena documentación no es un lujo: es una necesidad de ingeniería que impacta directamente en la mantenibilidad, la incorporación de nuevos desarrolladores y la calidad del software a largo plazo.

¿Por qué es importante documentar?

SituaciónSin documentaciónCon documentación
Un nuevo desarrollador se une al equipoSemanas de exploración del códigoOnboarding en días
Se retoma un proyecto después de mesesDifícil recordar decisiones de diseñoEl contexto está preservado
Un cliente o equipo frontend consume la APINecesita preguntar constantementeConsulta la referencia de forma autónoma
Se detecta un bug en producciónDifícil trazar el flujo de datosLos contratos documentados aceleran el diagnóstico

Tipos de documentación en un proyecto backend

En un proyecto Node.js moderno es habitual distinguir varios niveles de documentación:

  1. Documentación de código — Comentarios y anotaciones dentro del propio código fuente que explican la lógica, los parámetros y los valores de retorno de funciones y módulos.
  2. Documentación de API REST — Descripción formal de los recursos HTTP expuestos: endpoints, métodos, cabeceras, cuerpos de petición/respuesta y códigos de estado.
  3. Documentación de WebSockets — Especificación de los eventos, mensajes y flujos de comunicación en tiempo real que ofrece el servidor.
  4. Documentación arquitectónica — Diagramas de componentes, decisiones de diseño (ADR), esquemas de base de datos, etc.

Principios generales

Independientemente del nivel de documentación, conviene seguir estos principios:

  • Escríbela cerca del código. La documentación que vive lejos del código tiende a quedarse desactualizada. Los comentarios JSDoc, las anotaciones OpenAPI como decoradores o los ficheros YAML junto a las rutas son ejemplos de documentación "cerca del código".
  • Automatiza lo que puedas. Herramientas como JSDoc o Swagger UI generan documentación legible a partir de anotaciones en el código, reduciendo el trabajo manual.
  • Documenta el por qué, no solo el qué. El código ya dice qué hace. La documentación de valor explica por qué se tomó una decisión concreta.
  • Trátala como código. La documentación debe revisarse en pull requests, versionarse con Git y actualizarse cuando cambia el comportamiento del sistema.
  • Piensa en tu audiencia. Un comentario interno en un módulo de autenticación va dirigido a otro desarrollador. La referencia de la API va dirigida a quien la consume, que puede no conocer los detalles internos.

Ecosistema Node.js: herramientas principales

ÁmbitoHerramientaDescripción
Documentación de códigoJSDocEstándar de facto para anotar JS/TS
Documentación de código (TypeScript)TypeDocGenera docs a partir de tipos TS
API RESTOpenAPI / SwaggerEspecificación estándar del sector
API RESTswagger-jsdocGenera OpenAPI desde comentarios JSDoc
API RESTSwagger UIInterfaz web interactiva para explorar la API
API RESTRedocAlternativa visual a Swagger UI
WebSocketsAsyncAPIEstándar equivalente a OpenAPI para mensajería
WebSocketssocket.ioLibrería popular con documentación de eventos

Estructura recomendada del proyecto

my-backend/
├── src/
│ ├── controllers/
│ ├── services/
│ ├── routes/
│ └── sockets/
├── docs/
│ ├── openapi.yaml # Especificación OpenAPI
│ └── asyncapi.yaml # Especificación AsyncAPI
├── .jsdoc.json # Configuración de JSDoc
└── package.json