Padrões de Projeto - Design Patterns e Anti-Patterns

2,445 views

Published on

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.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,445
On SlideShare
0
From Embeds
0
Number of Embeds
439
Actions
Shares
0
Downloads
2
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

  • 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.
  • Padrões de Projeto - Design Patterns e Anti-Patterns

    1. 1. Padrões de Projeto Design Patterns e AntiPatterns Rodrigo Kono MVP Microsoft - MCP, MCT, MCTS, MCPD @rodrigokono
    2. 2. O que é Design Patterns?
    3. 3. É um padrão!
    4. 4. Tipo um padrão de vida?!
    5. 5. Tipo um padrão de beleza?
    6. 6. Tipo a Ana Paula Padrão?
    7. 7. Solução reutilizável para problemas recorrentes no desenvolvimento software OO. Design Patterns
    8. 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
    9. 9. Tipos de Patterns Criacionais Estruturais Comportamentais Design para composição de classe e objeto Comunicação de objetos da classe Criação de objetos / Instaciamento de classes
    10. 10. Que padrão é esse?!
    11. 11. Anti-Pattern (antipadrões)
    12. 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.
    13. 13. Tipos de Anti-Patterns Arquitetura Desenvolvimento Projetos Problemas comuns nas fases de codificação e desenvolvimento de aplicações Problemas que atingem a gerência de pessoal e de projetos Problemas comuns nas fases de concepção, projeto e desenho de Sistema.
    14. 14. Anti-Pattern de Arquitetura Boa arquitetura é um fator crítico para o sucesso do desenvolvimento do sistema. Stovepipe system
    15. 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. 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
    17. 17. Anti-Pattern de Desenvolvimento Utilizam várias abordagens de refatoração formais e informais. Gold plating
    18. 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. 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
    20. 20. Saiba como evitar um acidente!
    21. 21. Aprenda com os erros
    22. 22. Mas conheça os problemas para não cair em armadilhas!
    23. 23. Sistemas baseados em padrões têm mais qualidade
    24. 24. Equipes que evitam anti-pattern têm menos surpresas desagradáveis
    25. 25. 1. Conhecer e saber aplicar Design Pattern. 2. Estudar Anti-Pattern Dicas para ser um bom desenvolvedor
    26. 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.
    27. 27. Rodrigo Kono www.rodrigokono.net contato@rodrigokono.net @rodrigokono Obrigado!

    ×