En mi opinión, la arquitectura evolutiva se reduce a hacer que la arquitectura sea fácil de modificar. Ahora, la arquitectura a menudo se define como las cosas que debes hacer bien temprano porque serán difíciles de cambiar más adelante.
¿Cómo encaja esto? ¿Hay alguna diferencia entre la arquitectura evolutiva y simplemente minimizar la cantidad de arquitectura?
design
architecture
agile
architectural-patterns
Frank Puffer
fuente
fuente
Respuestas:
La nota clave de Neal Ford sobre Arquitectura Evolutiva se puede encontrar aquí.
Parafraseando:
Continúa describiendo diferentes escenarios arquitectónicos, comenzando con Big Ball of Mud, arquitecturas en capas, microkernels y REST, y culminando en microservicios, que según él tienen n dimensiones de capacidad evolutiva (donde n es el número de microservicios distintos).
Según Ford, las arquitecturas evolutivas:
Puede pensar en la Arquitectura Evolutiva como una metaarquitectura, si lo desea; Una arquitectura de arquitecturas. Orientación que dicta los principios de diseño que promueven la fundición de objetos en arcilla en lugar de piedra.
fuente
Sí, es una contradicción si está haciendo que todo sea fácil de cambiar indiscriminadamente. Si tiene que agregar código para hacer algo "más fácil de cambiar" (con "más fácil" mal definido, como aquí), entonces ha dificultado el cambio, simplemente porque agregó código. Por otro lado, si sabe exactamente qué va a cambiar, lo cual es muy poco probable, el código adicional no debe verse como una complejidad innecesaria.
Hacer que las cosas sean "fáciles de cambiar" es probablemente la razón principal por la que gran parte del software moderno se ha vuelto tan hinchado y difícil de cambiar.
fuente