Executando verificação de segurança...
2

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.

Carregando publicação patrocinada...
2

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?

1

Cara creio que sim, tudo depende do contexto, por exemplo, em uma empresa que possui certas restrições como fundos para investimento limitado, uma arquitetura escalável pode não ser a melhor opção, mas da mesma forma, uma empresa como mercado livre que possui um fundo de investimento alto, pode simplesmente utilizar uma arquitetura monolitica pois o sistema será utilizado internamente. Ambas as arquiteturas atendem N problemas, mas a questão é você definir o por que utilizar X arquitetura e não Y, isso vai mais da capacidade técnica da sua equipe, e do momento em que o negócio está. Todos os negócios possuem restrições e regras, o papel do arquiteto é justamente definir o sistema para que ele atenda a essas restriçõe/regras. Mesmo que você esteja em uma empresa de grande porte, se a sua equipe não possui capacidade técnica suficiente, não adianta fazer uso de um arquitetura complexa como microsserviços, e vice-versa, no fim tudo vai depender do contexto sobre o qual um sistema está sendo definido. No fim o arquiteto de software vai guiar a equipe para para melhor caminho, independente de tecnologia.

1

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).