Construyendo Arquitecturas Evolutivas, 2ª Edición

Book description

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

El ecosistema de desarrollo de software cambia constantemente, proporcionando un flujo constante de nuevas herramientas, marcos, técnicas y paradigmas. En los últimos años, los avances incrementales en las prácticas básicas de ingeniería para el desarrollo de software han creado las bases para replantearse cómo cambia la arquitectura con el tiempo, junto con las formas de proteger las características arquitectónicas importantes a medida que evoluciona. Esta guía práctica une esas partes con una nueva forma de pensar sobre la arquitectura y el tiempo.

Table of contents

  1. Prólogo a la primera edición
  2. Prólogo a la Segunda Edición
  3. Prefacio
    1. La estructura de este libro
    2. Casos prácticos y PenúltimoWidgets
    3. Convenciones utilizadas en este libro
    4. Utilizar ejemplos de código
    5. Aprendizaje en línea O'Reilly
    6. Cómo contactar con nosotros
    7. Información adicional
    8. Agradecimientos
  4. I. Mecánica
  5. 1. Arquitectura de software en evolución
    1. Los retos de la evolución del software
    2. Arquitectura evolutiva
      1. Cambio guiado
      2. Cambio incremental
      3. Múltiples dimensiones arquitectónicas
    3. ¿Cómo es posible la planificación a largo plazo cuando todo cambia constantemente?
    4. Una vez que he construido una arquitectura, ¿cómo puedo evitar que se degrade con el tiempo?
    5. ¿Por qué evolutivo?
    6. Resumen
  6. 2. Funciones de aptitud
    1. ¿Qué es una función de aptitud?
    2. Categorías
      1. Ámbito de aplicación: Atómico frente a holístico
      2. Cadencia: Disparada Versus Continua Versus Temporal
      3. Caso práctico: ¿Disparado o continuo?
      4. Resultado: Estático frente a dinámico
      5. Invocación: Automatizada frente a manual
      6. Proactividad: Intencionada frente a emergente
      7. Cobertura: ¿Funciones de aptitud específicas de cada dominio?
    3. ¿Quién escribe las funciones de fitness?
    4. ¿Dónde está mi marco de pruebas de la función Fitness?
    5. Resultados frente a implantaciones
    6. Resumen
  7. 3. Cambio incremental de ingeniería
    1. Cambio incremental
      1. Vías de Implementación
      2. Caso práctico: Añadir funciones de fitness al servicio de facturación de PenultimateWidgets
      3. Caso práctico: Validar la coherencia de la API en una compilación automatizada
    2. Resumen
  8. 4. Automatizar la gobernanza arquitectónica
    1. Funciones de Adecuación como Gobernanza Arquitectónica
    2. Funciones de aptitud basadas en códigos
      1. Acoplamiento aferente y eferente
      2. Abstracción, inestabilidad y distancia de la secuencia principal
      3. Direccionalidad de las importaciones
      4. Complejidad ciclomática y gobernanza "en manada
    3. Herramientas llave en mano
      1. Legalidad de las bibliotecas de código abierto
      2. A11y y otras características de arquitectura compatibles
      3. ArchUnit
      4. Linters para la Gobernanza del Código
      5. Caso práctico: Función de adecuación a la disponibilidad
      6. Caso práctico: Pruebas de carga junto con Canary Releases
      7. Caso práctico: ¿Qué portar?
      8. Funciones de fitness que ya utilizas
    4. Arquitectura de integración
      1. Gobernanza de la comunicación en los microservicios
      2. Caso práctico: Elegir cómo implementar una función de aptitud
    5. DevOps
    6. Arquitectura empresarial
      1. Caso práctico: Reestructuración arquitectónica mientras se implementa 60 veces al día
      2. Funciones de aptitud de fidelidad
    7. La aptitud funciona como una lista de comprobación, no como un palo
    8. Documentar las funciones de aptitud
    9. Resumen
  9. II. Estructura
  10. 5. Topologías de arquitectura evolutiva
    1. Estructura arquitectónica evolutiva
      1. Connascencia
      2. Intersección de Connascencia con Contexto Limitado
    2. Cuánticos arquitectónicos y granularidad
      1. Implementación independiente
      2. Alta cohesión funcional
      3. Acoplamiento estático elevado
      4. Acoplamiento Cuántico Dinámico
    3. Contratos
      1. Caso práctico: Los microservicios como arquitectura evolutiva
    4. Reutilizar patrones
      1. Reutilización eficaz = Abstracción + Baja volatilidad
      2. Sidecars y Malla de Servicio: Acoplamiento Operativo Ortogonal
      3. Malla de Datos: Acoplamiento ortogonal de datos
    5. Resumen
  11. 6. Datos evolutivos
    1. Diseño evolutivo de bases de datos
      1. Esquemas evolutivos
      2. Integración de bases de datos compartidas
    2. Enredo inadecuado de datos
      1. Transacciones Commit en dos fases
      2. Edad y calidad de los datos
      3. Caso práctico: Evolución del enrutamiento de PenultimateWidgets
    3. De la función nativa a la función de aptitud
      1. Integridad referencial
      2. Duplicación de datos
      3. Sustitución de desencadenadores y procedimientos almacenados
      4. Caso práctico: Evolucionar de lo relacional a lo no relacional
    4. Resumen
  12. III. Impacto
  13. 7. Construir arquitecturas evolutivas
    1. Principios de la arquitectura evolutiva
      1. Último momento responsable
      2. Diseñar y desarrollar para la evolucionabilidad
      3. Ley de Postel
      4. Arquitecto para la Testabilidad
      5. Ley de Conway
    2. Mecánica
      1. Paso 1: Identificar las dimensiones afectadas por la evolución
      2. Paso 2: Definir la(s) función(es) de aptitud para cada dimensión
      3. Paso 3: Utilizar canalizaciones de implementación para automatizar las funciones de adecuación
    3. Proyectos totalmente nuevos
    4. Retroadaptación de arquitecturas existentes
      1. Acoplamiento y cohesión adecuados
      2. Implicaciones COTS
    5. Migrar arquitecturas
      1. Pasos de la migración
      2. Interacciones evolutivas entre módulos
    6. Pautas para construir arquitecturas evolutivas
      1. Elimina la variabilidad innecesaria
      2. Haz que las decisiones sean reversibles
      3. Prefiere Evolutivo a Previsible
      4. Construir capas anticorrupción
      5. Construye Arquitecturas Sacrificiales
      6. Mitigar el cambio externo
      7. Actualizar bibliotecas frente a frameworks
      8. Versionar internamente los servicios
      9. Caso práctico: Evolución de las calificaciones de PenultimateWidgets
    7. Arquitectura basada en funciones de aptitud
    8. Resumen
  14. 8. Errores y antipatrones de la arquitectura evolutiva
    1. Arquitectura técnica
      1. Antipatrón: Trampa del último 10% y Código bajo/sin código
      2. Caso práctico: Reutilización en PenultimateWidgets
      3. Antipatrón: Rey vendedor
      4. Error: Abstracciones con fugas
      5. Error: Desarrollo basado en el currículum
    2. Cambio incremental
      1. Antipatrón: Gobernanza inadecuada
      2. Caso práctico: Gobernanza "suficiente" en PenultimateWidgets
      3. Error: Falta de Velocidad de Liberación
    3. Preocupaciones empresariales
      1. Error: Personalización del producto
      2. Antipatrón: Informar sobre el sistema de registro
      3. Error: Horizontes de planificación excesivamente largos
    4. Resumen
  15. 9. Poner en práctica la arquitectura evolutiva
    1. Factores organizativos
      1. No luches contra la Ley de Conway
      2. Cultura
      3. Cultura de experimentación
      4. Director Financiero y Presupuestos
    2. El caso empresarial
      1. Desarrollo basado en hipótesis y datos
      2. Funciones de aptitud como medios experimentales
    3. Crear funciones de adecuación empresarial
      1. Caso práctico: Vulnerabilidad de seguridad de día cero
      2. Esculpir contextos limitados dentro de la arquitectura de integración existente
    4. ¿Por dónde empezar?
      1. Fruta al alcance de la mano
      2. Primero el valor más alto
      3. Prueba
      4. Infraestructura
      5. Caso práctico: Arquitectura empresarial en PenultimateWidgets
    5. ¿Futuro Estado?
      1. Funciones de aptitud mediante IA
      2. Pruebas Generativas
    6. ¿Por qué (o por qué no)?
      1. ¿Por qué una empresa debe decidir construir una arquitectura evolutiva?
      2. ¿Por qué elegiría una empresa no construir una arquitectura evolutiva?
    7. Resumen
  16. Índice
  17. Sobre los autores

Product information

  • Title: Construyendo Arquitecturas Evolutivas, 2ª Edición
  • Author(s): Neal Ford, Rebecca Parsons, Patrick Kua, Pramod Sadalage
  • Release date: September 2024
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 9781098187415