Galera, estou para começar a desenvolver um ERP web em java.
Estou lendo a respeito de Hibernate, JPA, JBoss e SOAP. Porém não tenho um caminho fixo pra seguir, o que vocês me aconselham?
O Erp trabalha com NF-e, NFC-e, Sintegra entre outras coisas.
Estava pensando em utilizar o protocolo de comunicação SOAP e desenvolver em EJB com JBoss, o que acham? Vocês tem algum material, artigo, coisa do tipo pra estudo que possa me ajudar ??
Pense bem, muito bem mesmo.
EJB é engessado, complexo e, particularmente, acho de difícil manutenção.
Obviamente que as versões mais recentes são, sim, mais tranquilas que a 2.5, mas, mesmo assim, não se compara em complexidade com uma aplicação Spring.
Precisa, mesmo, usar SOAP e, penso eu, tanto XML? Não é mais fácil e mais adequado usar RESTful e, para o que é possível, usar JSON, deixando o xml só para o que é realmente fundamental?
R
Rafael_Victor
Shoow amigo, conversei com um camarada hoje a respeito ele me disse a mesma coisa.
Vou aderir então, trabalhar com WS e Spring, você terei mais alguma ferramenta pra me indicar que vá ajudar no desenvolvimento? Ex. Hibernate, JPA, JSF…
P
peczenyj
qual é o problema que vc quer resolver com SOAP?
R
Rafael_Victor
peczenyj nenhum até o momento, estou apenas estudando a melhor tecnologia a ser utilizada
J
javaflex
Primeiro a necessidade, depois a tecnologia. Dependendo do caso até PHP atende, custando menos em desenvolvimento e infra.
P
peczenyj
pois bem, SOAP é uma solução onde vc especifica como 2 sistemas diferentes vão interagir.
se vc tem essa necessidade, vc tem um sistema distribuido. se vc tem um sistema distribuido é interessante estudar o CAP Theorem, afinal uma desses dois sistemas pode parar de funcionar e babau.
se vc não tem um sistema distribuido, vc pode ter um monolito, ou seja um sistema unico que faz tudo. o q não é ruim. um monolito sozinho se cair vc tem indisponibilidade. para vc ter 2 ou mais monilitos funcionados juntos (seja para ter disponibilidade ou aguentar a carga), atras de um load balancer, é interessante estudar arquiteturas shared nothing.
a arquitetura de uma solução é muito trabalhosa de mudar, é dificil de testar ( as vezes vc precisa de tudo pronto para executar um teste de carga e ver que podia ser melhor ) e é algo que demanda experiência. se vc investe na arquitetura, a implementação pode ate ter problemas mas eles provavelmente serão problemas isolados que podem ser corrigidos sem muitos efeitos colaterais.
P
programador1225
Não vai ter como fugir do SOAP, o WS da Secretaria de Fazenda para emissão de NF-e é SOAP
R
Rafael_Victor
javaflex, mas o estudo da tecnologia foi baseado na necessidade, achei que EJB + SOAP poderia ser melhor por questão de segurança. Mas vi que á suporte para rest e Spring.
Porém como o amigo programdor disse o WS da Secretaria da Fazenda é SOAP, ai complica. Se eu fizer um WS em Rest vou ter problemas na hora de implementar o WS da NF-e ?
P
peczenyj
vc vai usar Rest no que?
hoje em dia tem varias aplicações web com muito javascript acessando um front-end rest.
se o seu frontend é rest, é php, é jsp, é cgi-bin isso não muda o fato de que uma parte do seu sistema de backend vai falar via SOAP com a Secretaria da Fazenda.
uma coisa não exclui a outra.
P
programador1225
Se não quiser de jeito algum usar SOAP, existem APIs Rest pagas para a emissão de NF-e
J
javaflex
Voce tem a necessidade somente de consumir um webservice SOAP da Secretaria da Fazenda, e não criar webservice SOAP ou REST.
R
Rafael_Victor
Nada contra SOAP se tiver como usar esses dois protocolos faço assim mesmo, sem problemas.
O que eu to buscando é um caminho mais RAD possível, a empresas tem esse ERP como produto de venda. Trabalham hoje atualmente com Delphi7, Firebird, Vidalink, eu quero mudar esse sistema, coloca-lo em WEB via RESTFULL por ser mais prático.
Não sei como funciona esse desenvolvimento da melhor maneira, por isso estou agregando conhecimento. Teriam algum material pra me ajudar ?
R
Rafael_Victor
É um sistema grande não envolve apenas NF-e, possui também Sintegra, NFC-e, NFS-e, eSocial, tudo isso e mais um pouco…
P
peczenyj
olha eu acho q com tecnologias como JSF ( isso ainda existe ? ) vc tem uma boa produtividade para fazer telas, que em geral toma bastante tempo do desenvolvimento.
o resto é maven e reuso de codigo pronto.
edit: não sou especialista, posso estar errado
J
javaflex
Java está muuuito longe de ser opção “RAD”.
P
peczenyj
houve uma epoca q .Net era bem redondinho pra implementar telas … não sei qual o estado hoje
R
Rafael_Victor
javaflex depende do programador e do nível de conhecimento sobre essa linguagem. É a que tenho mais afinidade até o momento.
Qual outra aconselharia pra esse tipo de programação?
J
javaflex
Se está falando de component based, essa forma de trabalho morreu faz um tempo para novos projetos, pelo menos pra comunidade .NET. Pros anos 2000 atendia que era uma maravilha, as exigencias do mercado eram bem bobas em UI. Mas passou a ser desencorajado por ser engessado para os tempos atuais.
Em relação a telas, é mais jogo o programador buscar “RAD” diretamente no lado client, a exemplo do css Bootstrap.
O mais “RAD” hoje no .NET Core é ASP.NET Razor Pages. Compete com PHP mas sob o poder do .NET.
J
javaflex
A escolha tem que ser sua após experimentar cada sugestao. Já trabalhei com várias e .NET me faz focar mais no negócio do que em complicações de código, assim como era no Delphi se for comparar na mesma categoria desktop, pois web é outro mundo, não é um simples client/server, são duas aplicacoes, cliente (browser) e server (qualquer programa controlando requisições HTTP).
PHP também é muito produtivo e indicado para pequenas e médias empresas.
J
javaflex
Se for usar Java, Spring Boot com Spring MVC e JDBCTemplate pode ser a combinação mais leve, produtiva e sem atrapalhar a flexibilidade. No lado client, Boostrap vai ser uma mao na roda se nao tiver designer na equipe.
R
Rafael_Victor
Javaflex, essas ferramentas já seria suficiente para construir um erp web bacana ?
J
javaflex
Depende dos requisitos, para maioria dos casos dá. O “bacana” vai depender mais do desenvolvedor do que da tecnologoa x ou y. Até com PHP pode fazer algo bacana. Importante é o resultado, minha queixa do Java é de nao ser produtivo comparado a outras.
R
Rafael_Victor
Entendo seu receio. Partiria pra outra linguagem se fosse projeto de autoria minha, mas a empresa quer em Java por achar que é uma linguagem dominante ficaria mais difícil de se tornar defasada…
J
javaflex
Deixa a decisao com eles mesmo. Defasada a linguagem Java já é, mas todas as tecnologias citadas nao vao acabar tao cedo, sao muito fortes.
R
Rafael_Victor
Nunca trabalhei com essas ferramentas, aconselha eu criar o projeto java web no netbeans e implementar primeiro o Spring MVC e o Spring Boot? Só para depois partir para o bootstrap ou seria melhor eu montar a interface no bootstrap e ir trabalhando as outras funções logo em seguida?
F
FearX
É?
J
javaflex
Quando tiver property ficará menos defasada. Lambda veio tarde, com tantos legados sem esse uso, mas já foi um avanço.
F
FearX
Entendi.
J
javaflex
Da minha experiencia:
1 - Analise de requisitos
2 - Definir funcionalidades
3 - Prototipos para aceitacao do cliente
4 - Modelagem de dados
5 - Back-end e front-end em paralelo, ideal outra pessoa em paralelo no front.
Back-end de sua escolha: Java com Spring Boot por exemplo. Considerando que ja tenha boa base de java web (servlets).
Front-end: HTML/JS/jQuery/CSS com auxilio do Bootstrap.
No geral:
Feedback constante com o cliente.
Implementar e entregar funcionalidades de forma incremental de acordo com o que for priorizado com o cliente.