Do Inferno ao Céu em uma Semana

Estou aqui para contar uma pequena história sobre frustração e alegria em montar um ambiente de desenvolvimento para um portal web utilizando java.

Deixe-me apresentar, serei breve, sou programador java a 7 anos, 3 com java desktop e os demais com java web, já programei em outras linguagens, mas meu forte é java, fim.

Estou desenvolvendo o TCC para o curso de ADS e pensei, por que não utilizar Java, JSF, Primefaces, PostreSQL pois já que trabalho com essas tecnologias e me dou muito bem com elas.

Quando pensei em usar essas ferramentas não havia decidido qual o servidor de aplicação eu utilizaria, Jboss, Tomcat, Widfly, Jetty. Qual tecnologia utilizar, Javaee + CDI, Spring ou Sprint-boot. E nessa parte começaram os problemas, percebi que na vida de desenvolvedor java, nunca precisei me preocupar com ambiente, infra, compatibilidade de versões, ou quais tecnologias deveria utilizar, enfim, a dor de cabeça iniciou.

Nas empresas em que trabalhei existiam pessoas responsáveis pelo ambiente, deixando sempre organizado, com as bibliotecas compatíveis e só precisávamos programar, tudo fácil. A parte ruim disso é que me sinto um incompetente por não conseguir montar um projeto com essas tecnologias e dar prosseguimento ao TCC.

Ao todo foram 4 dias de sofrimento e tentativas frustradas, primeiro ambiente tentei usar Jboss 7, Primefaces, CDI, Jboss-weld e adivinhem, tive problemas ao subir a aplicação, tive problemas ao criar as telas ou o servidor de aplicação não subia, tive diversos problemas que não estou acostumado a lidar, desisti dessa stack e parti para outra. Jboss 7, Primefaces, Hibernate, Spring e outros erros começaram a acontecer, não subia, faltavam dependências, NoClassDefFoundErro aparecendo, então desisti dessa stack também.

A penúltima tentativa com essas tecnologias foi Tomcat, Thymeleaf, Spring-boot, e também não tive sucesso, achei meio trabalhoso os tratamentos que deveria fazer para campos obrigatórios, exibição de erros, percebi que teria bastante trabalho para montar um mini framework para ajustar ele as minhas necessidades e também não botei muita fé no Thymeleaf(pode ser muito bom, mas eu não botei muita fé).

Naquela semana de testes e definição de frameworks resolvi mudar radicalmente e testar o Spring-boot junto com o AngularJS, e para meu espanto, em dois dias terminei oque precisava ser entregue na primeira parte do projeto, não esta perfeito, tem uns bugs na interface, mas foram 6 telas entre 2 relatórios, 1 CRUD, e 2 consultas e login, tudo feito em 2 dias.

Pela experiência que tenho com Primefaces e Hibernate, CDI, Jboss na empresa tenho certeza que levaria no mínimo uns 7 dias trabalhados intensamente para terminar oque fiz em dois.

Confesso a vocês que no final do domingo foi difícil dormir de euforia(coisas de programador eu espero), estava feliz por não ter atrasado o desenvolvimento e por ter aprendido AngularJS em dois dias.

Não devo ter utilizado as melhores práticas do angular, vou me dedicar para melhorar o código nos próximos meses, mas o código ficou extremamente simples e fácil de dar manutenção.

Para finalizar, tenho certeza que escolhi tecnologias que colaboram para que o desenvolvimento se tornasse produtivo pois é muito mais fácil aprender o AngularJS e seus padrões do que aprender o JSF, quem já programou sabe o tanto de coisa que precisa ser escrita para funcionar perfeitamente, mas existe um legado ai,é preciso aprender ele também.

Considero boas as decepções que tive tentando montar os ambientes e falhando, procurando alternativas, bibliotecas compatíveis entre outros fatores, aprendi muito a cada tentativa e erro.

Meu pequeno desabafo foi esse, e espero poder compartilhar com vocês mais experiências boas com programação como essa.

Obrigado pela leitura, um abraço.

Não esqueçam de dar um like aqui em baixo, valeu.