Melhores práticas no 
desenvolvimento Java 
Oziel Moreira Neto 
Consultor
www.fortitori.com 
Novas tecnologias, 
velhos problemas.
www.fortitori.com 
Novas Tecnologias, 
Velhos Problemas 
● Processo de construção 
● Gerenciamento 
● Monitoramento 
● Per...
www.fortitori.com 
Novas Tecnologias, 
Velhos Problemas 
Processo de construção 
● Rational Unififed Process (RUP) 
● eXtr...
www.fortitori.com 
Novas Tecnologias, 
Velhos Problemas 
Gerenciamento 
● Inicio do projeto 
● Durante a construção 
● Dur...
www.fortitori.com 
Novas Tecnologias, 
Velhos Problemas 
Monitoramento 
● Geração e coleta de dados: 
– da aplicação (esfo...
www.fortitori.com 
Novas Tecnologias, 
Velhos Problemas 
Performance 
● Irrelevante para os 
programadores; 
● Lembrado pe...
www.fortitori.com 
Novas Tecnologias, 
Velhos Problemas 
Alta disponibilidade 
● Analistas não se preocupam; 
● Soluções i...
www.fortitori.com 
Novas Tecnologias, 
Velhos Problemas 
Alta disponibilidade 
● Preocupação dos Arquitetos de 
Software; ...
www.fortitori.com 
Novas Tecnologias, 
Velhos Problemas 
Evolutividade 
● Manutenção dos sistemas: 
– “como não sou eu que...
www.fortitori.com 
Novas Tecnologias, 
Velhos Problemas 
Prazo, Custo e Qualidade 
● Preocupação de todos; 
● Lei Universa...
www.fortitori.com 
Melhores práticas.
www.fortitori.com 
Melhores práticas 
● Java Blueprints 
● Design Patterns 
● Modelagem UML 
● Codificação Java 
● Especif...
www.fortitori.com 
Melhores práticas 
Java EE Blueprints 
● Estudar os Java EE blueprints; 
http://www.oracle.com/technetw...
www.fortitori.com 
Melhores práticas 
Java EE Design Patterns 
● Entender e saber aplicar; 
http://java.sun.com/blueprints...
www.fortitori.com 
Melhores práticas 
Modelagem UML 
● Documentação formal e eficaz; 
http://www.oracle.com/technetwork/ja...
www.fortitori.com 
Melhores práticas 
Codificação Java 
● Seguir o padrão de codificação JavaSoft 
http://www.oracle.com/t...
www.fortitori.com 
Melhores práticas 
Codificação Java 
● Documentar o código usando JavaDoc; 
http://www.oracle.com/techn...
www.fortitori.com 
Melhores práticas 
Codificação Java 
● Evitar acessar o JNDI a cada transação: 
– Usar sempre um Servic...
www.fortitori.com 
Melhores práticas 
Codificação Java 
● Envio de e-mail: 
– síncrono: usar o connector de JavaMail da J2...
www.fortitori.com 
Melhores práticas 
Codificação Java 
● JDBC: Sempre fechar: 
– Statement e ResulSet, ao fim das transaç...
www.fortitori.com 
Melhores práticas 
Codificação Java 
● JDBC: Evitar executar comandos SQL com Statement; 
– executar co...
www.fortitori.com 
Melhores práticas 
Codificação Java 
● JDBC: Evitar ler ResulSets aninhados; 
– substitua por SQL Queri...
www.fortitori.com 
Melhores práticas 
Especificações 
● Seguir a RISCA as especificações de 
codificação da JavaSoft: 
– “...
www.fortitori.com 
Melhores práticas 
Especificações 
● Validar os frameworks escolhidos com 
a especificação e produtos u...
www.fortitori.com 
Melhores práticas 
Especificações 
● Glassfish: 
– 2.0 > Java SE 5 e Java EE 5; 
– 3.0 > Java SE 6 e Ja...
www.fortitori.com 
Melhores práticas 
Especificações 
● AVK – Java Application Verification Kit 
– Verifica a porcentagem ...
www.fortitori.com 
Melhores práticas 
Arquitetura 
● 80% dos sistemas falham em: 
– prazo, custo e qualidade; 
– performan...
www.fortitori.com 
Melhores práticas 
Arquitetura 
● Usando e aplicando o MVC
www.fortitori.com 
Melhores práticas 
Arquitetura 
● Modelo básico de aplicações Java EE
www.fortitori.com 
Melhores práticas 
Arquitetura 
● Arquitetos de Software são vitais no 
processo de desenvolvimento, po...
www.fortitori.com 
Melhores práticas 
Arquitetura 
● Plataforma Java/J2EE: 
– muitas tecnologias 
envolvidas 
e integradas...
www.fortitori.com 
Melhores práticas 
● Cada desenvolvedor: 
– testes unitários por componente; 
validar o código; 
● Cada...
www.fortitori.com 
Melhores práticas 
Testes 
● Execução de testes: 
– de carga para identificar gargalos; 
– de stress pa...
www.fortitori.com 
Melhores práticas 
Testes 
● Controle de BUGs: 
– usar uma ferramenta de Bug Parade; 
– determinar base...
www.fortitori.com 
Serviços Profissionais 
Consultoria e Serviços?
Melhores práticas no 
desenvolvimento Java 
Oziel Moreira Neto 
oziel.neto@fortitori.com 
Perguntas 
e 
Respostas
Próximos SlideShares
Carregando em…5
×

Boa Práticas no Desenvolvimento Java Enterprise

546 visualizações

Publicada em

Enumera práticas símples e diárias que permitem diminuir os riscos de implementação de sistemas na plataforma Java Enterprise

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
546
No SlideShare
0
A partir de incorporações
0
Número de incorporações
9
Ações
Compartilhamentos
0
Downloads
10
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Boa Práticas no Desenvolvimento Java Enterprise

  1. 1. Melhores práticas no desenvolvimento Java Oziel Moreira Neto Consultor
  2. 2. www.fortitori.com Novas tecnologias, velhos problemas.
  3. 3. www.fortitori.com Novas Tecnologias, Velhos Problemas ● Processo de construção ● Gerenciamento ● Monitoramento ● Performance ● Alta disponibilidade ● Evolutividade ● Prazo, Custo e Qualidade
  4. 4. www.fortitori.com Novas Tecnologias, Velhos Problemas Processo de construção ● Rational Unififed Process (RUP) ● eXtreme Programming (XP) ● Scrum ● Oriented Object Analisys and Design Quer ter sucesso? Escolha um e USE!
  5. 5. www.fortitori.com Novas Tecnologias, Velhos Problemas Gerenciamento ● Inicio do projeto ● Durante a construção ● Durante os testes ● Durante a implantação ● Durante a manutenção Gerenciar SEMPRE!
  6. 6. www.fortitori.com Novas Tecnologias, Velhos Problemas Monitoramento ● Geração e coleta de dados: – da aplicação (esforço nos testes); – da infra-estrutura (esforço na implantação); – em ambos (esforço na produção); ● Execução de projeções – plano de capacidade (usuários X consumo); Monitorar SEMPRE!
  7. 7. www.fortitori.com Novas Tecnologias, Velhos Problemas Performance ● Irrelevante para os programadores; ● Lembrado pelos analistas; ● Esquecido pela implantação; ● Sofrido pela produção; Medir a performance SEMPRE!
  8. 8. www.fortitori.com Novas Tecnologias, Velhos Problemas Alta disponibilidade ● Analistas não se preocupam; ● Soluções inadequadas ou inviáveis; ● Alta complexidade; ● Preocupação dos Arquitetos; Arquitetura e modelo computacional!
  9. 9. www.fortitori.com Novas Tecnologias, Velhos Problemas Alta disponibilidade ● Preocupação dos Arquitetos de Software; Arquitetura e Padrões
  10. 10. www.fortitori.com Novas Tecnologias, Velhos Problemas Evolutividade ● Manutenção dos sistemas: – “como não sou eu que vou ter de arrumar isso, vou deixar assim mesmo...” (pensamento dos programadores) ● Preocupação de arquitetos e analistas; Componentizar para EVOLUIR!
  11. 11. www.fortitori.com Novas Tecnologias, Velhos Problemas Prazo, Custo e Qualidade ● Preocupação de todos; ● Lei Universal: – “não dá para fazer um filho com nove mães em um mês” (desconhecido) ● Desafio: fazer com qualidade, dentro do prazo e sem custos excessivos. Como equilibrar?
  12. 12. www.fortitori.com Melhores práticas.
  13. 13. www.fortitori.com Melhores práticas ● Java Blueprints ● Design Patterns ● Modelagem UML ● Codificação Java ● Especificações e Arquitetura ● Testes
  14. 14. www.fortitori.com Melhores práticas Java EE Blueprints ● Estudar os Java EE blueprints; http://www.oracle.com/technetwork/java/javaee/blueprints/index.html ● Fazer provas de conceitos; ● Não se constrói código sem DOMINAR as tecnologias Java EE; Acumular conhecimento é essencial
  15. 15. www.fortitori.com Melhores práticas Java EE Design Patterns ● Entender e saber aplicar; http://java.sun.com/blueprints/patterns/ ● Consenso entre arquitetos e analistas; ● Resolvem TODOS os problemas sistêmicos (aplicação e infra); http://java.sun.com/blueprints/corej2eepatterns/Patterns/ USAR Design Patterns
  16. 16. www.fortitori.com Melhores práticas Modelagem UML ● Documentação formal e eficaz; http://www.oracle.com/technetwork/java/javaee/documentation/index.html ● Linguagem comum para analistas, arquitetos, programadores e gerentes; ● Facilitador em todos os processos; MODELE antes de construir!
  17. 17. www.fortitori.com Melhores práticas Codificação Java ● Seguir o padrão de codificação JavaSoft http://www.oracle.com/technetwork/java/codeconvtoc-136057.html ● Seguir a plataforma adequada: – J2EE 1.4 – J2SE 1.5 – Java EE 5 – Java SE 6 ● Não usar métodos deprecated; ● Não usar Legacy Collections (Vector e Hashtable);
  18. 18. www.fortitori.com Melhores práticas Codificação Java ● Documentar o código usando JavaDoc; http://www.oracle.com/technetwork/java/javase/documentation/index-137868.html ● Logar SEMPRE, e adequadamente todas as exceções capturadas; ● Manter dados no HttpSession somente se necessário! (quando?) ● Escolher as Collections de acordo com seu uso! (Ref. Core Java Vol. II e Java 6 Collections)
  19. 19. www.fortitori.com Melhores práticas Codificação Java ● Evitar acessar o JNDI a cada transação: – Usar sempre um ServiceLocator com cache de EJBHome, DataSource, MailSession, Queue, QueueConnectionFactory, Topic, TopicConnectionFactory ou qualquer recurso corporativo! Quer ter performance? USE o ServiceLocator!
  20. 20. www.fortitori.com Melhores práticas Codificação Java ● Envio de e-mail: – síncrono: usar o connector de JavaMail da J2EE! – assíncrono: combinar JMS com JavaMail (J2EE 1.3>) – JAMAIS CONECTAR DIRETAMENTE COM O SMTP; Quer ter performance? USE o Connector JavaMail!
  21. 21. www.fortitori.com Melhores práticas Codificação Java ● JDBC: Sempre fechar: – Statement e ResulSet, ao fim das transações SQL; – Connection ao fim da transação Web/EJB; ● Durante uma transação Web ou EJB, DEVEMOS usar somente uma Connection; USE o DAO Pattern!
  22. 22. www.fortitori.com Melhores práticas Codificação Java ● JDBC: Evitar executar comandos SQL com Statement; – executar comandos SQL via PreparedStatement; http://download.oracle.com/javase/tutorial/jdbc/basics/prepared.html – executar StoredProcedures via CallableStatement; http://download.oracle.com/javase/tutorial/jdbc/basics/storedprocedures.html – em ambos os casos usar Bind de Parâmetros usando os setters; Quer ter performance? USE Bind de Parâmetros!
  23. 23. www.fortitori.com Melhores práticas Codificação Java ● JDBC: Evitar ler ResulSets aninhados; – substitua por SQL Queries usando JOIN; SQL> SELECT c.course_name, c.period, e.student_name 2 FROM course c, enrollment e 3 WHERE c.course_name = e.course_name 4 AND c.period = e.period Economize recursos no acesso a dados usando JOINs!
  24. 24. www.fortitori.com Melhores práticas Especificações ● Seguir a RISCA as especificações de codificação da JavaSoft: – “funciona no JBOSS mas não funciona no WebSphere” (pensamento do desenvolvedor) http://download.oracle.com/javaee/ OBEDEÇA as especificações!
  25. 25. www.fortitori.com Melhores práticas Especificações ● Validar os frameworks escolhidos com a especificação e produtos usados: – Struts, Hibernate, Avalon, Xalan, FOP, Spring, etc. Verifique se o framework é suportado!
  26. 26. www.fortitori.com Melhores práticas Especificações ● Glassfish: – 2.0 > Java SE 5 e Java EE 5; – 3.0 > Java SE 6 e Java EE 6; ● JBoss AS – 4.0 > Java SE 5 e Java EE 5; – 5.0 > Java SE 6 e Java EE 6;
  27. 27. www.fortitori.com Melhores práticas Especificações ● AVK – Java Application Verification Kit – Verifica a porcentagem de aderência da aplicação ás especificações da JavaSoft – Indica as falhas permitindo as correções necessárias – http://java.sun.com/j2ee/avk/
  28. 28. www.fortitori.com Melhores práticas Arquitetura ● 80% dos sistemas falham em: – prazo, custo e qualidade; – performance, segurança e gerenciamento ● A arquitetura da aplicação deve garantir as qualidades sistêmicas: – performance, segurança e gerenciamento; ● A habilidade da equipe deve garantir: – prazo, custo e qualidade;
  29. 29. www.fortitori.com Melhores práticas Arquitetura ● Usando e aplicando o MVC
  30. 30. www.fortitori.com Melhores práticas Arquitetura ● Modelo básico de aplicações Java EE
  31. 31. www.fortitori.com Melhores práticas Arquitetura ● Arquitetos de Software são vitais no processo de desenvolvimento, pois: – sistemas distribuídos são complexos; – muitas tecnologias envolvidas e integradas; – modelos orientados á objetos; – falta de domínio do todo pelos envolvidos; – disseminador de conhecimento; – validador do uso das boas práticas;
  32. 32. www.fortitori.com Melhores práticas Arquitetura ● Plataforma Java/J2EE: – muitas tecnologias envolvidas e integradas;
  33. 33. www.fortitori.com Melhores práticas ● Cada desenvolvedor: – testes unitários por componente; validar o código; ● Cada equipe: – testes integrados por módulos; validar a integração; ● Homologador: – testes integrados funcionais completos; validar o negócio; Testes
  34. 34. www.fortitori.com Melhores práticas Testes ● Execução de testes: – de carga para identificar gargalos; – de stress para identificar os níveis de qualidade; ● Ferramentas: – JUNIT e CACTUS, Compuware, JProbe, etc. TESTE tudo e sempre!
  35. 35. www.fortitori.com Melhores práticas Testes ● Controle de BUGs: – usar uma ferramenta de Bug Parade; – determinar baselines de entrega; ● Ferramentas: – FindBugs, JLint, PMD, CheckStyle, etc. TESTE tudo e sempre!
  36. 36. www.fortitori.com Serviços Profissionais Consultoria e Serviços?
  37. 37. Melhores práticas no desenvolvimento Java Oziel Moreira Neto oziel.neto@fortitori.com Perguntas e Respostas

×