
Uma série de tweets de Grady Booch sobre arquitetura de software:
https://twitter.com/Grady_Booch/status/1301810358819069952
Uma thread sobre a arquitetura de sistemas intensivos em software.
Há mais no mundo dos sistemas intensivos em software do que plataformas web-cêntricas em escala.
Uma boa arquitetura é caracterizada por abstrações nítidas, uma boa separação de responsabilidades, uma distribuição clara de responsabilidades e simplicidade. Todo o resto são detalhes.
Você não pode reduzir a complexidade de sistemas intensivos em software; o melhor que você pode fazer é gerenciá-la.
Com o tempo, todas as arquiteturas vibrantes devem evoluir.
Software antigo nunca morre; você deve matá-lo.
Algumas arquiteturas são intencionais, algumas são acidentais, a maioria é emergente.
Arquitetura significativa é um processo vivo e vibrante de deliberação, design e decisão.
O acúmulo implacável de código ao longo de dias, meses, anos e até décadas rapidamente transforma todo projeto novo bem-sucedido em um legado.
Mostre-me a organização da sua equipe e eu lhe mostrarei a arquitetura do seu sistema.
Todos os sistemas intensivos em software bem estruturados estão cheios de padrões.
Um arquiteto de software que não programa é como um cozinheiro que não come.
Focar em padrões e preocupações transversais pode resultar em uma arquitetura que é menor, mais simples e mais compreensível.
Decisões de design encorajam o que um stakeholder específico pode fazer, bem como o que restringe o que um stakeholder não pode fazer.
No início, a arquitetura de um sistema intensivo em software é uma declaração de visão. No final, a arquitetura de cada sistema desse tipo é um reflexo dos bilhões e bilhões de decisões de design pequenas e grandes, intencionais e acidentais tomadas ao longo do caminho.
Toda arquitetura é design, mas nem todo design é arquitetura.
Arquitetura representa o conjunto de decisões de design significativas que moldam a forma e a função de um sistema, onde significativo é medido pelo custo da mudança.
Autor: Chuck Conway é especialista em engenharia de software e IA Generativa. Conecte-se com ele nas redes sociais: X (@chuckconway) ou visite-o no YouTube.