Olá ! É possível construímos uma aplicação Spring Boot onde não haja um nível de acoplamento muito alto a ponto de trocarmos o framework por um outro?? por exemplo pelo Play ou Java EE.
obrigado
Olá ! É possível construímos uma aplicação Spring Boot onde não haja um nível de acoplamento muito alto a ponto de trocarmos o framework por um outro?? por exemplo pelo Play ou Java EE.
obrigado
Oi Osnir,
Excelente pergunta!
Normalmente as pessoas costumam desenvolver softwares de maneira que eles fiquem muito acoplados com os frameworks utilizados, em especial o framework MVC, sendo que isso dificulta bastante no caso de um refactoring arquitetural
, cujo objetivo seja migrar a arquitetura com o menor impacto possível.
Existem alguns modelos de arquitetura que facilitam esse tipo de migração, pois focam em deixar o código de domínio da aplicação desacoplado do código de infraestrutura dela:
Se você montar a arquitetura do seu software seguindo algum desses modelos é possível sim criar uma arquitetura que facilita e simplifica a troca de qualquer framework.
Recomendo a leitura do post do Uncle Bob sobre clean architecture: https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html
Inclusive ele escreveu um livro posteriormente falando sobre o assunto: https://www.amazon.com.br/Clean-Architecture-Craftsmans-Software-Structure/dp/0134494164
No meu GitHub tem um projeto de exemplo que segue o Clean Architecture: https://github.com/rcaneppele/fj91-clean-architecture
Mas lembre-se que tudo tem seus trade-offs, pois nesse modelo de arquitetura você vai ter códigos repetidos e a complexidade do projeto será maior, além da estrutura dele ser bem "estranha" para quem não está acostumado.
Bons estudos!
Valeu Rodrigo !!!!!
Já estava estudando Onion Architecture para separar o projeto mais ou menos como abaixo, usando uma abordagem de DDD
Entities
Commands
Repositories
ValueObjects
Enums
Handlers
Queries
Services
O engraçado é que, no fundo as arquiteturas acabam sendo muito similares, porem resolvendo uma parte especifica do projeto de forma muito inteligente, inclusive acredito que em alguns casos teremos que utilizar o melhor de cada uma no mesmo problema.
Espero ver futuramente na plataforma algum treinamento que aborde desenvolvimento de aplicações em algumas destas arquiteturas no mundo Java
Muito obrigado mesmo pela resposta, ajudou muito. Seu curso foi top!!