Quando o código fonte não está tão bom quanto parece

Desenvolver software não se restringe apenas ao domínio da técnica ou da linguagem usada, ultrapassa essas barreiras e envolve as regras de negócio e ainda fatores que por vezes são pouco considerados durante a fase de planejamento, como por exemplo, a manutenção. Fazer um código fonte fácil de ler, entender e manter é tão importante quanto a estrutura arquitetural desenhada durante a fase de projeto, afinal, a escrita inicial é feita apenas uma vez e a manutenção e feita muitas vezes ao longo da vida do sistema.

Tecnologia 3

Mas para fazer um código fonte fácil de ler basta seguir regras de padronização, espaçamento e bons comentários? Definitivamente não. Se você conseguir se lembrar de situações em que se deparou com fontes aparentemente limpos mas que geraram sensações como as listadas abaixo, fica fácil entender :

  • procedimentos extensos, onde num determinado ponto você não consegue mais se lembrar tudo o que estava sendo tratado dentro dele;
  • funções que se propõem a resolver várias questões e no momento da manutenção você ficou na dúvida se a sua alteração estava influenciando em resultados não diretamente ligados ao trecho que você alterou;
  • muitos comandos condicionais aninhados e em sequência, onde determinar exatamente qual fluxo está sendo executado é uma tarefa árdua e cansativa;
  • procedimentos com tantos parâmetros que é preciso voltar a todo momento para a declaração  saber de onde os dados estão vindo e também parâmetros que parecem não fazer sentido, pois não fazem parte da regra do negócio.

Esses são exemplos simples dos chamados “Bad Code Smells“, ou códigos que, por motivadores diversos, tem características que dificultam a leitura, entendimento e consequentemente, manutenção embora pareçam num primeiro momento um código limpo.

Tecnologia 2

Para resolver esses e outros pontos, em geral, a solução é o refactoring do código fonte, que pode ser algo simples em alguns casos e complexo em outros.

A lista de situações em que um código pode ser classificado desta forma é mais ampla e merece uma leitura mais aprofundada, bem como as técnicas sugeridas e utilizadas para solucionar cada caso. Não deixe de ler e refletir como cada situação pode impactar na vida do sistema que você atua, ou no futuro dele.

LINKS EXTERNOS

http://en.wikipedia.org/wiki/Code_smell

http://refactoring.com/

http://mikamantyla.eu/BadCodeSmellsTaxonomy.html

http://blog.codinghorror.com/code-smells/

http://martinfowler.com/bliki/CodeSmell.html

https://sourcemaking.com/refactoring/bad-smells-in-code

Por LUIZ DE PAULA E SILVA JUNIOR

Postado em: 05 de maio de 2015

Confira outros artigos do nosso blog

REST não é JSON

21 de agosto de 2017

Bruno Sofiato

[Webinar] Profile de aplicações Java com Oracle Mission Control e Flight Recorder

24 de julho de 2017

Danival Calegari

Criando Mocks de serviços REST com SoapUI

27 de junho de 2017

Monise Costa

JavaScript 6: diferença entre var, let e const

09 de maio de 2017

Otávio Felipe do Prado

Deixe seu comentário