1 / 15

Visão crítica sobre padrões: Over Engineering

Visão crítica sobre padrões: Over Engineering. Professor: Hyggo Almeida. Padrões de projeto. Um padrão de software é... a descrição de um problema que ocorre com freqüência e a base de uma solução para este problema Reutilização em inúmeros projetos Solução elegante e adaptável

ciqala
Download Presentation

Visão crítica sobre padrões: Over Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Visão crítica sobre padrões: Over Engineering Professor: Hyggo Almeida

  2. Padrões de projeto • Um padrão de software é... • a descrição de um problema que ocorre com freqüência • e a base de uma solução para este problema • Reutilização em inúmeros projetos • Solução elegante e adaptável • Reutilização de idéias... não de código! Visão crítica sobre padrões: OverEngineering

  3. Padrões de projeto • Padrões para atribuição de responsabilidades (GRASP) • Expert • Creator • Low Coupling • High Cohesion Visão crítica sobre padrões: OverEngineering

  4. Padrões de projeto • Padrões de projeto (Gangue dos Quatro) • Padrões de criação • Factory Method • Singleton • Abstract Factory Visão crítica sobre padrões: OverEngineering

  5. Padrões de projeto • Padrões de projeto (Gangue dos Quatro) • Padrões estruturais • Adapter • Composite • Decorator • Façade Visão crítica sobre padrões: OverEngineering

  6. Padrões de projeto • Padrões de projeto (Gangue dos Quatro) • Padrões comportamentais • Iterator • Strategy • Observer • Template Method Visão crítica sobre padrões: OverEngineering

  7. Quais seriam as potenciais mudanças deste software? Padrões de projeto: “E se?” • Redução do impacto da evolução... • Padrões de projeto (Design Patterns) Requisitos Software flexível (ganchos para facilitar evolução) Desenvolvedor

  8. Problemas com o “E se?” • Problemas... • Não é possível prever todos os cenários de evolução • Quanto mais ganchos, mais tempo e custo de desenvolvimento Estimativa (funcional) Software Quais seriam as potenciais mudanças deste software? + flexível Tempo Over-engineering Custo Desenvolvedor

  9. Over Engineering • Engenharia demais!!!! • Cliente é mais importante que o desenvolvedor... • ... Funcionalidade é mais importante que flexibilidade... • ... Código funcional é mais importante que documentação!!! “Quando se constrói um código mais sofisticado do que ele precisa ser!!!”

  10. Over Engineering: como evitar? • O segredo é balancear técnicas de flexibilidade e pragmatismo de entrega de código funcional ao cliente Padrões Flexibilidade Código funcional Entrega

  11. Solução de Extreme Programming • Foco em Codificação/Testes • O mais simples possível • Entregas freqüentes com código funcional • Preciso do retorno do cliente • Refatoramento com padrões • Uma vez funcional, de acordo com a necessidade, melhoremos a qualidade do projeto e do código

  12. Mensagem final: cuidado! • Use padrões quando o “cheiro” do projeto estiver ruim... • Em geral, “tá na cara” a necessidade! • Não force a utilização!!! • Não é possível prever o futuro... • ... então não tente preparar o software para todas mudanças possíveis!!! • O cliente é o seu senhor... • ... não coloque a elegância do seu projeto na frente do relógio dele!!!

  13. O que vimos hoje? • Visão crítica sobre padrões • Revisão final • Qual o impacto do “E se”? • Over Engineering Visão crítica sobre padrões: OverEngineering

  14. O que veremos na próxima aula? • Threads • Introdução • Implementação Visão crítica sobre padrões: OverEngineering

  15. Dúvidas? ? Visão crítica sobre padrões: OverEngineering

More Related