Esta track irá abordar o que você precisa fazer para reduzir significativamente as falhas de desenvolvimento de software e como reparar as suas causas para que eles não reapareçam. O lema é aprender com os erros! AntiPatterns destacam os problemas mais comuns que a indústria de software enfrenta e ao mesmo tempo fornece as soluções para que você possa reconhecer esses problemas, mostrando que o Software Configuration Management (SCM) não é nem muito duro e nem muito complicado.
8. • POO de maneira inteligente
o Otimização de uma estrutura/processo
• Qualidade e reusabilidade de código
• Soluções indicada para cenários específicos
Design Patterns
12. Solução comum e recorrente para
determinados tipos de problemas com efeitos
colaterais muito negativos e indesejáveis.
Anti-Pattern
Um Anti-Pattern pode te deixar em uma situação pior do que a de início.
14. Anti-Pattern de Arquitetura
Boa arquitetura é um fator crítico para o sucesso do
desenvolvimento do sistema.
Stovepipe system
15. Intellectual Violence
Falas Típicas:
“Utilizei um schema validator para poder validar se era possível o marshalling
daquele stub”
“Esta classe trabalha com o conceito de autômato-finito de três estados para
fazer a busca em back-tracking em uma árvore binária”
Problema: Membros da equipe conversam de teorias e termos desconhecidos
pelos demais.
Solução: estimular a difusão de conhecimentos dentro da equipe
Anti-Pattern de Arquitetura
16. Reinventing the Wheel
Falas Típicas:
“Escrevemos uma classe para manipular XML
melhor do que as classes oficiais do C++!”
“A ferramenta de UML era muito ruim, por isso decidimos implementar uma
outra...”
Problema: Decisão de reimplementar tecnologias já existentes ou fazer “do jeito
da equipe” atrasam e confundem o projeto.
Solução: Buscar e pesquisar a melhor solução e utilizar os padrões.
Anti-Pattern de Arquitetura
18. Golden Hammer
Falas Típicas:
“Utilizamos XML para representar os objetos. E também para servir como
banco de dados, troca de mensagens, armazenar imagens codificadas,
substituir as páginas html, e também para...”
Problema: Um conceito ou tecnologia familiar é aplicado de forma errada, para
resolver todo e qualquer problema.
Solução: Estudo de novas idéias e soluções, treinamento e
exposição a novos paradigmas permite pensar em soluções
mais adequadas
Anti-Pattern de Desenvolvimento
19. The Blob
Falas típicas:
“Para manipular qualquer tipo de documento,
utilizamos a classe UtilidadesDocumento. Os 145
métodos dela permitem ler e salvar documentos .doc, .xls,
.txt, .rtf, .html, .xml... Uma beleza!”
Resumo: Classes são implementadas ao estilo procedural, algumas com
centenas de métodos e outras apenas como depósitos de dados.
Solução: Redistribuição de responsabilidades (SoC) e reengenharia
Anti-Pattern de Desenvolvimento
25. 1. Conhecer e saber aplicar Design Pattern.
2. Estudar Anti-Pattern
Dicas para ser um bom desenvolvedor
26. Por onde estudar?!
Design Patterns: Elements of
Reusable Object-Oriented
Software
GOF
AntiPatterns and Patterns in
Software Configuration
Management
- Coloque em prática.
- Discuta sobre determinado pattern
com desenvolvedores mais
experientes.
Começo fazendo uma pergunta. O que é design patterns?
Padrão é uma coisa boa. Torna-se um referencial. Aliás, um bom referencial!
Por exemplo se formos ver adiante...
O padrão de beleza é um referencial.
Ana Paula Padrão também.. Por que não!? =)
Criacionais – Estruturais – Comportamentais
Dizendo em poucas palavras, DP é ...
O que é um antipadrão?
Anti-pattern (Antipadrões), definir um vocabulário da indústria para os processos comuns defeituosos e implementações dentro das organizações.
- forma literária que descreve uma solução que ocorre um problema que gera conseqüências muito negativas.
- pode ser o resultado de um gerente ou desenvolvedor o que se pode fazer melhor.
- não ter conhecimento ou experiência suficiente na resolução de um determinado tipo de problema
- não ter aplicado um padrão perfeitamente bom no contexto errado.
- proporcionar experiência no mundo real em reconhecer problemas recorrentes na indústria de software e fornecer um remédio detalhado para os dilemas mais comuns.
- apresentar um plano detalhado para a inversão dessas causas subjacentes e implementação de soluções produtivas.
efetivamente descreve as medidas que podem ser tomadas em vários níveis para melhorar o desenvolvimento de aplicações, o projeto de sistemas de software, e na gestão eficaz de projetos de software.
=> melhorar a produtividade de software em "soluções" que refatorado pode evitar alguns desses obstáculos.