A falsa impressão de um bom código

Desde de quando comecei a trabalhar com desenvolvimento de software, ouvia sempre uma frase que é muito repetida até hoje que diz que: “Código bom é código comentado”. Em conversas com outros desenvolvedores alguns reclamavam porque que se viam obrigados a comentarem seus códigos para poderem passar pelas auditorias internas. Hoje vejo isso como um absurdo (para não dizer outra coisa). Muitos comentários podem mesmo ser parâmetro para definir um bom código? Eu, particularmente sou defensor de um código não comentado, ou com o mínimo de comentários possível. Muitos devem estar se perguntando agora, como assim, código não comentado? Esse cara está ficando louco? Mas não falem mal de mim ainda vou explicar o meu ponto de vista.

Um código comentado quase sempre é sinal de código ruim. Se você sentiu a necessidade de comentar seu código é porque até você está percebendo que o mesmo não está expressivo e, todas as suas linhas não conseguem refletir o seu verdadeiro objetivo.

Acredito que tem certos códigos que realmente são difíceis de serem expressivos, mesmo sendo refatorados. Podemos citar por exemplo, o uso de bibliotecas de terceiros que às vezes não apresentam o funcionamento esperado e, nesses casos somos obrigados a comentar determinados trechos, para facilitar a vida dos outros desenvolvedores que futuramente irão dar manutenção no código. Um outro caso que também pode caber comentários é quando estamos desenvolvendo uma biblioteca para ser utilizada externamente, nessa situação os comentários “podem” auxiliar o uso da biblioteca. Mas ainda permaneço com o pensamento que podemos sempre buscar alternativas para evitar os comentários.

Um código muito comentado pode trazer outro problema: a manutenção do próprio comentário. Sabemos da dificuldade que é em muitos casos dar manutenção em um código de produção, agora some a isso o esforço de atualização também do comentário.

Seu código deve ser expressivo

Para tentar demonstrar um código expressivo imaginei um exemplo onde seja necessário implementar um método que aplique descontos nas mensalidades dos alunos do 5° período ou superior, e que tenham o coeficiente de rendimento maior ou igual a 7.

Código com necessidade de comentário

Código com necessidade de comentário

Abaixo apresento o método “AplicarDescontosMensalidades” refatorado, com um código mais expressivo.

imgCodigoRefatorado

Código refatorado sem a necessidade de comentário

Depois de refatorar o código do método “AplicarDescontoMensalidades”, percebe-se que o mesmo está mais expressivo e o seu objetivo se mostra mais claro para quem lê o código do método agora.

Meu objetivo aqui não é condenar totalmente os comentários no código fonte, mas sim levantar a questão que, mais importante que ter um código muito comentado é ter um código expressivo, que diz a sua intenção tanto nos nomes dos métodos que o compõe, quanto nas suas linhas. Ao sentir a necessidade de fazer um comentário, pare e reflita sobre a sua real necessidade, faça sempre as perguntas: Porque tem que ter esse comentário? O código fica claro sem o comentário? Outros desenvolvedores irão entender mesmo esse código? E se possível procure sempre mostrar seu código para outros desenvolvedores da equipe e receber feedbacks sobre o mesmo.

Robert C. Martin (Uncle Bob) cita no seu livro Código Limpo “Habilidades Práticas do Agile Software”, uma frase que diz muito sobre o pensamento que tenho: “O único comentário verdadeiramente bom é aquele em que você encontrou uma forma para não escrevê-lo”.

É isso ai, espero que tenha conseguido passar o recado e que agora vocês analisem bem a real necessidade dos comentários nos seus códigos. Para qualquer feedback deixe seu comentário, esse sim é um tipo de comentário que aceito e recebo com prazer :) .

Postado em 7 de outubro de 2010 por Uilton Campos

8 Respostas para “A falsa impressão de um bom código”

  1. Tweets that mention Blog da QUALIDATA » Blog Archive » A falsa impressão de um bom código -- Topsy.com disse:

    [...] This post was mentioned on Twitter by Uilton Campos, Qualidata. Qualidata said: Novo post em nosso blog: "A falsa impressão de um bom código" -> http://bit.ly/apPSn8 #qualidata #cleancode [...]

  2. Osias disse:

    #expressãofacialdetotalaprovação

    #polegarparacima

    é isso aí!

  3. Fabio Colli disse:

    Concordo plenamente com tudo que foi dito. parabéns!!
    Desde que comecei a trabalhar com desenvolvimento, e até pouco tempo eu sempre ouvi que códigos deveriam ter comentários para que o próximo desenvolverdor que pegasse esse código pudesse de cara, n primeira olhada, já saber o que o código faz. Eu sempre achei isso balela, é claro que concordo que alguns tipos de cabeçalhos, como comentários cabeçalhos, dizendo quais foram as alterações, como também um exemplo que saiu em uma conversa hoje pela manhã. Se há um Regular Expression, fazer um comentário do que ela valida por exemplo. Mas o meu ponto porque eu nunca fui a favor de comentário é justamente pela questão de que quando o código mudar, você ter que dar manutenção também no comentário. Esse era o ponto principal. Sempre tentei deixar o código sem comentário, porém, com nome de métodos, variáveis e contantes, etc… bem expressivos, para que, quando outra pessoa fosse trabalhar com esse código, já saber do que se trata, sem a necessidade de comentário.

  4. Leandro disse:

    Sou adepto das mesmas ideias que você apresentou. É o que eu chamo de “código auto-documentado”.

  5. Código bem comentado x Código limpo | Desenvolvimento de sites disse:

    [...] o Uilton publicou um post (A falsa impressão de um bom código) que gerou considerável polêmica. Como ele abordou a assunto de forma bem ligeira, gostaria de ir [...]

  6. Alan disse:

    Muito bom seu post, já não comento muito código, mas agora vou realmente ver se ele é necessário ou se posso melhorar minha codificação.
    Abrazz!

  7. Dirlei Dionísio disse:

    Muito bom seu artigo, Uilton!

    Um tempo atrás também escrevi sobre esse assunto no meu blog, inclusive usei um exemplo semelhante ao seu. Inspirado na metáfora do “mal cheiro” do Martin Fowler, comparei o uso de comentários com o uso de desodorante… hehehe.

    Parabéns por abordar esse assunto e pelos argumentos!

    Um abraço!

  8. Uilton Campos disse:

    Valeu pelo comentário Dirlei!
    Este é um assunto polêmico que gera muita discussão entre os desenvolvedores e eles às vezes não entendem os benefícios de diminuir o uso de comentários no código.

Deixe uma resposta

Tags

Oportunidade

Tópicos recentes

Fique Antenado

Copyright © 2014 Blog da QUALIDATA.

Wordpress themes