Pessoal, decidimos (aqui no trabalho) usar o Angular para atualizarmos nossas telas que atualmente são em XML onde converte do XML para telas em html (um meio de deixar padrão em todas as telas do sistema).
Agora vamos querer substituir para usar angular e deixar apenas o que for componente (tipo campo de data, formulários, etc.) e o resto em html mesmo.
Só que nosso problema está na parte de:
Como fazer o build em java apenas das telas que forem alteradas e não de tudo.
Como fazer com que mantemos essa estrutura de salvar em BD para poder “subir” para produção sem precisar de gmuds (processos de implantar em ambiente de produção)
A estrutura do angular é independente do backend java. Eu optaria por criar um projeto isolado, apenas com o frontend e rodaria num httpd mesmo.
Eu não entendi essa questão, veja, a GMUD (gerência de mudanças) ela não se resume, apenas, a recompilar o artefato e colocar em produção.
Porém, você pode promover o código, tanto back como front, sem a necessidade de envolver nada além de gerar os artefatos e colocar nos respectivos ambientes.
Esse processo pode ser automatizado com a implementação de Maven + Jenkins
1ª dúvida: É que a estrutura que está hoje (legado que não podemos tirar ainda), está com esse processo de conversão, por isso do java.
2ª dúvida: A questão da implantação em produção, são os processos de gerar pacote e passar pelas “burocracias”, já sendo direto em BD, podemos alterar quando precisarmos, pelo contrário, tem que envolver áreas e tal.
Não conheço sobre essa parte de Maven + Jenkins, vou dar uma olhada.
Então, se você usar um apache httpd para o front angular, pode configurar de maneira que, achando a página, abre normal, não achando, direciona para a aplicação java.
Você já trabalhou com PHP ou qualquer linguagem de script? Basicamente, você pega a pasta dos códigos prontos e coloca no novo ambiente.
O que queríamos evitar é esse uso de servidores, porque se envolver, entra nessas burocracias que falei, pois não podemos ficar responsáveis pelos servidores, e ficaria em outra área.
Infelizmente, algumas coisas na vida são inevitáveis, afinal, é preciso quebrar os ovos para ter omelete, não?
Eu nunca vi o uso de angular dentro de um projeto java, pois a melhor abordagem é deixar em projetos distintos.
Funciona? Provavelmente, sim, agora, eu desaconselho.
Olha, basicamente, você vai criar web services REST, aí você pode usar algo como oauth para autenticar, fica muito mais simples de registrar acesso, validar sessão e controlar o acesso a banco de dados, visto que o angular não faz isso sozinho.
Hoje é uma linguagem “adaptada”… são telas eme xml que passam pelo Java para fazer essas validações e tem algumas telas de configuração que converte algumas TAGs (componentes) em TAGs HTML, como DIVs, Body, etc.
Então, voltamos a omelete e quebrar os ovos.
Existem arquiteturas mais recentes, principalmente no frontend, onde esse tipo de abordagem já não é mais utilizado.
Você tem sim, um (ou mais) template e vários pedaços que se encaixam nele e formam a página que você quer. No angular, por exemplo, chamamos isso de component.
Aliás, esse conceito não é novo, mas, tomou novas proporções com estes frameworks js e os chamados SPA.
É viável? É. É fácil de fazer a troca? Não.