[Cascavel-pm] dicas de identação e marcação de códigos
breno
breno em rio.pm.org
Terça Novembro 11 18:49:54 PST 2008
Ihhhh isso vai dar o que falar :-P
Sobre o abre-chaves, é uma longa discussão entre o formato K&R:
foo {
...
}
e o formato BSD/GNU:
foo
{
...
}
quando comecei a programar, só usava o formado BSD por achar bem mais
legível (o código fica separado, mais fácil de ler). Com o tempo,
passei a usar o formato BSD apenas para funções, e o formato K&R para
comandos internos (if, while, etc), pq além de economizar uma linha,
parecia fazer mais sentido (leia-se um pouco mais fácil de entender).
Daí talvez pelo costume ou pela homogeneização (como acabamos usando
muito mais comandos internos do que subs, hoje quase todos os meus
códigos usam K&R.
Sobre a vírgula separadora, o Perl Best Practices usa um argumento
interessante em favor da vírgula no final, que é o da reordenação: se
usamos a vírgula no início, trocar de ordem o primeiro elemento com
outro qualquer exige modificação no código. No caso do SQL, vale a
mesma coisa. Por exemplo:
SELECT algo AS "bla"
, outracoisa AS "ble"
...
Se quiséssemos trocar "bla" e "ble" de ordem, não poderíamos
simplesmente copiar e colar sem um mínimo de cuidado, ou ficaria
assim:
SELECT , outracoisa AS "ble"
algo AS "bla"
...
sim, é raro haver essa necessidade, e sim, é um erro óbvio e muito
fácil de ser achado. Mas com a vírgula no final ele some
completamente:
SELECT algo AS "bla",
outracoisa AS "ble",
...
vira (copiando e colando):
SELECT outracoisa AS "ble",
algo AS "bla",
...
e pronto. A grande vantagem de fazer a separação em outra linha
(motivo pelo qual acho que o Luis usou) é que fica mais fácil ver o
que está acontecendo, especialmente em códigos SQL com muitos
aninhamentos. (isso e o fato de que ele é um DBA experiente e sabe o
que está fazendo :-P)
Em Perl específicamente, acho mais fácil separar elementos de lista
com a vírgula no final (até pq a vírgula no final sem item seguinte é
Perl válido):
my %bla = (
bla => 'bla',
ble => 'ble', # vírgula após o último elemento
# ajuda a adicionar outros sem erro!
);
No final, acho que o mais importante é escolher um estilo, qualquer
que seja, e ser consistente durante o código :-)
[]s
-b
2008/11/12 Joao Gabriel <jamorreu em gmail.com>:
> Olá povo.
>
> Últimamente eu ando muito preocupado em comparar códigos e em especial
> identação e marcação.
>
> Segue um exemplo de parte de um código SQL re-escrito pelo Luis:
>
> , UPPER( FE.descr ) AS "descr"
> , FE.total_parcelas AS "total_parcelas"
> , FE.parcela_atual AS "parcela_atual"
> , FE.valor_total AS "valor_total"
> , FE.valor_com_deconto AS "valor_com_desconto"
> , FE.valor_pago AS "valor_pago"
> , FE.dias_tolerancia AS "dias_tolerancia"
>
> eu faria do seguinte modo (passaria a virgula para o final):
>
> UPPER( FE.descr ) AS "descr",
> FE.total_parcelas AS "total_parcelas",
> FE.parcela_atual AS "parcela_atual",
> FE.valor_total AS "valor_total",
> FE.valor_com_deconto AS "valor_com_desconto",
> FE.valor_pago AS "valor_pago",
> FE.dias_tolerancia AS "dias_tolerancia",
>
>
>
> e em casos como:
>
> if(condição)
> {
> conteudo aqui;
> }
>
> eu geralmente faço assim:
>
> if(condição) {
> conteudo aqui;
> }
>
> Enfim, meu comentário é para iniciar um papo sobre identação e qual
> seria a melhor forma (ou a que aos olhos da maioria do pessoal seje
> melhor de entender).
>
> --
> João Gabriel C. Laass
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>
Mais detalhes sobre a lista de discussão Cascavel-pm