MundoJava 38 - Boas Práticas Java EE - Acerte na sua escolha!

Olá Pessoal!

Seguem os destaques da nova revista MundoJava!!!

Os 10 Maus Hábitos dos Desenvolvedores JSF
Descubra quais são os principais erros na construção de aplicações JSF e aprenda como evitá-los.
Autores: Rafael Ponte e Tarso Bessa

Aprendendo Padrões Java EE com uma História Interativa
Aprenda sobre padrões Java EE através das consequências de suas próprias escolhas em uma história de padrões interativa, onde o final é você quem decide.
Autores: Roberto Perillo e Eduardo Guerra

Auditoria Avançada de Persistência com Hibernate, JPA e Envers
Aprenda como implementar um robusto e completo sistema de auditoria de persistência com o Hibernate em conjunto com o Envers
Autores: José Yoshiriro Ajisaka Ramos e Márcia Amaral

Automatização de testes de persistência com FIT, DBUnit e HSQLDB
Obtenha o máximo de qualidade, eficiência e clareza escrevendo testes de integração automatizados com FIT, DbUnit e HSQLDB.
Autores: Alexandre Gazola

Gerenciando e Otimizando Campanhas de Links Patrocinados com a API do Google AdWords
Aprenda estratégias para aumentar a audiência do seu site com a poderosa API de publicidade do Google.
Autores: Eric Gomes

Made in Brazil ? VRaptor 3: Guerrilha Web
Entenda como esse framework web ataca diretamente os pequenos problemas do dia-a-dia.
Autores: Lucas Cavalcanti e Adriano Almeida

Tendências em Foco: Desenvolvedores java também precisam fazer boas apresentações!
Veja algumas dicas para fazer boas apresentações e saber valorizar o seu trabalho.
Autor: Taurion

Provocação Digital: Existem métricas eficientes para estimar desenvolvimento OO?
Uma discussão sobre algumas metodologias disponíveis para estimativa do tempo de desenvolvimento
Autor: Glauco dos Santos Reis

Comentem!!! Quero muito saber o que acharam da estória de padrões interativa…

[]s

[quote=Guerr@]Auditoria Avançada de Persistência com Hibernate, JPA e Envers
Aprenda como implementar um robusto e completo sistema de auditoria de persistência com o Hibernate em conjunto com o Envers
Autores: José Yoshiriro Ajisaka Ramos e Márcia Amaral

Automatização de testes de persistência com FIT, DBUnit e HSQLDB
Obtenha o máximo de qualidade, eficiência e clareza escrevendo testes de integração automatizados com FIT, DbUnit e HSQLDB.
Autores: Alexandre Gazola

Provocação Digital: Existem métricas eficientes para estimar desenvolvimento OO?
Uma discussão sobre algumas metodologias disponíveis para estimativa do tempo de desenvolvimento
Autor: Glauco dos Santos Reis[/quote]
achei bacana estes artigos, já pensei em escrever sobre isto, mas falta tempo.
parabéns guerra!!!

Aguardando anciosamente a minha chegar! :smiley:

É isso aí pessoal, aguardamos o feedback de vocês!

abraços

Eu ja li alguma coisa (compro minha revista na banca).

Eu gostei da materia “interativa”, o formato eh bacana (eu lia revistas e pequenos livros com historias assim a muitos anos atras, bateu um saudosismo). Soh acho que essa coisa de “se vc fizer isso, vai acontecer aquilo” funciona na ficcao, no mundo real eh meio furado. Mas o conteudo esta interessante.

A coluna do Taurion sempre esta legal, eh sempre a primeira que leio. E sobre as “metricas eficientes”, achei soh razoavel, nao trouxe nada muito diferente e nao respondeu direito a pergunta do titulo.

Dei soh uma folheada no resto, a materia sobre os maus habitos de JSF parece estar legal tbem.

Abraco

Este artigo é muito interessante. Ele deixa vc decidir e ver onde isso lhe leva.
Dada a recente discussão sobre patterns este artigo mostra porque patterns são importantes e saber escolhê-los é mais importante ainda.

Mais exercícios deste tipo seriam interessantes até mesmo para uso em escolas e cursos, porque infelizmente a nova onda é achar que patterns é inútil e quadrado.

Para compensar, este artigo é totalmente o inverso. Tudo bem que é uma provocação, mas a que propósito em pleno seculo XXI já quase na segunda decada do seculo ainda estamos falando de pontos de função ? nostalgia ?

O artigo explica rápidamente pontos de funçao e pontos de caso de uso , e o que todo o mundo está cansado de saber : não funciona. Depois pois scrum no barulho. O autor diz que scrum não tem mecanismos para estimar o desenvolvimento.
Isto é tão absurdo em tantos niveis que não sei nem por onde começar. Era essa a provocação ?

Se scrum tem um product backlog, com todas as estorias com seus story points. Como se pode dizer que scrum não tem forma de estimar ? Afinal o que seria planning poker senão uma forma de estimar ? Esta noção de que scrum não permite estimar é incompreensivel para mim e sinceramente me enoja.

Claro, o artigo foca em estimar custo e prazo numa velada tentativa comum de violar o triangulo de projeto e fala que embora o scrum tenha os story points e tal não é possivel chegar em prazos e custos. Scrum sim permite estimar!.

A provocação funcionou e essa é a minha resposta.

A história interativa foi muito bem bolada. fiquei depois fazendo todos caminhos possiveis, pra ver o que acontecia…hehehe

As outras matérias estão muito boas, exceto a matéria sobre métricas OO. Realmente, acho que não chegou-se a nenhuma conclusão, seria melhor se houvesse um exemplo teórico, um caso de uso simples para ser medico com todas as métricas apresentadas, ai sim daria pra ter uma comparação melhor.

Não sei porquê, mas eu nunca gostei das matérias sobre SOA. Acho que deve ser implicancia minha, quando abri a revista e vi que não tinha nenhuma, fiquei até feliz! kkkkk

abraços!

Eu ja li algumas partes , mto bom o artigo sobre Jsf do rafael ,mas gostei muito , mto msm do artigo
Aprendendo Padrões Java EE com uma História Interativa :Autores: Roberto Perillo e Eduardo Guerra e uma visao bem diferente me diverti mto lendo.

Estou lendo a materia. Nos 10 maus habitos. no habito 8 uso do redirect. achei q a sulução ficou um pouco vaga. Tive problemas com o que ele chamou de double submit. No core JavaServer Faces segunda edição fala do uso da tag e explica justamente q ela pode ser usada e que apaga os dados da requisicao. achei interessante e ia fazer um teste. quando acabei de ler na revista que é uma má pratica.

Nesse caso uma enfase maior nesse problema seria bom. muitas pessoas tem esse problema. como o usuario final do sistema web é acostumado usar os botoes do browser e o recarregar… isso eh um problema comum.

Guerra, vocês já fizeram algum artigo sobre melhora de desempenho e alta performance para aplicações Java em sistemas críticos? Se não, fica a sugestão de pauta.

Fazia tempo que eu não lia a MJ, mas essa está interessantíssima, não vou perder não.

hehe… acho que esse é um dos motivos de eu ter deixado a revista um pouco de lado, os caras estavam realmente obcecados por esse assunto :slight_smile:

A Revista aborda sim temas que são importantes mas com repetição sobre tecnologias já observadas em outros artigos, uma forma de fazer novas implementações ou mesmo sobre soluções que envolve sempre os mesmos assuntos.

Gostaria que a Revista fala-se mais sobre Python, a nova linguagem do GOOGLE o GO, SCALA entre outros frameWorks como DJANGO, e até mesmo sobre Visual Tersus um Open Source em Java, poderia questionar outros aspectos do Scrum assim como o Sergio Tarboda observou na estimativa sobre projetos e desenvolvimento, a revista as vezes se volta para assuntos que já é batido e sem muita sujestão.

[quote=jcracker]A Revista aborda sim temas que são importantes mas com repetição sobre tecnologias já observadas em outros artigos, uma forma de fazer novas implementações ou mesmo sobre soluções que envolve sempre os mesmos assuntos.

Gostaria que a Revista fala-se mais sobre Python, a nova linguagem do GOOGLE o GO, SCALA entre outros frameWorks como DJANGO, e até mesmo sobre Visual Tersus um Open Source em Java, poderia questionar outros aspectos do Scrum assim como o Sergio Tarboda observou na estimativa sobre projetos e desenvolvimento, a revista as vezes se volta para assuntos que já é batido e sem muita sujestão.[/quote]

Só nao podemos esquecer o nome da revista: Mundo JAVA

Uma coisa é falar de linguagens que rodam nao VM como scala, groovy, agora sair totalmente do contexto ja não da.

Nao se chama Mundo TI.

[quote=thimor]Estou lendo a materia. Nos 10 maus habitos. no habito 8 uso do redirect. achei q a sulução ficou um pouco vaga. Tive problemas com o que ele chamou de double submit. No core JavaServer Faces segunda edição fala do uso da tag e explica justamente q ela pode ser usada e que apaga os dados da requisicao. achei interessante e ia fazer um teste. quando acabei de ler na revista que é uma má pratica.

Nesse caso uma enfase maior nesse problema seria bom. muitas pessoas tem esse problema. como o usuario final do sistema web é acostumado usar os botoes do browser e o recarregar… isso eh um problema comum.[/quote]

Thimor,

O mau hábito não é o fato de usar o redirect, mas sim utilizá-lo da forma indevida. O exemplo da má prática do artigo foca no uso do redirect para facilitar a vida de filtros de segurança que verificam, através da URL, se o usuário autenticado tem ou não acesso a uma página. Como em JSF a navegação é por forwards (exceto Facelets), alguns desenvolvedores vão pelo caminho mais fácil, que é usar redirect sempre para forçar que a requisição passe pelos seus filtros.

Use o redirect quando ele fizer sentido em um problema, como no caso da prevenção de double submits.

Abraços.

Vai ter “jotassefista” botando meu nome na boca do sapo, mas achei muito estranho os 10 maus hábitos. A impressão que tenho é que os 10 maus hábitos está para o JSF assim como o Core J2EE Patterns está para o EJB: Joga a culpa dum framework problemático nas costas dos desenvolvedores (que, supostamente, não sabe usar os padrões estabelecidos), ao invés de admitir que o problema está no próprio design.

Veja, fui um desenvolvedor JSF por muito tempo, e hoje desenvolvo um site em VRaptor. E não penso nem meia vez ao recomendar este ao invés daquele. E porque? Porque nunca ouvi falar em maus hábitos dos desenvolvedores VRaptor. Porque não há reinvenção da roda. E todos aqueles padrões comumente encontrados no desenvolvimento web são benvindos no VRaptor, não apenas “maus hábitos”.

E não me venha dizer que JSF é melhor para aplicações em workflow ou com estado persistente na página, isso é melhor resolvido com JQuery e afins (aliás, os melhores sites “stateful” são feitos em Javascript, não JSF). “Ah não! Javascript é complicado e não funciona no IE!” Paciência, aprenda!

“Jotassefistas” de carteirinha, agora podem jogar tomates. Não vou treplicar o meu comentário.

[quote=Leonardo3001]Vai ter “jotassefista” botando meu nome na boca do sapo, mas achei muito estranho os 10 maus hábitos. A impressão que tenho é que os 10 maus hábitos está para o JSF assim como o Core J2EE Patterns está para o EJB: Joga a culpa dum framework problemático nas costas dos desenvolvedores (que, supostamente, não sabe usar os padrões estabelecidos), ao invés de admitir que o problema está no próprio design.

Veja, fui um desenvolvedor JSF por muito tempo, e hoje desenvolvo um site em VRaptor. E não penso nem meia vez ao recomendar este ao invés daquele. E porque? Porque nunca ouvi falar em maus hábitos dos desenvolvedores VRaptor. Porque não há reinvenção da roda. E todos aqueles padrões comumente encontrados no desenvolvimento web são benvindos no VRaptor, não apenas “maus hábitos”.

E não me venha dizer que JSF é melhor para aplicações em workflow ou com estado persistente na página, isso é melhor resolvido com JQuery e afins (aliás, os melhores sites “stateful” são feitos em Javascript, não JSF). “Ah não! Javascript é complicado e não funciona no IE!” Paciência, aprenda!

“Jotassefistas” de carteirinha, agora podem jogar tomates. Não vou treplicar o meu comentário.
[/quote]

Entao la vai o primeiro tomate podre!! hehe brincadeiras a parte, não ha o que argumentar, ja é sabida de todos no forum a sua paixao por action based, e a sua birra por component based, entao: Contra gosto não ha argumentos!

a respeito deste artigo, visto que ainda não o li, mas sobre métricas, fico imaginando até quando iremos precisar de tantas especificações funcionais/não-funcionais, casos de usos, diagramas UML, ou seja, até quando precisaremos de analistas ?

acho que se cortarem os analistas e/ou transformarem em desenvolvedores, de forma a ter uma equipe uniforme e que todos tivessem quase o mesmo nível de conhecimento, não nos preocuparíamos tanto assim com métricas, seja no setor público ou privado.

(bem foi um pequeno desabafo) :?

a respeito deste artigo, visto que ainda não o li, mas sobre métricas, fico imaginando até quando iremos precisar de tantas especificações funcionais/não-funcionais, casos de usos, diagramas UML, ou seja, até quando precisaremos de analistas ?

acho que se cortarem os analistas e/ou transformarem em desenvolvedores, de forma a ter uma equipe uniforme e que todos tivessem quase o mesmo nível de conhecimento, não nos preocuparíamos tanto assim com métricas, seja no setor público ou privado.

(bem foi um pequeno desabafo) :? [/quote]

Entao, supondo empresa privada, o que vai dizer ao seu cliente quando ele perguntar “em quanto tempo fica pronto?”??? E logo em seguida quando ele tambem perguntar “quanto vai custar? baseado em que?”??

Ta certo que algumas coisas enchem, mas as coisas estao ali por algum motivo.

[quote=fredferrao]Entao, supondo empresa privada, o que vai dizer ao seu cliente quando ele perguntar “em quanto tempo fica pronto?”??? E logo em seguida quando ele tambem perguntar “quanto vai custar? baseado em que?”??

Ta certo que algumas coisas enchem, mas as coisas estao ali por algum motivo.[/quote]
este tipo de metrica, em ponto de funcao e caso de uso, me incomoda faz bom tempo, não vejo muito valor, a não ser que me digam o contrário, então não vejo também motivação, a não ser um motivo para se por um fim nisto.

como falei, não li o artigo sobre métricas, mas agora vou antecipar esta leitura.

Ok. Ainda referente a materia dos 10 maus habitos o mau habito 3 referente ao acesso a metodos expostos. O exemplo utilizado pelo dataTable. Vi que esse mal hábito se enquadrou da forma que utilizo para paginar tabelas. Sempre que pagino uma tabela tenho q acessar o metodo getDadosDaTabela que faz uma consulta ao banco de dados. Nesse caso achei a solução valida. Porem nao achei ela adequada para resolver a paginação de tabelas ou pelo menos não ficou de forma implícita.

Minha opnião.