Apresentacao tdc 2012

  • View
    1.063

  • Download
    2

Embed Size (px)

Text of Apresentacao tdc 2012

  • Como Podemos Salvar o Corao do Software

    Jorge Oleques

  • ApresentaoPs Graduando em Engenharia de Software pela InfNet/FGVGraduado em Analise e Desenvolvimento de Sistemas pela FTECBrasilDesenvolvedor JavaDesenvolvedor PHPScrum MasterPO - Product Owner

    Blog: joleques.blogspot.com.brTwitter: @jorgeolequesGitHub : github.com/jolequesEmail : joleques@gmail.com

  • SumarioIntroduoFatores de RiscoSinaisTransioPilares Para TransioTeste de UnidadeRefactoryPadres GRASPExemplos e Discusso Concluso

  • Quando um software traz consigo um comportamento complexo e desprovido de um bom design, torna-se difcil refatorar ou combinar elementos. Comeam a aparecer duplicaes a partir do momento em que o desenvolvedor no mostra confiana em prever todas as implicaes de uma mudana.(Erick Evans, 2010,DDD 2Ed)Introduo

  • Fatores de RiscoColesterol AltoHipertenso ArterialDiabetesFumoEstresse

  • Fatores de RiscoRegras de Negcio espalhadaCdigo RuimDomnio mal modeladoFalta da Linguagem nicaProblemas na OO

  • SinaisCorpoSensao de presso no peitoSuor frio e intensoDesconforto acompanhado de tonturaDesmaioNuseasFalta de ar

  • SinaisSoftwareManuteno difcilCdigo duplicado Mtodo longo Classe grande Lista de parmetros longaCdigo difcil de entenderDificuldade de adicionar novas funcionalidades

  • Corao SaudvelCada Coisa no seu lugarCdigo LimpoLinguagem UbiquaCoberto por testes

  • Transio Escrever cdigo que possa ser entendido e executado por uma mquina fcil, todavia escrever cdigo que possa ser lido e entendido por humanos bem mais complexo (Joshua Kerievsky)

  • Pilares Para TransioTestes de Unidade RafactoryPadres GRASP

  • Teste de Unidade Para refatorar, o primeiro passo sempre o mesmo. Eu preciso construir um conjunto slido de testes para cada sesso do cdigo...

    ...eu sou humano e ainda cometo erros. Ento, eu preciso de testes slidos.Martin Fowler, 1999

  • TDD (Test Drive Development)

  • Maior qualidade do cdigoDiminuio dos BUGsOrientao na criao do modeloMaior cobertura do cdigo

    Benefcios do TDD

  • RefactoryDevido dificuldade para se manter um cdigo considerado ruim, um cronograma de entrega de um produto poder atrasar em vista do tempo extra que ser necessrio para realizar a tarefa de alterao no cdigo.(MARTIN, 2009).

  • RefactoryMelhoria ContinuaEliminar Maus CheirosCdigo LimpoModelo Flexvel

  • Tipos de RefatoraoExtrair Mtodo (Extract Method)Mover Mtodo (Move Method)Mover Atributo (Move Field')Extrair Classe (Extract Class)Encapsular Atributo (Encapsulate Field)Renomear Mtodo (Rename Method)Subir Mtodo (Pull Up Method)Subir Atributo (Pull Up Field)Descer Mtodo (Push Down Method)Descer Atributo (Push Down Field)Extrair Sub-classe (Extract Subclass)Extrair Super-classe (Extract Superclass)

  • Padres GRASP (General Responsibility Assignment Software Pattern)"Entender responsabilidades essencial para o bom projeto orientado a objetos". (Martin Fowler)

  • GRASPPrincpios Fundamentais para a Atribuio de Responsabilidades em projetos OOQualidadeNo sobrecarregar Objetos

  • Padres GRASPEspecialista da InformaoCriadorAlta CoesoBaixo AcoplamentoControlerPolimorfismoInveno Pura IndireoVariaes Protegidas

  • Exemplos e DiscussoQuem ama a prtica sem teoria como um marinheiro navegando sem os lemes e sem bussola, no sabendo assim nunca onde vai chegar..(Leonardo da Vinci)

  • Especialista da InformaoAlta CoesoBaixo Acoplamento

    Problema: Dado que exista pelo menos uma vaga nas salas da prova escolhida pelo candidato, quando o candidato realizar a inscrio, ento o candidato deve ser inserido na sala e a inscrio realizada. Exemplos e Discusso - Expert

  • Cdigo LegadoExemplos e Discusso - Expert

  • Teste de UnidadeExemplos e Discusso - Expert

  • RefactoryExtrair Mtodo (Extract Method)Mover Mtodo (Move Method)Renomear Mtodo (Rename Method)Exemplos e Discusso - Expert

  • Cdigo RefatoradoExemplos e Discusso - Expert

  • Diminuio das dependnciasFlexibilidade do CdigoCdigo Limpo e Claro

    AnliseExemplos e Discusso - Expert

  • Problema: Dado que eu saiba o tipo de fase, Quando eu listar as Provas ou os Candidatos, Ento o sistema pode apresentar as provas para o candidato escolher ou montar relatrio com os candidatosExemplos e Discusso - Variao ProtegidaVariao ProtegidaPolimorfismo

  • Cdigo LegadoExemplos e Discusso - Variao Protegida

  • Cdigo LegadoExemplos e Discusso - Variao Protegida

  • Teste de UnidadeExemplos e Discusso - Variao Protegida

  • Extrair Classe (Extract Class)Extrair Super-classe (Extract Superclass)Descer Mtodo (Push Down Method)RefactoryExemplos e Discusso - Variao Protegida

  • Cdigo RefatoradoExemplos e Discusso - Variao Protegida

  • Diminuio das dependnciasFlexibilidade do CdigoDiminuio da ComplexidadeCdigo Limpo e Claro

    AnliseExemplos e Discusso - Variao Protegida

  • Cdigo LegadoExemplos e Discusso Inveno Pura

  • Teste de UnidadeExemplos e Discusso Inveno Pura

  • Extrair Classe (Extract Class) Extrair Mtodo (Extract Method)RefactoryExemplos e Discusso Inveno Pura

  • Cdigo RefatoradoExemplos e Discusso Inveno Pura

  • Diminuio das dependnciasManuteno SimplesCdigo Limpo e Claro

    AnliseExemplos e Discusso Inveno Pura

  • Diminuio das dependnciasManuteno SimplesCdigo Limpo e Claro

    AnliseExemplos e Discusso Inveno Pura

  • ConclusoDiminuio das dependnciasManuteno SimplesCdigo Limpo e ClaroFlexibilidade do CdigoDiminuio da Complexidade

  • ConclusoProjeto Legado

  • ConclusoProjeto Refatorado

  • ObrigadoBlog: joleques.blogspot.com.brTwitter: @jorgeolequesGitHub : github.com/jolequesEmail : joleques@gmail.com

    *************