Arquitetura de software, uma visão básica.
Através de meus estudos, concluí que a arquitetura de software é baseada em seu contexto primordialmente. Não existe uma arquitetura coringa que seja útil para todos os problemas e que solucione N questões diferentes; tudo se baseia em como utilizá-la. Digamos que eu tenha um MVP e faça o lançamento dele, possuo 5 clientes. Não faz sentido criar uma arquitetura de microserviços, visto que meu negócio não está no momento adequado para tal.
Uma arquitetura deve obedecer às restrições existentes dentro do negócio para que funcione de maneira adequada. Imaginemos que, em 10 anos, meu negócio saia de 5 clientes e esteja com 10.000+ clientes. Neste momento, a arquitetura que antes era um monólito já não atenderá mais ao meu negócio. Então, o custo de planejar uma arquitetura escalável e eficiente compensa, pois possibilitará que meu software atenda a mais clientes futuramente.
Nem sempre devemos construir um software com conceito X ou tecnologia Y; tudo depende do negócio e de sua evolução. O papel fundamental de uma arquitetura de software é ajudar o negócio a crescer e não o contrário. Pense da seguinte forma: da mesma maneira que o ecossistema de desenvolvimento evolui, o negócio também evolui. O papel do arquiteto de software é alinhar esses dois universos de maneira que o negócio prospere, mas que também esteja alinhado com o mercado atual.
Todas as arquiteturas funcionam bem nos contextos em que são utilizadas. Se um software for desenvolvido sem a análise adequada do negócio, será um software falho, pois não estará alinhado ao contexto em que o negócio funciona.
ISSO É APENAS UMA OPNIÂO NÂO SIGA COMO REGRA.
Gostaria de discutir e saber sobre suas experiências e retornos sore o tema.
A arquitetura de software deve estar alinhada ao contexto do negócio. Não existe uma abordagem única que resolva todos os problemas; a escolha depende das necessidades e da fase de evolução do projeto.
Por exemplo, em um MVP com poucos clientes, uma arquitetura monolítica é mais simples e prática. Já em um sistema com milhares de usuários, uma arquitetura mais modular e escalável pode ser essencial para lidar com a demanda crescente.
O papel do arquiteto de software é garantir que a estrutura tecnológica acompanhe a evolução do negócio de forma eficiente. Planejar uma arquitetura escalável pode evitar problemas futuros, mas um excesso de complexidade no início pode ser desnecessário.
Todas as arquiteturas funcionam bem quando aplicadas no contexto certo. Um software sem análise cuidadosa pode falhar por não atender às demandas reais. Por isso, compreender o ambiente e adaptar a arquitetura conforme o crescimento é fundamental.
Você acredita que é melhor investir em uma arquitetura escalável desde o início ou evoluir conforme a necessidade?
A base é esta mesmo, você já está melhor que a média, faça o mais simples possível sem ser simples demais que não atenda as necessidades reais. Precisa de bastante experiência para fazer o mais certo e o erro sempre fará parte.
S2
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui no perfil também).