Padrões de projeto (design patterns) foram criados originalmente para engenharia civil e foram aplicados à engenharia de software para melhorar a qualidade e reduzir custos de manutenção. O livro "Design Patterns" classificou padrões em criação, estruturais e comportamentais. A aplicação de padrões traz benefícios como confiabilidade, redução de custos e legibilidade, apesar de potencial complexidade inicial.
2. O que é um pattern?
• Patterns são padrões de projeto que foram criados originalmente
para atender a engenharia e construção civil em meados de 1970, seu
objetivo é documentar e disponibilizar a solução a problemas
recorrentes.
4. E deu certo
• Devido ao seu sucesso, esta prática foi aplicada também na
engenharia de software se tornando uma solução utilizada por
grandes empresas que buscavam melhorar a qualidade dos seus
softwares e baixar os custos com manutenção e retrabalho.
5. Você não precisa de novos JARs!
• O design Patterns diferente do que muitos imaginam, está quase
sempre atrelado a camada conceitual do projeto, no entanto algumas
tecnologias podem facilitar a aplicação de alguns patterns.
• Existem Patterns que são aplicados a linguagens de programação
especificas pois estão altamente relacionados aos recursos fornecidos
pela plataforma.
6. Organizando a casa...
• A referência mais importante relacionada a padrões de projeto é
o livro Design Patterns: Elements of Reusable Object-Oriented
Software (1995) dos autores Erich Gamma, Richard Helm, Ralph
Johnson e John Vlissides. Esses quatro autores são conhecidos como
“Gang of Four”(GoF).
• Nesta obra os patterns foram classificados em três categorias:
criação, estruturais e comportamentais
8. Benefícios
• Confiabilidade:
Devido ao constante uso e aprimoramento dos padrões as chances de
as expectativas serem atendidas é grande.
• Redução de custo:
Os padrões diminuem as margens de erro e o tempo de
desenvolvimento, tendo assim um impacto financeiro positivo no
projeto.
9. Benefícios
• Aprendizado:
Os padrões dão mais confiança ao desenvolvedor diminuindo a curva
da aprendizado do sistema.
• Comunicação:
Os padrões melhoram a comunicação técnica entre os
desenvolvedores, promovem um único idioma no setor de
desenvolvimento.
10. Benefícios
• Legibilidade de código:
Os padrões promovem um melhor entendimento do código alheio,
facilitando o desenvolvimento de novos módulos, detecção e correção
de bugs. Estima-se que um bug em produção pode custar 225% a mais
do que se fosse encontrado no processo de desenvolvimento.
11. Benefícios
• Melhor integração com testes:
Realizar testes em um código padronizado se torna uma tarefa muito
mais fácil, o que possibilita melhor cobertura de testes unitários.
12. Mas nem tudo são flores... :’(
• Escolha:
Devido a variedade de patterns pode ser difícil escolher o mais
adequado para a resolução do problema em questão.
• Complexidade inicial:
A implementação de patterns no início do projeto pode retardar as
primeiras entregas “palpáveis”. Este fato pode aumentar o tempo de
desenvolvimento de entregáveis.
13. Resultado satisfatório...
• Muitas empresas estão sendo beneficiadas pela utilização dos
patterns, a aplicação destes recursos importantes tem um impacto
muito positivo na qualidade do produto final, na facilidade e custo de
manutenção do mesmo.
• O desenvolvedor que aplica patterns cresce muito tecnicamente
e no entendimento da plataforma, além de absorver conhecimento e
experiência de grandes profissionais
14. Referências
• Livro – Design Patterns em Java (K19)
• Livro – Design Patterns com Java (Casa do Código)
• Site – GUJ (www.guj.com.br)
15. Obrigado :)
“Aquele que deixa se distrair por qualquer coisa,
terá sua mente enfraquecida e perderá o foco.”
- Virgílio por Dante Alighieri