• Acesso Ilimitado
  • Certificado (Para inscritos)
  • Suporte às dúvidas
  • 10 horas de curso

Curso

Aqui você vai aprender a diferenciar um código sujo de um código limpo e, claro, vou te passar as técnicas para você conseguir limpar o código passo a passo sem alterar o comportamento observável dele.

Robert C. Martin

Código Limpo

  • 36 Aulas
  • 10 Horas de Curso
Assistir
  • Introdução
  • Nomes significativos
  • Funções
  • Testes unitários
  • Classes
  • Mais código limpo...

Simplicidade

"Um código limpo é simples e direto. Ele é tão bem legível quanto uma prosa bem escrita. Ele jamais torna confuso o objetivo do desenvolvedor."
Grady Booch - Livro código limpo.

Função grande com muita informação

Antes

Esse código até que não está difícil de entender, pois é só uma função, mas agora imagina um sistema grande com várias funções como essa, que não faz uso apropriado de abstrações. Caso você tenha que adicionar ou alterar alguma funcionalidade, você vai ter que ficar procurando onde você deve mexer no meio de vários detalhes.

Depois

Agora cada responsabilidade foi separada na sua devida função. Então, por exemplo, se você tem que alterar as mensagens da rodada, você só mexe na função que exibe as mensagens, se você tem que incrementar os pontos em 2 em vez de 1, você só mexe na função que incrementa os pontos. Assim diminui o risco de outra funcionalidade quebrar quando você fizer alguma alteração.

Função refatorada em mais funções com cada informação extraída para sua respectiva função

Introdução

Mais Refatorações

Todas refatorações foram feitas durante as aulas.

  • Bef
  • Aft
  • Bef
  • Aft
  • Bef
  • Aft
  • PrimeGenerator

    Antes

    Essa função está muito grande e possui variáveis de uma letra só, e isso é ruim porque você tem que ficar lembrando o significado dessas variáveis sempre que vê elas mais abaixo.

  • PrimeGenerator

    Depois

    Agora, com funções pequenas que fazem apenas uma coisa, consigo colocar um Nome Significativo em cada uma delas, deixando a classe tão expressiva quanto uma prosa bem escrita.

  • GildedRose Kata

    Antes

    Esse código é de uma loja que atualiza o "quality" e "sellIn" dos itens no final de cada dia. Cada item tem uma regra diferente de atualização; por isso, tem esse monte de condicionais aí.

  • GildedRose Kata

    Depois

    Criamos uma classe para cada tipo de item e cada classe tem os métodos "updatedQuality" e "updatedSellIn", com implementação conforme a regra do item.

  • ClientsSummary

    Antes

    Uma função relativamente grande com um nome que não reflete no que ela realmente faz.

  • ClientsSummary

    Depois

    Fui refatorando o corpo da função até ficar tão claro o que ela faz que a escolha do nome ficou fácil. Como Kent Beck diz: "deixe fácil a mudança, então faça a mudança fácil".

Inscreva-se

Não é apenas sobre ter um código esteticamente bonito, é sobre evitar horas de depuração, ser flexível às mudanças e o mais importante, ter orgulho do seu trabalho.

It's free

Código Limpo

  • Acesso Ilimitado
  • Certificado de conclusão
  • Suporte às dúvidas
  • 10 Horas de Curso

Alguma dúvida?

Me envie uma mensagem