1
resposta

[Sugestão] Quando decidiar por arquitetura x ou y?

Achei legal a abordagem hands on. Realmente é um grande problema estudar arquitetura, pois quando se lê um livro como Clean Architecture ao chegar no final fico com uma sensação de subjetividade imensa. Fica aquela dúvida: “Será que de fato eu entendi o que autor quis dizer?”

Quando se fala de adoção arquitetural surgem mais dúvidas ainda. Depois de obter diversas informações sobre boas práticas, benefícios e etc. Torna-se difícil apontar os aspectos importantes na tomada de decisão para cada tipo de arquitetura.

Se existisse algum conteúdo com exemplos de tipos de projetos que se relacionam com cada tipo de arquitetura seria bem interessante.

Tenho um aplicação desenvolvida há 3 anos, trata-se de um mock server API. Ele serve de laboratório para diversas abordagens técnicas. Possui algumas decisões ruins embarcadas nele, devido as necessidades de agilidade em sua aplicação para um cliente específico em um momento crítico. Hoje o projeto passa por uma modularização visando promover melhor manutenibilidade, adotei conceitos de SOLID desde o início o que facilita este trabalho.

Por se tratar de meu cobaia, pretendo criar uma nova brach para um refactoring adotando os conceitos de Clean Code (na prática mudam alguns detalhes).

Ok! Para uma aplicação de prática tecnica ótimo, mas me vem uma pergunta: Como eu saberia dizer se a adoção de Clean Archtecture, seria algo ideial para este projeto? Que aspectos eu deveria ficar atendo para responder esssa pergunta?

É um projeto desenvolvido em Java e Spring Boot. Alguns aspectos abordados pelo Clean Archtecture o Sprigng Boot já provém como o padrão Repository (provido pelo Spring Data), já desaclopa totalmente a infraestura de dados do domínio da aplicação, isso ocorre também em outras abstrações relacionadas a Logs, Filas…

Então. Que aspectos olhar para tomar uma boa decisão arquitetural?

1 resposta

Olá Alexandre!

Primeiramente, parabéns pela iniciativa de buscar conhecimento sobre arquitetura de software e por estar aplicando os conceitos de SOLID e Clean Code em seu projeto.

Realmente, a tomada de decisão para escolha de uma arquitetura pode ser um desafio, mas existem alguns aspectos que podem ser levados em consideração. Um deles é a escalabilidade do projeto. Se você espera que o projeto cresça e precise lidar com uma grande quantidade de dados e usuários, uma arquitetura que permita a escalabilidade horizontal pode ser mais adequada.

Outro aspecto é a manutenibilidade do código. Uma arquitetura que permita a fácil manutenção do código pode ser mais vantajosa a longo prazo, especialmente se você espera que o projeto tenha uma vida útil longa.

Além disso, a escolha da arquitetura pode depender do tipo de aplicação que você está desenvolvendo. Se é uma aplicação web, mobile ou desktop, por exemplo, pode haver arquiteturas mais adequadas para cada caso.

No seu caso específico, como você já está utilizando conceitos de SOLID e Clean Code, pode ser interessante avaliar se a adoção da Clean Architecture traria benefícios adicionais para a manutenibilidade e escalabilidade do seu projeto.

Por fim, é importante lembrar que a escolha da arquitetura não é uma decisão definitiva e pode ser revista e ajustada ao longo do desenvolvimento do projeto.

Espero ter ajudado e bons estudos!