Dividir aplicação em Jars para aproveitar em outros projetos
9 respostasResolvido
java
T
tiagohjava
Olá amigos,
Estou desenvolvendo uma aplicação e percebi que algumas partes dela poderão ser úteis para outras aplicações futuras, como por exemplo o cadastro de pessoas.
É uma boa prática eu criar um projeto que trate todas o cenário do cadastro de pessoas como modelo e persistência e gerar um .jar para ser aproveitado em outros projetos?
Se isso não é uma realidade, vai atrapalhar mais do que ajudar.
Cada aplicação tem sua própria necessidade e valor de serviço.
T
tiagohjava
Entendo. Você pode me indicar um projeto, do github, por exemplo, onde contemple um projeto que foi desenvolvido com arquitetura distribuída em componentes?
Venho do .net é costumo separar cada camada em um projeto. Estou um tanto confuso.
Obrigado.
J
javaflex
Você pode fazer o mesmo com Java. Só questionei a ideia de ficar se preocupando com aplicações futuras, caso estas não estejam planejadas.
javaflex, obrigado pela atenção. Vou desenvolver a aplicação, model e persistência em um projeto, que irei gerar em um .jar, o qual pretendo importar em outro projeto, que pode ser Web ou Desktop, onde desenvolverei os controller que utilizam as regras contidas no .jar, assim como faço no .NET.
Posto a experiência aqui depois.
J
javaflex
Se está preocupado mesmo com aplicações futuras, lembre-se que pode ter uma aplicação mobile precisando dessas informações e regras. Certamente seu .jar não vai funcionar na plataforma Android, iOS e Windows Mobile. O ideal pode ser disponibilizar serviços REST de acordo com as necessidades das aplicações client.
T
tiagohjava
Então, eu estava pensando nesta possibilidade da seguinte maneira, ter um .jar com o model, persistência. NO projeto que fosse implementar o Rest eu colocaria esse Jar como dependência, fazendo com que meus recursos utilizassem a implementação do Jar. Do jeito que vc esta falando posso criar um API que exponha recursos, que poderei usar em qualquer plataforma e linguagem. Foi isso que entendi?
J
Solucao aceita
javaflex
Exatamente, qualquer plataforma e linguagem atuais.
N
nel
@tiagohjava não somente é uma boa prática como bem sendo adotada em inúmeros projetos. O nome disso é “Single Responsability” e é um dos conceitos abordados no S.O.L.I.D e no Clean Code.
Você também pode estudar sobre microservices, pois pode estar indo de encontro a este cenário, fugindo do monolítico. De qualquer forma, é importante que haja separação de responsabilidades, pois é dessa forma que terás um projeto melhor organizado e muito mais fácil de manutenir e/ou implementar novas features.
Abraços.
A
andrecamilo
Estude arquitetura DDD do Eric Evans, desenvolvimento dirigido pelo domínio. Vai ajudar bastante.