Você sabe o que é Bad Smell?
Você já ouviu falar sobre Bad Smell? Esta semana vamos nos concentrar neste tópico em nosso blog com uma série de posts falando sobre a chave insights relacionada a este assunto, que é tão importante na vida de um Desenvolvedor. Você sabia que um código tem sua saúde? Sim, ele tem! Você sabe como verificar se ele é saudável?
A maneira ideal de escrever um código corretamente é lembrar os ensinamentos de SÓLIDO, Código Limpo e usar corretamente a orientação de objetos.
Se você não tem idéia do que é SÓLIDO ou Código Limpo, deixarei na seção de referência os links para os posts que escrevi sobre os princípios SÓLIDOS e um sobre Código Limpo do blog balta-io.
Há alguns fatores, como prazos cada vez mais curtos, documentação abstrata e até mesmo deficiência técnica, que normalmente nos fazem criar códigos insalubres e que não correspondem ao que foi solicitado ou não é a melhor solução para esse problema.
Para descobrir se seu código é saudável, você não precisa assistir House ou Greys Anatomy. Quando não é saudável, começamos a encontrar vários sintomas de que o código não está bem, identificamos o famoso "Bad Smell" ou "Code Smell". Portanto, prepare-se, higienize suas mãos, coloque sua máscara e analisaremos nossos códigos.
Code Smell, Bad Smell?
De acordo com Martin Fowler, um Bad Smell acontece quando o código é mal projetado ou quando a implementação escolhida estava errada. Estes sintomas nos ajudam a verificar alguns problemas no código, como por exemplo:
- Indicar ou corresponder a um problema profundo em um sistema.
- Necessidade de refatoração.
- Verifique quais áreas do código devem ser limpas. (Regra do escoteiro)
E como podemos lidar com isso?
Primeiro, usaremos o princípio da surpresa mínima onde seguimos as regras abaixo:
- Faça exatamente o que o usuário espera.
- Seja simples (KISS).
- Seja claro, seja consistente.
Bad Smell e suas classificações
Há algumas categorias que utilizamos para saber que tipos de Bad Smell estamos enfrentando. Essas categorias são:
- Bloaters
- Abusadores da orientação a objetos
- Impedidores de mudança
- Dispensas
- Acopladores
- Obfuscadores
Neste posto, vamos nos concentrar na categoria Bloaters.
Mas o que é um Bloater?
Bloater é uma categoria que é encontrada sempre que um código cresce desnecessariamente com freqüência. Isto geralmente afeta a velocidade e o processamento do código.
A prevenção para esta categoria é a criação de códigos enxutos e focalizados.
Um Bad Smell que pode ser classificado como um Bloater é a Obsessão Primitiva.
Obsessão Primitiva
Ocorre quando muitos tipos primitivos são usados ao invés de estruturas de "abstração". Pode tornar o código menos legível, e não intencional, e isto torna a leitura extremamente difícil, resultando em duplicação, já que os dados não são organizados em uma única estrutura.
Vamos ver um exemplo para nos ajudar a entender
Na imagem acima, temos uma classe chamada PrimitiveObsession, que contém vários campos como tipos primitivos. Quando construímos classes contendo vários tipos primitivos, geralmente, à primeira vista, eles não parecem muito organizados, parecendo um código totalmente processual e sem expressão. Como o construtor contém vários parâmetros, ele não é tão legível.
Portanto, vamos refatorar essa classe e resolver os problemas.
A primeira coisa seria usar a Orientação a Objetos para criar uma abstração que represente um objeto que agregue campos fazendo sentido para o contexto. Em nosso caso, temos os campos:
- Rua
- Distrito
- Cidade
- Número
- Código Postal
- Informações adicionais
Assim, criamos um tópico chamado Endereço que conterá todas essas propriedades.
E depois deste "refator", a classe se parece com isto:
Observe que a visibilidade da classe é elegante, muito mais enxuta e simples para identificar o conteúdo.
Espero que tenham gostado! No próximo post, falaremos sobre o Bad Smell da Família Obfuscates.
May the force be with you!
Inicie sua jornada conosco
Estamos prontos para guiar o seu negócio rumo ao futuro, com a solução certa para você se beneficiar do potencial das APIs e integrações modernas.
Conteúdos relacionados
Confira os conteúdos produzidos pela nossa equipe
Sua história de sucesso começa aqui
Conte com nosso apoio para levar as melhores integrações para o seu negócio, com soluções e equipes profissionais que são referência no mercado.