27 maio 2005

Formato do código

Ok, vamos botar a mão na massa um pouquinho.

Quero falar sobre formato e padrão, para isso vou usar o exemplo clássico do Hello World.

Verifiquei que no livro "Java 2 - Ensino Didático" o autor Sérgio Furgeri (ou a Editora Érica) não tomou o devido cuidado com o posicionamento das chaves fazendo uma verdadeira "lambança", uma hora começando as chaves na mesma linha*, outra hora sob o primeiro caracter e outra sob o terceiro caracter (algumas vezes dentro de um mesmo código).

Outra lambança acontece com o conteúdo das chaves, uma hora sob as chaves outra hora na linha seguinte deslocado dois espaços (pegue o arquivo de exemplos do livro que você vai ver).

No livro dos irmãos Deitel a coisa não é tão grave, dá para pelo menos perceber um padrão. Eles só colocam as chaves sob o primeiro caracter quando se trata de um método, todos os outros são iniciados na mesma linha do comando. Quanto ao conteúdo das chaves, pelos exemplos que eu vi, estão sempre deslocados 3 espaços do primeiro caracter do comando.

Já o "Tudo que você queria saber sobre a JDBC" em todos os casos inicia as chaves ao final do comando seguindo sempre o mesmo padrão, mas tem o hábito de incluir comando após o fechamento das chaves (na mesma linha) quando se trata de if-else e try-catch. Apesar desse livro não ter como público alvo iniciantes ainda acho que não deveria ter sido usado esse formato de código (digamos que é meio "deselegante").

Mas vamos aos códigos, formatos e padrões...

Observe o primeiro código:
class HelloWorld
{
public static void main (String args[])
{
System.out.println("Hello World!");
}
}
Didaticamente falando acho que esse primeiro é o melhor formato, observe que o efeito visual de alinhamento permite que sejam facilmente identificados os conteúdo de cada comando.

Observe o formato usado no livro dos Deitel:

class HelloWorld {
public static void main (String args[])
{
System.out.println("Hello World!");
}
}
Eles usam 3 espaços, eu prefiro 2 pois o código fica mais compacto. Mas independente disso, estamos falando do "alinhamento" das chaves. Aqui o exemplo é pequeno e não tem outras estruturas como if-else, for, switch, mas abstraia um pouco e será possível ter uma noção de que esse não é o melhor formato, pelo menos não para iniciantes (público alvo do livro).

O terceiro formato é este (todas as chaves iniciando ao final da linha):

class HelloWorld {
public static void main (String args[]) {
System.out.println("Hello World!");
}
}
No que tange sobre inicantes esse formato de código chega a ser medonho.

* na mesma linha só me recordo de casos em que o método não tinha conteúdo.

Um comentário:

Anônimo disse...

Relendo o post achei importante fazer um comentário (ao invés de editar o post):

O que eu escrevi se refere ao modo de escrever um livro com vistas a facilitar o entendimento do leitor, ou seja, estruturar o código para que ele seja lido e entendido por outras pessoas. Não foi e não pretende ser uma crítica ao modo como cada um escreve seus próprios códigos que, obviamente, são feitos para serem lidos pelos próprios e não por terceiros.