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