Resumo TDC 2010 – Sábado
Continuando o post anterior com o resumo que o André fez, este post apresentará o resumo do sábado do TDC.
Primeira palesta: Como escolher API`s e Frameworks
Foi uma discussão com todos presentes sobre como escolher frameworks para seu projeto.
Pessoal também comentou sobre suas más experiências ao escolher frameworks.
Consenso geral: Escolher um framework que seja usando por muita gente, que esteja maduro e que tenha empresas E pessoas físicas por trás.
Essa escolha vai durar anos com você. E por isso, em algum momento, alguém novo vai falar “Quem foi o idiota que escolheu esse framework?” Natural pois a tecnologia está sempre evoluindo.
Mudar um framework custa muuuito caro e quase nunca se justifica.
Segunda palestra: Casos de sucesso com java
A Fabiane Nardon contou sobre sua experiência com arquiteta chefe no maior sistema JEE do mundo: O sistema de saúde pública da cidade de São Paulo, vencedor do Duke’s Choose Awards
Era em época de eleição, contrato assinado no fim de 2003. O sistema seria utilizado por 80 mil profissionais. 14 milhões de pacientes e tinha que ficar pronto em 10 MESES.
Chegou a ter 100 desenvolvedores participando(orçamento permitia isso). Tinha equipes fisicamente distantes.
Tecnologias: Repositório SVN. JSP/HTML, Struts1+Tiles+Validator, EntityBeans, SessionBeans e Message-Driven Beans. Era independente de Banco de dados usando SQL com CROSSDB, uma espécia de ORM da época. Ferramentas: Eclipse, ant e xdoclet para gerar os EJBs. Tinha +610 EJ’s. Vários órgãos internacionais vieram conhecer o sistema. O código fonte pode ser solicitado para a prefeitura de São Paulo.
Outro caso de sucesso foi na própria globalcode. Eles tem apenas 1 desenvolvedor dedicado para todos os seus sistemas.
Eles usam servidores da server4you, com Fedora, MySQL, JBossAS. JSP, JMS, MDB, JDBC, JPA, JasperReports, JSF com Facelets, RichFaces, Seam, URL Rewrite, Jquery e Mashups com blogger e twitter. Billing da PagSeguro, UOL
Na época criaram um framework caseiro chamado JAREF que juntava as principais tecnologias, mas que hoje acabou criando um problema pra eles devido a falta de integração com os demais padrões. principalmente JPA.
Teve também: Mobile Payment com JEE e JME
Mostrou as opções de pagamento via celular, via RFID, com NFC’s (especificação JSR-257)
E um projeto novo, usando QRCode com OTP e aplicativo Mopis, ainda em implementação e testes.
Terceira Palesta: JAVAFX na prática
Mostrou um joguinho. Comentou que a TV poderá ser “o pulo do gato” pra quem manjar de JavaFX.
Quarta palestra: Outras linguagens que rodam na JVM
Mostrou o groovy com sua produtividade por sem bem menos verboso, o repositório Grape e o sistema ERP open source: OFBIZ
Mostrou também o PHP rodando mais rápido que o seu interpretador padrão em C, com o Quercus, que inclusive permite usar classes java no código PHP.
Comentou sobre o PHPClasses.org, que possui implementações para vários problemas.
Quinta palestra: Dicas e Truques de Performance para JPA, JSF e JavaEE
Alem de algumas dicas de consulta jpql, por ex, o uso de join fetch, para obter todas as classes dependentes num relacionamento lazy, também o cuidado com paginação usando o setFirstResult e setMaxResult com relacionamentos eager em collections e o método clear para liberar objetos gerenciados não mais utilizados, o que achei mais importante foi a dica de utilizaçao dos caches, principalmente com os novos escopos: VIEW e CONVERSATION
O cache de nível1, que fica na instancia do EntityManager do usuário e mantem os objetos que ele esta utilizando no momento. É importante deixar a EntityManager aberta nesses escopos e deste modo evita o lazyInicializationException e fica muito mais responsivo.
O cache de nível 2, que fica na EntityManagerFactory e é compartilhado por todos os usuários. Nela é bom manter as entidades mais usadas que não sofrem muitas alterações.
Outra dica, quando precisar buscar uma lista de entidades que usa um outro subtipo com muitos objetos, fazer primeiro uma consulta prévia de todos esses subtipos, que ficaram no cache e, deste modo, quando for realizar a busca da entidade principal, o framework ORM vai fazer muito menos selects, pois vai obter os subtipos do cache.
Quanto ao JSF, usar componentes com suporte a lazyload na camada web, reduzindo muito a geração do html retornado, que só vai renderizar se o usuario clicar.
Integrar a ViewHelper(pattern) com a camada de persistência com, se possível, o DataModel do JSF e, quando precisar de ordenação e filtro (por ex resultado paginado), usar o CriteriaBuilder(JPA). (tudo isso é JSF2)
Sexta palestra: Google vs Oracle e o que o OpenJDK tem a ver com isso?
o Bruno Souza contou a historia: em meados de 98~2000 ninguém tinha interesse em criar suas maquinas virtuais 100% compatíveis com o java. A M$ criou a sua própria implementação. A SUN, mais tarde processou e ganhou. Depois disso houve a liberação da JVM sobre licença GPL. Surgiu um projeto de maquina virtual 100% livre e compatível: Apache Harmony. A Sun não aceitou homologar essa implementação (eles queriam manter os direitos sobre plataforma mobile). Enquanto isso a google pegou as bibliotecas do Harmony e criou a sua implementação, chamada Dalvik, que é onde roda o ANDROID.
A Sun tentou varias vezes negociar com o google sem sucesso. Mais tarde a oracle comprou a Sun, que agora esta processando a Google por quebra de patente. E quando se fala de “patente” de software, xiiii é péssimo para a comunidade open source. Ninguém sabe o que vai acontecer.
Loading ...
Leave a comment