Thursday, February 08, 2007 5:29 PM

Meu melhor professor de português e redação dizia que a pontuação de um texto serve para o leitor respirar. Uma virgula, dê uma breve respirada. Um ponto, pare, concatene o que leu e dê uma boa respirada para seguir.

Mas porque raios estou falando de regras de redação em um blog sobre desenvolvimento de software? É porque o seu código-fonte também será lido por outras pessoas. Uma das responsabilidades de um desenvolvedor é escrever um código que possa ser facilmente lido por outros. Legibilidade é um dos fatores que caracteriza a qualidade de um código-fonte.

A pontuação de um código-fonte são os espaços e as linhas em branco. Esta "pontuação" ajuda o leitor a separar mentalmente os trechos de código e entender cada trecho, respirando entre uma linha e outra. Portanto, saber onde colocar espaços e linhas em branco é fundamental para nós desenvolvedores.

É lógico que cada desenvolvedor tem um estilo de código, criar regras rígidas e impostas não ajuda muito. O bom senso, às vezes, é o melhor remédio.

Então vamos logo para alguns exemplos práticos:

if (this.Age > 21)
{
    this.setAllContent();
}
else
{
   this.setRestrictedContent();
}
if (this.Gender == Gender.Male)
{
    this.Salution = "Mr";
}
else
{
    this.Salution = "Mrs";
}

Durante um cadastro várias características do usuário. No primeiro bloco if-else a idade define qual o tipo de conteúdo será disponibilizado. O segundo bloco, define o tratamento de acordo com o sexo. 

Não há nada de errado no código, mas cada bloco trata de assuntos diferentes e independentes, portanto um espaço entre os dois blocos daria chance do leitor respirar e seguir para o próximo bloco. Sem o espaço o leitor tende a ler tudo junto como se os dois blocos tivessem alguma relação ou dependência entre si.

str _salution = this.Gender == Gender.Female ? "Mrs" : "Mr";
int z = x>y?x:y;

Posso ser meio burrinho, mas para mim operadores ternários não são muito intuitivos de se ler. Agora se você não colocar espaços no lugar certo, ai sim a coisa fica pior. Veja a diferença entre a primeira instrução, deivdamente espaçada, e a segunda.

public Name
{
    get { return _name; }
    set {_name=value;}
}

A diferença sutil entre o get e o set é simplesmente a utilização de espaços em branco. O set parece uma palavra só, fica mais difícil de se ler...

Por outro lado linhas em branco demais também não ajudam muito

if (this.Gender == Gender.Female)
{

    this.Salution = "Mrs";

    Console.Write("E ai gatinha?");

}
else
{

    this.Salution = "Mr";

    Console.Write("Vai encarar meu irmão??");

}

Desse jeito é necessário um monitor de 21 polegadas para ler uma simples instrução sem utilizar o scroll...

Tudo é uma questão de bom senso e de atenção. De vez quando parar e pensar: "Será que alguém vai entender o que estou escrevendo aqui?".

Legibilidade é produtividade, qualidade e respeito ao próximo (ao próximo infeliz que vai ter que consertar um bug que você deixou...)

 

Comments

No comments posted yet.
Post Comment
Title *
Name *
Email (never displayed)
Website
Comment * (Allowed tags: blockquote, a, strong, em, p, u, strike, super, sub, code)  
Please add 8 and 2 and type the answer here: