[Cascavel-pm] dicas de identação e marcação de códigos

breno breno em rio.pm.org
Terça Novembro 11 18:56:14 PST 2008


Ah, outra coisa. Se colocar vírgula no último item do comando SQL dá
erro, meu argumento vai por água abaixo, pq mesmo com a vírgula no
final teríamos o problema do último elemento não poder ter a vírgula e
se quiséssemos trocar ele de ordem (em vez do primeiro) também
precisaríamos ajustar as vírgulas. Ou seja:

SELECT foo AS "bla",
   bar AS "ble",
FROM ....

Como meu contato com SQL não é tão grande e não tenho um banco pronto
para ser acessado agora, vou deixar a dúvida de se essa vírgula no
final do último comando funciona ou não como um exercício para o DBA
mais próximo =P

[]s

-b

2008/11/12 breno <breno em rio.pm.org>:
> 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