Recursos
Cheatsheets
Referencia rápida para los conceptos y patrones más usados en arquitectura de software.
🎯 Principios SOLID
S
Single Responsibility
Una clase debe tener una sola razón para cambiar. Cada módulo encapsula una única responsabilidad.
O
Open/Closed
Abierto para extensión, cerrado para modificación. Extendé comportamiento sin cambiar código existente.
L
Liskov Substitution
Los subtipos deben ser sustituibles por sus tipos base sin alterar el comportamiento del programa.
I
Interface Segregation
Muchas interfaces específicas son mejores que una interfaz general. No fuerces dependencias innecesarias.
D
Dependency Inversion
Dependé de abstracciones, no de implementaciones concretas. Las capas altas no deben depender de las bajas.
🛡️ Patrones de Resiliencia
| Patrón | Problema que resuelve | Cuándo usar |
|---|---|---|
| Retry | Fallos transitorios en servicios externos | Errores de red, timeouts esporádicos, 503 |
| Circuit Breaker | Servicio externo caído de forma sostenida | Fallos repetidos, proteger recursos propios |
| Timeout | Llamadas que se bloquean indefinidamente | Siempre — toda llamada externa necesita timeout |
| Bulkhead | Un componente lento afecta a todo el sistema | Aislar pools de conexiones por servicio |
| Fallback | Servicio no disponible temporalmente | Respuestas por defecto, caché, degradación |
| Idempotencia | Reintentos que causan efectos duplicados | Operaciones de escritura, pagos, eventos |
🌐 Códigos HTTP más usados
2xx — Éxito
- 200 OK — Petición exitosa
- 201 Created — Recurso creado
- 202 Accepted — Aceptado para procesamiento async
- 204 No Content — Éxito sin cuerpo de respuesta
3xx — Redirección
- 301 Moved Permanently — URL cambió permanentemente
- 302 Found — Redirección temporal
- 304 Not Modified — Usar versión en caché
4xx — Error del cliente
- 400 Bad Request — Request malformado
- 401 Unauthorized — No autenticado
- 403 Forbidden — No autorizado
- 404 Not Found — Recurso no existe
- 409 Conflict — Conflicto con estado actual
- 422 Unprocessable — Validación fallida
- 429 Too Many Requests — Rate limit excedido
5xx — Error del servidor
- 500 Internal Server Error — Error genérico
- 502 Bad Gateway — Respuesta inválida de upstream
- 503 Service Unavailable — Servicio no disponible
- 504 Gateway Timeout — Timeout de upstream
🏗️ Estilos Arquitectónicos — Comparación Rápida
| Estilo | Fortaleza | Debilidad | Ideal para |
|---|---|---|---|
| Monolito | Simplicidad, fácil de debuggear | Difícil de escalar partes independientes | MVPs, equipos pequeños |
| Microservicios | Escalabilidad independiente, deploys aislados | Complejidad operacional alta | Equipos grandes, dominios complejos |
| Event-Driven | Desacoplamiento, escalabilidad | Debugging complejo, consistencia eventual | Sistemas reactivos, alta concurrencia |
| Hexagonal | Testabilidad, independencia de frameworks | Más código boilerplate | Dominios complejos con lógica rica |