Refatoração básica e obrigatória
Denilson Telaroli
Março / 2014
Oque é Refatoração?
● Processo de restruturação de código-fonte
existente (Code refactoring – Wikipedia)
● Intimamente ligado a Padrões de Projetos
Objetivos
● Legibilidade
● Manutenibilidade
● Reaproveitamento
Sintomas de quando aplicar
● Precisou copiar/colar código
● Abriu um código alheio e não entendeu o que
faz
● Muitos blocos/encadeamentos condicionais
● Identificou linhas de código iguais
● Identificou linhas de código parecidas,
mudando apenas os valores de dados
Views
● Expressões com valores
– Dificultam a manutenção
– Pode ser substituido por helper
– Refatoração: Substituir valor temporário por consulta
Views
● Regras de view complexas
– Bad smell mais comum e normalmente são espalhados pelos sistemas
– Força o desenvolvedor a conhecer toda a api (inverso de encapsulamento)
– Podem ser traduzidas em palavras que refletem regras de negócio
– Normalmente podem ser substituidas por helpers
– Refatoração: Extrair método
Classes
● Extrair função
– Uma função deve ter uma e somente uma operação
Classes
● Injeção de parametros
– Serve pra funções/métodos e construtores
– O problema é mais grave em APIs com DI
– Refatoração: Introduzir objeto parâmetro (facade)
● No Ruby é possível usar hash para o mesmo propósito, evitando a classe facade.
Classes
● Introduzir parâmetro
Classes
● Introduzir parâmetro

Refatoração básica e obrigatória

  • 1.
    Refatoração básica eobrigatória Denilson Telaroli Março / 2014
  • 2.
    Oque é Refatoração? ●Processo de restruturação de código-fonte existente (Code refactoring – Wikipedia) ● Intimamente ligado a Padrões de Projetos
  • 3.
  • 4.
    Sintomas de quandoaplicar ● Precisou copiar/colar código ● Abriu um código alheio e não entendeu o que faz ● Muitos blocos/encadeamentos condicionais ● Identificou linhas de código iguais ● Identificou linhas de código parecidas, mudando apenas os valores de dados
  • 5.
    Views ● Expressões comvalores – Dificultam a manutenção – Pode ser substituido por helper – Refatoração: Substituir valor temporário por consulta
  • 6.
    Views ● Regras deview complexas – Bad smell mais comum e normalmente são espalhados pelos sistemas – Força o desenvolvedor a conhecer toda a api (inverso de encapsulamento) – Podem ser traduzidas em palavras que refletem regras de negócio – Normalmente podem ser substituidas por helpers – Refatoração: Extrair método
  • 7.
    Classes ● Extrair função –Uma função deve ter uma e somente uma operação
  • 8.
    Classes ● Injeção deparametros – Serve pra funções/métodos e construtores – O problema é mais grave em APIs com DI – Refatoração: Introduzir objeto parâmetro (facade) ● No Ruby é possível usar hash para o mesmo propósito, evitando a classe facade.
  • 9.
  • 10.