Comece a codar limpo
Descubra as técnicas por trás de um código expressivo, que revela propósito
e nunca mais passe horas perdido em um código confuso.
- 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.
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.
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.
Mais Refatorações
Todas refatorações foram feitas durante as aulas.
-
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.
- Acesso Ilimitado
- Certificado de conclusão
- Suporte às dúvidas
- 10 Horas de Curso