Início > Qualidade de Código > Dando nome às coisas

Dando nome às coisas

Código não limpoNormalmente quando estamos desenvolvendo algum código não nos preocupamos com o fato de que alguém muito provavelmente irá lê-lo. E na maioria das vezes seremos nós mesmos que o leremos, por motivos diversos: dar manutenção, acrescentar alguma funcionalidade ou corrigir algum erro/bug.

Ler um código é uma tarefa comum na vida de um desenvolvedor. Portanto, é importante mantê-lo legível e compreensível. Quem nunca olhou para um código antigo e se perguntou: “O que diabos essa função faz?”

Pois é, geralmente esquecemos a finalidade ou o funcionamento de um código com o qual não temos contato a algum tempo. Por isso, manter o código o mais compreensível (e legível) possível deve ser encarado como uma regra básica do bom desenvolvedor.


tirinha alterando código - vida de programador

Um código bagunçado certamente atrapalha o entendimento de seu leitor, o que acarreta em mais horas para o compreender e consequentemente, mais tempo para alterá-lo. Um código bem escrito facilita o processo de análise dele por parte do leitor e assim, o seu desenvolvedor não precisará recorrer à sua memória para saber o que ele faz.

Clean Code bookO livro Clean Code de Robert C. Martin (conhecido também como Uncle Bob) fala justamente de como deixar seu código bem escrito, tornando-o limpo. Esse post é totalmente baseado nas ideias desse livro, então qualquer semelhança não é mera coincidência.

Nomeando entidades

O nome das entidades em um código (variáveis, objetos, classes…) deve expressar a funcionalidade dela, o por quê dela ter sido criada. Em outras palavras, o nome deve responder a pergunta: “O que a entidade faz?”

Exemplo 1:

string s = "Domínio\NomeDoUsuário";

A string “s” criada acima não diz nada a respeito da sua funcionalidade. Pior ainda ela não diz nada! É preciso ver o seu conteúdo para saber que ela armazena a informação de uma conta de usuário. Provavelmente quando a referenciarmos posteriormente em nosso código precisaremos voltar a sua declaração para compreendermos o que ela significa.

Exemplo 2:

string userAccountName = "Domínio\NomeDoUsuário";

Agora sim. Em qualquer lugar do código que referenciarmos a nossa string saberemos que ela armazena a informação de uma conta de usário. Note que uma simples mudança de nome deixou o nosso código mais compreensível.

Prefira sempre nomes mais longos para suas entidades. Nomes muito curtos quase nunca descrevem a sua funcionalidade. Além disso, nomes muito curtos (compostos de uma ou duas letras) dificultam a busca. Procurar a string “s” seria muito mais difícil do que procurar a string “userAccountName”, porque provavelmente aparecerá em diversas partes do código.

Exemplo 3:

string dds = "Segunda-feira";

Outro cuidado que devemos ter é com as abreviações. Em geral é melhor evitá-las porque elas não expressam a essência funcional da entidade. No Exemplo 3 o nome “dds” significa “dia da semana”, mas dificilmente alguém que lêsse o código pela primeira vez saberia esse significado (e depois de alguns meses, nem mesmo quem o desenvolveu lembraria!).

Exemplo 4:

string diaSemana = "Segunda-feira";

Alterando o nome da string para “diaSemana” compreendemos facilmente que ela representa o dia da semana, “Segunda-Feira”.

Concluímos, então, que se tivermos pequenos cuidados na hora de criarmos um código podemos deixá-lo mais compreensível, mais fácil de ser lido, mais limpo. Pense nisso e aplique esses conceitos no dia-a-dia, você verá que a leitura do código vai ficar muito mais agradável.

Adicionar funcionalidades a um código ruim é como camuflar uma bomba: você pode deixá-la bonita, enfeitá-la com um laço e até dar a ela um cheiro bom; mas ela ainda é uma bomba e pode explodir a qualquer momento.

Anúncios
  1. 05/31/2011 às 9:26 PM

    Apesar de não ser da área de TI eu adorei este post, porque é simples, prático e fácil de entender mesmo para quem é leigo no assunto.
    Muito bom seu blog!
    Sucesso!

  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: