# Introducción

> Una guía integral para diseñar, construir y escalar aplicaciones web en la era de la IA

## Sobre este libro

Este no es un libro sobre cómo escribir código. Es un libro sobre **cómo pensar** en el desarrollo de aplicaciones web modernas.

En un mundo donde las herramientas de IA pueden generar código, el valor del desarrollador se ha desplazado hacia:

* **Antes**: Entender el problema, diseñar la solución, planificar la arquitectura
* **Después**: Validar, probar, desplegar, escalar y mantener

Este libro es una guía viva, diseñada para evolucionar junto con la industria.

***

## Cómo usar este libro

### Si eres desarrollador junior

Comienza desde el Capítulo 1 y avanza secuencialmente. Los conceptos se construyen uno sobre otro.

### Si eres desarrollador experimentado

Usa el índice como referencia. Cada capítulo es autocontenido y enlaza a conceptos relacionados cuando es necesario.

### Convenciones

* 📖 **Concepto**: Explicación teórica agnóstica a tecnología
* 🛠️ **Práctica**: Implementación concreta con stack específico
* ⚠️ **Advertencia**: Errores comunes a evitar
* 💡 **Insight**: Perspectiva o tip avanzado
* 🤖 **IA**: Cómo aplicar inteligencia artificial en este contexto

***

## Índice

### Parte I: El Nuevo Paradigma

*Contexto y fundamentos para entender el desarrollo web moderno*

1. [**La Evolución del Desarrollador Web**](https://tonior.gitbook.io/guia-de-desarrollo-web/parte-i-el-nuevo-paradigma/01-evolucion-desarrollador)
   * Del webmaster al ingeniero de producto
   * El impacto de la IA en el desarrollo
   * Las nuevas habilidades críticas
   * El ciclo completo: antes, durante y después
2. [**Anatomía de una Aplicación Web Moderna**](https://tonior.gitbook.io/guia-de-desarrollo-web/parte-i-el-nuevo-paradigma/02-anatomia-aplicacion)
   * Cliente, servidor y la nube
   * El DOM: cómo el navegador representa la página
   * Monolitos vs microservicios vs serverless
   * El stack moderno: capas y responsabilidades
   * Cómo fluyen los datos: del click al pixel
3. [**Pensamiento en Sistemas**](https://tonior.gitbook.io/guia-de-desarrollo-web/parte-i-el-nuevo-paradigma/03-pensamiento-sistemas)
   * Más allá del código: pensar en componentes
   * Acoplamiento y cohesión
   * Trade-offs: no hay soluciones perfectas
   * Documentar decisiones: ADRs (Architecture Decision Records)
4. [**Desarrollo Asistido por IA**](https://tonior.gitbook.io/guia-de-desarrollo-web/parte-i-el-nuevo-paradigma/04-desarrollo-asistido-ia)
   * El cambio de paradigma
   * Qué puede y qué no puede hacer la IA
   * El ciclo de desarrollo con IA
   * Prompting efectivo para código
   * Cuándo confiar y cuándo verificar
   * MCP: conectando la IA con el mundo

***

### Parte II: El Antes — Diseño y Planificación

*Todo lo que sucede antes de escribir la primera línea de código*

5. [**Entendiendo el Problema**](https://tonior.gitbook.io/guia-de-desarrollo-web/parte-ii-el-antes-diseno-y-planificacion/05-entendiendo-problema)
   * Del pedido al requerimiento
   * Técnicas de elicitación
   * User stories vs especificaciones técnicas
   * El arte de hacer las preguntas correctas
6. [**Diseño de Producto y UX**](https://tonior.gitbook.io/guia-de-desarrollo-web/parte-ii-el-antes-diseno-y-planificacion/06-diseno-producto-ux)
   * Pensamiento centrado en el usuario
   * Wireframes, mockups y prototipos
   * Sistemas de diseño y componentes
   * Accesibilidad desde el diseño
7. [**Arquitectura de Software**](https://tonior.gitbook.io/guia-de-desarrollo-web/parte-ii-el-antes-diseno-y-planificacion/07-arquitectura-software)
   * Patrones arquitectónicos: MVC, Clean Architecture, Hexagonal
   * Cuándo usar qué patrón
   * Diseñando para el cambio
   * Arquitectura evolutiva
8. [**Diseño de APIs**](https://tonior.gitbook.io/guia-de-desarrollo-web/parte-ii-el-antes-diseno-y-planificacion/08-diseno-apis)
   * API-First: diseñar el contrato antes del código
   * REST: principios y mejores prácticas
   * GraphQL: cuándo y por qué
   * tRPC y el type-safety end-to-end
   * Versionado y evolución de APIs
   * Documentación como ciudadano de primera clase
9. [**Modelado de Datos**](https://tonior.gitbook.io/guia-de-desarrollo-web/parte-ii-el-antes-diseno-y-planificacion/09-modelado-datos)
   * Pensando en entidades y relaciones
   * SQL vs NoSQL: criterios de decisión
   * Normalización vs desnormalización
   * Esquemas evolutivos y migraciones
10. [**Planificación Técnica**](https://tonior.gitbook.io/guia-de-desarrollo-web/parte-ii-el-antes-diseno-y-planificacion/10-planificacion-tecnica)
    * Desglose de trabajo (WBS)
    * Identificación de riesgos técnicos
    * Spikes y pruebas de concepto
    * Estimación: el arte de lo imposible

***

### Parte III: El Durante — Implementación

*Patrones y prácticas para construir software de calidad*

11. [**Arquitectura Frontend**](https://tonior.gitbook.io/guia-de-desarrollo-web/parte-iii-el-durante-implementacion/11-arquitectura-frontend)
    * Componentes: la unidad básica
    * Estado: local, global y servidor
    * Routing y navegación
    * Renderizado: CSR, SSR, SSG, ISR
    * Performance frontend
12. [**Arquitectura Backend**](https://tonior.gitbook.io/guia-de-desarrollo-web/parte-iii-el-durante-implementacion/12-arquitectura-backend)
    * Capas y separación de responsabilidades
    * Controllers, Services, Repositories
    * Inyección de dependencias
    * Manejo de errores y excepciones
    * Logging estructurado
13. [**Autenticación y Autorización**](https://github.com/jaromeroh/guia-desarrollo-web/blob/main/chapters/13-autenticacion-autorizacion.md)
    * Identidad vs permisos
    * Sessions vs tokens (JWT)
    * OAuth 2.0 y OpenID Connect
    * RBAC, ABAC y políticas de acceso
    * Seguridad en la práctica
14. [**Comunicación y Datos en Tiempo Real**](https://github.com/jaromeroh/guia-desarrollo-web/blob/main/chapters/14-tiempo-real.md)
    * HTTP: request-response tradicional
    * WebSockets: comunicación bidireccional
    * Server-Sent Events (SSE)
    * Polling y Long Polling
    * Cuándo usar cada enfoque
15. [**Persistencia y Bases de Datos**](https://github.com/jaromeroh/guia-desarrollo-web/blob/main/chapters/15-persistencia.md)
    * Patrones de acceso a datos
    * ORMs vs Query Builders vs SQL puro
    * Transacciones y consistencia
    * Caching: estrategias y invalidación
    * Búsqueda: índices y full-text search
16. [**Manejo de Tareas Asíncronas**](https://github.com/jaromeroh/guia-desarrollo-web/blob/main/chapters/16-tareas-asincronas.md)
    * Jobs y queues
    * Procesamiento en background
    * Patrones de retry y circuit breaker
    * Event-driven architecture
    * CQRS y Event Sourcing (introducción)

***

### Parte IV: El Después — Calidad y Operaciones

*Asegurar que el software funciona y sigue funcionando*

17. [**Estrategias de Testing**](https://github.com/jaromeroh/guia-desarrollo-web/blob/main/chapters/17-testing.md)
    * La pirámide de testing (y sus alternativas)
    * Unit tests: qué probar y qué no
    * Integration tests: probando colaboraciones
    * E2E tests: el usuario como criterio
    * Testing de APIs
    * TDD y BDD: cuándo tienen sentido
18. [**Integración y Entrega Continua**](https://github.com/jaromeroh/guia-desarrollo-web/blob/main/chapters/18-ci-cd.md)
    * El pipeline como código
    * Builds reproducibles
    * Estrategias de branching
    * Feature flags y trunk-based development
    * Ambientes: dev, staging, production
19. [**Deployment y Infraestructura**](https://github.com/jaromeroh/guia-desarrollo-web/blob/main/chapters/19-deployment.md)
    * Contenedores y Docker
    * Orquestación: Kubernetes básico
    * Plataformas: Vercel, Railway, Fly.io, AWS
    * Infrastructure as Code
    * Estrategias de deployment: blue-green, canary, rolling
20. [**Observabilidad**](https://github.com/jaromeroh/guia-desarrollo-web/blob/main/chapters/20-observabilidad.md)
    * Los tres pilares: logs, métricas, traces
    * Monitoreo proactivo vs reactivo
    * Alertas que importan
    * Debugging en producción
    * Post-mortems y cultura de aprendizaje
21. [**Escalabilidad y Performance**](https://github.com/jaromeroh/guia-desarrollo-web/blob/main/chapters/21-escalabilidad.md)
    * Escalado vertical vs horizontal
    * Cuellos de botella comunes
    * CDNs y edge computing
    * Rate limiting y throttling
    * Optimización: medir antes de actuar
22. [**Seguridad en Aplicaciones Web**](https://github.com/jaromeroh/guia-desarrollo-web/blob/main/chapters/22-seguridad.md)
    * OWASP Top 10: entendiendo las amenazas
    * Input validation y sanitization
    * CORS, CSP y headers de seguridad
    * Secrets management
    * Auditoría y compliance

***

### Parte V: Stacks en Práctica

*Implementaciones concretas de los conceptos anteriores*

23. [**Stack: Next.js + Node.js**](https://github.com/jaromeroh/guia-desarrollo-web/blob/main/chapters/23-stack-nextjs.md)
    * Estructura de proyecto recomendada
    * Patrones con App Router
    * Server Actions y Server Components
    * Integración con bases de datos
    * Deployment en Vercel
24. [**Stack: Python + FastAPI**](https://github.com/jaromeroh/guia-desarrollo-web/blob/main/chapters/24-stack-fastapi.md)
    * Estructura de proyecto recomendada
    * Type hints y Pydantic
    * Async/await en Python
    * SQLAlchemy y Alembic
    * Deployment con Docker
25. [**Stack: Go + APIs de Alto Rendimiento**](https://github.com/jaromeroh/guia-desarrollo-web/blob/main/chapters/25-stack-go.md)
    * Estructura de proyecto recomendada
    * El stdlib de Go para web
    * Concurrencia y goroutines
    * Testing en Go
    * Deployment como binarios

***

### Parte VI: El Futuro

*Hacia dónde vamos*

26. [**La Nueva Capa de Abstracción**](https://tonior.gitbook.io/guia-de-desarrollo-web/parte-vi-el-futuro/26-nueva-capa-abstraccion)
    * El terremoto de magnitud 9
    * Agents, subagents, contexto y memoria
    * MCP: el protocolo que conecta todo
    * Configurando tu entorno agentico
    * El modelo mental para entidades estocásticas
    * Patrones y antipatrones
27. [**Tendencias y Horizontes**](https://github.com/jaromeroh/guia-desarrollo-web/blob/main/chapters/27-tendencias.md)
    * Edge computing y distribución global
    * WebAssembly y nuevas posibilidades
    * La convergencia de frontend y backend
    * Desarrollo low-code/no-code
    * Qué permanece constante

***

### Apéndices

* [**A: Glosario**](https://github.com/jaromeroh/guia-desarrollo-web/blob/main/appendices/glosario.md)
* [**B: Herramientas Recomendadas**](https://github.com/jaromeroh/guia-desarrollo-web/blob/main/appendices/herramientas.md)
* [**C: Recursos de Aprendizaje**](https://github.com/jaromeroh/guia-desarrollo-web/blob/main/appendices/recursos.md)
* [**D: Plantillas y Checklists**](https://github.com/jaromeroh/guia-desarrollo-web/blob/main/appendices/plantillas.md)
* [**E: Referencias y Bibliografía**](https://github.com/jaromeroh/guia-desarrollo-web/blob/main/appendices/referencias.md)

***

## Contribuir

Este es un libro vivo. Si encuentras errores, tienes sugerencias o quieres contribuir:

1. Abre un issue describiendo tu propuesta
2. Sigue las guías de estilo del proyecto
3. Envía un PR con tus cambios

## Licencia

Este trabajo está bajo una licencia [Creative Commons Atribución-NoComercial 4.0 Internacional (CC BY-NC 4.0)](https://creativecommons.org/licenses/by-nc/4.0/deed.es).

**Puedes:**

* Compartir — copiar y redistribuir el material en cualquier medio o formato
* Adaptar — remezclar, transformar y construir a partir del material

**Bajo los siguientes términos:**

* **Atribución** — Debes dar crédito apropiado, proporcionar un enlace a la licencia e indicar si se han realizado cambios
* **NoComercial** — No puedes usar el material con fines comerciales

[![CC BY-NC 4.0](https://licensebuttons.net/l/by-nc/4.0/88x31.png)](https://creativecommons.org/licenses/by-nc/4.0/deed.es)

***

*Última actualización: Enero 2026*
