[Cascavel-pm] dicas de identação e marcação de códigos
Luis Motta Campos
luismottacampos em yahoo.co.uk
Quarta Novembro 12 00:25:45 PST 2008
breno wrote:
> [...] 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)
Boas, Breno, JG, pessoALL.
A norma SQL é bem inflexível sobre como interpretar SQL. As vírgulas são
obrigatórias, e não podem, como no Perl, ficar "penduradas" na última
sentença. Exemplo:
-- inválido, tem uma vírgula "sobrando" depois de "B"
SELECT A, B, FROM X;
Mas dizemos isso em Perl o tempo todo:
@X = ( A, B, ); # Perl 100% válido
Qual é a consequência? Bom, reordenar elementos no Perl é simples. Basta
trocar a ordem, e cada elemento tem a sua "vírgula própria". Você
simplesmente agarra um "bloco" completo e está feito. Em SQL, tem de
haver um controle maior sobre onde estão as danadas das vírgulas. Por
isso elas são o elemento de alinhamento. Assim, o programador ou DBA
tira vantagem de uma habilidade inata dos humanos, o reconhecimento de
padrões (é fácil, muito fácil, ver um "buraco" na coluna das vírgulas).
Por exemplo, é mais fácil ver onde está faltando vírgulas assim
SELECT this_is_a_function_name( argument, column_name ),
this_is_a_name( argument, column_name ),
thifunction_name( argument, column_name ),
this_is_a_function_name( argument, column_name ),
zzzz_name( argument, column_name )
this_is_a_( argument, column_name ),
this_ction_name( argument, column_name ),
ths_is_a_function_name( argument, column_name )
FROM Whatever;
Ou assim?
SELECT this_is_a_function_name( argument, column_name )
, this_is_a_name( argument, column_name )
, thifunction_name( argument, column_name )
, this_is_a_function_name( argument, column_name )
zzzz_name( argument, column_name )
, this_is_a_( argument, column_name )
, this_ction_name( argument, column_name )
, ths_is_a_function_name( argument, column_name )
FROM Whatever;
Lisonjeado por ser citado como exemplo, JG. Obrigado.
Putamplexos!
--
Luis Motta Campos is a software engineer,
Perl Programmer, foodie and photographer.
Mais detalhes sobre a lista de discussão Cascavel-pm