No meu entendimento, a arquitetura evolutiva se resume a facilitar a modificação da arquitetura. Agora, a arquitetura é frequentemente definida como as coisas que você deve corrigir logo no início, porque será difícil mudar mais tarde.
Como isso se encaixa? Existe alguma diferença entre arquitetura evolutiva e simplesmente minimizar a quantidade de arquitetura?
design
architecture
agile
architectural-patterns
Frank Puffer
fonte
fonte
Respostas:
A palestra de Neal Ford sobre Arquitetura Evolutiva pode ser encontrada aqui.
Parafraseando:
Ele continua descrevendo diferentes cenários arquitetônicos, começando com Big Ball of Mud, arquiteturas em camadas, microkernels e REST e culminando em microsserviços, que ele diz ter n dimensões de capacidade evolutiva (onde n é o número de microsserviços distintos).
Segundo Ford, arquiteturas evolucionárias:
Você pode pensar em Arquitetura Evolutiva como uma meta-arquitetura, se quiser; uma arquitetura de arquiteturas. Orientação que dita os princípios de design que promovem a moldagem de argila em vez de pedra.
fonte
Sim, é uma contradição se você estiver fazendo tudo fácil de mudar indiscriminadamente. Se você precisar adicionar código para tornar algo "mais fácil de alterar" (com "mais fácil" mal definido, como aqui)), você tornou mais difícil a alteração, simplesmente porque adicionou código. Por outro lado, se você souber exatamente o que será alterado, o que é altamente improvável, o código adicional não deverá ser visto como uma complexidade desnecessária.
Tornar as coisas "fáceis de mudar" é provavelmente a principal razão pela qual muitos softwares modernos se tornaram tão inchados e difíceis de mudar.
fonte