[Recife-pm] Digest Recife-pm, volume 12, assunto 1

Ulisses Montenegro ulisses.montenegro em gmail.com
Terça Junho 8 13:29:35 PDT 2010


Cleber

É verdade que o Larry Wall sempre repete o bordão do "There is more
than one way to do it", mas na prática, a não ser que você seja o
único a colocar a mão no código, múltiplas visões dos problemas e dos
códigos só introduzem confusão e atrapalham na manutenção do código.
Já tive de dar suporte a código legado escrito por terceiros, onde
cada parte do sistema tinha a "cara" do desenvolvedor original, e fica
extremamente difícil respeitar o design original quando precisamos
interpretar cada trecho de código com parâmetros diferentes, tentando
emular o pensamento de quem o escreveu.

Eu não tenho absolutamente nada contra desenvolvimento incremental, e
muito menos contra formalismo e rigor em excesso durante o processo de
aprendizado, mas DBI é um exemplo de uma tecnologia que interfaceia
com tantas outras -- SQL, bancos de dados, drivers DBD -- que um pouco
de preparo antes de encarar a coisa muitas vezes pode economizar muito
tempo mais na frente.

Um exemplo -- o seu código faz uso do driver DBD do MySQL, que pela
maneira como o DBI funciona, não é um requisito em tempo de compilação
do código -- ou seja, o fato de um usuário não possuir o módulo
DBD::MySQL não irá causar um erro devido a um 'use DBD::MySQL' que não
foi encontrado. No entanto, ao fazer o parse da DSN da conexão com o
banco, o DBI irá tentar carregar o driver do MySQL, o que irá causar
um erro em tempo de execução no seu código caso não esteja instalado.
Tudo isso é bastante sutil, mas pode causar um comportamento bastante
diferente do espero pelo usuário, que acaba sem saber como evoluir, e
dessa vez com uma mensagem de erro muito mais bizarra porque o erro
acontece em um ponto do código fora do controle dele.

Finalizando, e só pra reforçar -- eu não sou contra protótipos e/ou
código "throw away", e considero que esmero em excesso pode ser
prejudicial sim, mas não acredito que escrever código que interage com
vários componentes cujo funcionamento não entendemos minimamente seja
a melhor forma de aprender novas tecnologias e/ou técnicas de
programação.

BTW, boa discussão, já estava na hora de agitarmos um pouco a lista
Ulisses

2010/6/8 Cleber Morais <cmorais em gmail.com>:
> Hmmm
>
> Bem, uma das coisas que eu gosto em Perl é que existe inúmeras
> maneiras de programar.
> De certa forma, isso diz que cada programador de Perl segue uma forma
> diferente de escrever
> E literalmente pensar. Eu por exemplo, oriento meu códigos a sujeira
> que funciona até
> limpeza artística. Má prática de programação? Poderia ser, se os
> códigos não funcionassem.
> Para facilitar a manutenção, organizo depois que o sistema funciona.
> Ruim, para mim,  é fazer um código perfeito documentado em cinco
> camandas... que não roda direito.
>
> Para quê todo esse preâmbulo? Para dizer que você pode aprender DB
> fácil e rápido com Perl.
> E depois você incrementa, melhora, desenvolve, em conjunto com sua
> capacidade de programação.
>
> Porque isso? Quanto menos dificuldade você tiver para COMEÇAR em Perl,
> mais fácil será para você FICAR usando. Perl tem uns truques que são
> realmente muito legais, porque não aproveitar isso?
>
> No caso de um DB, muito provavelmente tanto faz se for Windows ou
> Linux. O código é extremamente portável... Não chega a ser uma
> dificuldade. Normalmente eu uso Perl para Web, o que para mim é
> incrivelmente mais fácil pensar front-end. Mas terminal também rola e
> muito legal.
>
> Saca só esses dois códigos: http://codethe.net/codigo/perlDB.zip
> É esperado, se você tiver todos os pacotes, que esse código funcione
> tanto no Windows como no Linux. Eu uso Linux, mas já rodei esses
> carinhas ai no Windows...No Windows, eu uso normalmente o ActivePerl,
> que acho bem arrumado e já vem com PerlPackageManager2 (ppm) vulgo
> "cpan" no linux. Você diz qual é o pacote, ele instala. Simples assim.
>
> É tudo o que você precisa, o resto é melhorar e aplicar.
>
> Com esses códigos ai você já pode fazer um sistema que funcione em
> rede conectando a DBs remotos... Não é seguro, mas funciona =D
>
> Precisas estudar SQL e alguma coisa sobre Hashes e iteração neles...
>
> No mais, mão a obra!
>
> abs
>
> Cleber M
>
>
>
>
>
> 2010/6/7 Bruno da Fonte <brunodafonte em gmail.com>:
>> Boa tarde,
>> gostaria de ter "aula particular" de Perl, na verdade quero aprender a
>> utilizar o perl em windows com algum banco de dados, já peguei vários
>> tutoriais na net más não dá, pois não sou programador por profissão e sim
>> por hobbye.
>> Se souber de alguem que cobre para ensinar, gostaria do contato. Acho que em
>> uma manhã já daria pra pegar.
>> Obrigado
>> Bruno da Fonte
>> brunodafonte em gmail.com
>> 81.9232.4444
>> _______________________________________________
>> Recife-pm mailing list
>> Recife-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/recife-pm
>>
> _______________________________________________
> Recife-pm mailing list
> Recife-pm em pm.org
> http://mail.pm.org/mailman/listinfo/recife-pm
>



-- 
“If debugging is the process of removing software bugs, then
programming must be the process of putting them in.” - Edsger Dijkstra


Mais detalhes sobre a lista de discussão Recife-pm