quarta-feira, 31 de agosto de 2016

Tagged under:

Encontro JavaBahia - 14 de Setembro 2016



O JavaBahia juntamente com a FTC de Feira de Santana promoverá um encontro no dia 14/09 visando disseminar a cultura de desenvolvimento Java. Nesse encontro vão ser abordados temas como comunidade Java, JVM, especificação JPA e no final todos ficaram disponíveis para uma boa conversa em que todos poderão tirar dúvidas e compartilhar suas experiências.
O evento é gratuito. Participe!
Também estamos presentes no Meetup: http://www.meetup.com/Java-Bahia/

segunda-feira, 22 de agosto de 2016

Tagged under:

Encontro JavaBahia - 27 de Agosto 2016 - Auditório Unijorge Comércio - Inscrições Encerradas

Retomando o ciclo de atividades de 2016, teremos nossa reunião presencial agora em Agosto, que vai acontecer no Auditório da Unijorge no Comércio, na Rua Miguel Calmon, 42, Edf. São Paulo. Mas não é só isso: Preparamos conteúdos super interessantes pra você!!! Dá uma conferida:
  • Java User Group – O que é e como eu posso participar? - Jefferson Moreira
  • Comunidade Java no mundo - A experiência de um membro do nosso JUG - Otávio Santana
  • Carreira do desenvolvedor Java: O que eu preciso saber? - Antônio Lázaro
  • JPA de A à Z: Porque conhecer a JPA? - Mateus Malaquias
  • Encerramento - Neste momento temos um espaço aberto para você contribuir e falar o que quiser!!!
Ok, mas como eu faço pra participar?

Precisamos enviar os nomes dos inscritos para a segurança da Unijorge, portanto tivermos que encerrar as inscrições para este encontro. Mas não fique triste, em Setembro teremos mais um encontro. Fique ligado no site do JavaBahia!!!

As inscrições estão sendo feitas pelo formulário no link https://goo.gl/forms/gyTykV1OXyPQ7REu1, então corre lá e garante sua vaga, porque são limitadas!!!



Ah, já ia me esquecendo: Através da parceria com os cursos tecnológicos da Unijorge, poderemos emitir certificado. Já dá uma força na carga horária!

Encontro JavaBahia - Agosto/2016
Local: Auditório da Unijorge Comércio Prédio IV - Rua Miguel Calmon, 42, Edf. São Paulo - Comércio Salvador-BA CEP: 40.015-060 71 (https://goo.gl/maps/oFTN5rpo3YU2)
Data: 27/08/2016 (sábado), das 09:00 às 12:00



quarta-feira, 3 de agosto de 2016

Tagged under:

JPA de A à Z - Vantagens e Desvantagens

No post anterior tentei instigar você a conhecer a JPA e a entender o motivo dessa especificação ser tão utilizada atualmente. No post de hoje vamos analisar as vantagens e desvantagens dessa especificação, a ideia é que com o pouco da minha experiência passemos a entender que toda solução pode se torna um fardo se utilizada incorretamente. Sinta-se convidado a compartilhar suas experiências nos comentários.

  • VANTAGENS:
  1. Indepêndencia: Utilizando JPQL ou Criteria conseguimos ter uma indepêndencia com os bancos de dados porque agora fica a cargo da implementação da JPA em converter sua consulta em SQL nativo. Agora as ações básicas de insert, update e delete também ficam por conta da implementação. Com isso podemos criar uma única aplicação que vai se comunicar com diversos bancos de dados.
  2. Reduz a necessidade de conhecer SQL: Não me leve a mal, ainda penso que conhecer pelo menos o básico de SQL é fundamental para qualquer programador. Todavia você consegue trabalhar com a JPA sem esse conhecimento.
  3. Dê adeus a conversão de querys em objetos: No post anterior você teve um gostinho do trabalho que braçal necessário para se obter um objeto com o JDBC. Justamente para não perdemos mais tempo com isso nasceram as implementações da JPA que são capazes de realizar esse trabalho para gente.
  4. Otimização automática: Nem sempre temos o trabalho de otimizar uma consulta, mas esse é um ponto que considero critico porque muda de implementação para implementação e nem sempre temos o resultado desejado. Caso você precise ter um sistema em que as consultas sejam sempre otimizadas recomendo que utilize o Batoo no lugar do Hibernate por exemplo.
  5. Cache de dados: Cache de dados é muito util para diminuir a quantidade de requisição ao banco de dados, o chace de dados também faz com que o desempenho da sua aplicação melhore caso você tenha cuidado com o custo de RAM necessário.

Não me leve a mal a JPA é uma ferramenta muito poderosa e muitas vezes pensamos que ela é a solução para tudo, também não é incomum querer resolver todos os problemas do mundo com ela. Não vejo nada de errado nisso, desde que sempre se preocupe com os pontos abaixo:

  • DESVANTAGENS:
  1. Base de dados legada: Nem sempre foi possível executar triggers, functions e procedures direto no banco de dados. Atualmente podemos fazer isso, todavia temos que ter cuidado com o impacto que isso pode gerar ao modelo objeto-relacional e a indepêndencia a respeito dos bancos de dados. Hoje em dia por exemplo passo boa parte da minha atividade migrando e otimizando procedures no Java justamente por isso.
  2. Chaves compostas: AH! Que raiva tenho de utilizar @embedded, trabalhar com chaves compostas na JPA significa aumentar drasticamente a complexidade de nossas entidades. Em determinadas situações para executar um update ou insert por exemplo precisamos gerar muito mais código.
  3. Curva de aprendizado para além do básico: Fazer o feijão com arroz utilizando JPA é fácil e muito pratico, isso é bom porque atrai sempre novas pessoas. Mas quando passamos para um nível mais avançado como por exemplo utilizar chaves compostas, chace, criteria e relacionamentos bidirecionais as pessoas começam a encontrar diversas dificuldades. Esse aqui é justamente um dos motivos de existir a serie JPA de A à Z aqui no blog.
  4. Indepêndencia facilmente quebrada: Quebrar a indepência de banco não é difícil. Alguma vezes não tem jeito e precisamos apelar para o SQL nativo seja porque a otimização com a especificação não ficou suficientemente boa ou ate mesmo quando precisamos fazer uma união de consultas.
  5. Unir consultas: Esse pra mim é o defeito mais grave na especificação, simplesmente não conseguimos realizar união de consultas. Claro que podemos utilizar alguns artifícios para simular uma união, mas na grande maioria das vezes é necessários optar pelo SQL nativo e ai vai embora a independência de banco de dados.

Enfim, hoje quis apresentar a vocês o meu ponto de vista sobre a JPA de uma forma mais detalhada por meio das minhas experiências com a especificação. Claro que a JPA não deixa de ser uma arma poderosa mesmo tendo essas desvantagens, por isso fica aqui o meu apelo para que ocorra um planejamento ao utilizar a JPA.