<br><br><div class="gmail_quote">Em 8 de junho de 2010 17:29, Ulisses Montenegro <span dir="ltr"><<a href="mailto:ulisses.montenegro@gmail.com">ulisses.montenegro@gmail.com</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Cleber<br>
<br>
É verdade que o Larry Wall sempre repete o bordão do "There is more<br>
than one way to do it", mas na prática, a não ser que você seja o<br>
único a colocar a mão no código, múltiplas visões dos problemas e dos<br>
códigos só introduzem confusão e atrapalham na manutenção do código.<br>
Já tive de dar suporte a código legado escrito por terceiros, onde<br>
cada parte do sistema tinha a "cara" do desenvolvedor original, e fica<br>
extremamente difícil respeitar o design original quando precisamos<br>
interpretar cada trecho de código com parâmetros diferentes, tentando<br>
emular o pensamento de quem o escreveu.<br>
<br>
Eu não tenho absolutamente nada contra desenvolvimento incremental, e<br>
muito menos contra formalismo e rigor em excesso durante o processo de<br>
aprendizado, mas DBI é um exemplo de uma tecnologia que interfaceia<br>
com tantas outras -- SQL, bancos de dados, drivers DBD -- que um pouco<br>
de preparo antes de encarar a coisa muitas vezes pode economizar muito<br>
tempo mais na frente.<br>
<br></blockquote><div><br></div><div>Desenvolvimento incremental envolve projeto, 'ciclo de vida' do software e outros conceitos. Isso é totalmente diferente de sair fazendo besteira sem pensar e tentar concertar depois.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Um exemplo -- o seu código faz uso do driver DBD do MySQL, que pela<br>
maneira como o DBI funciona, não é um requisito em tempo de compilação<br>
do código -- ou seja, o fato de um usuário não possuir o módulo<br>
DBD::MySQL não irá causar um erro devido a um 'use DBD::MySQL' que não<br>
foi encontrado. No entanto, ao fazer o parse da DSN da conexão com o<br>
banco, o DBI irá tentar carregar o driver do MySQL, o que irá causar<br>
um erro em tempo de execução no seu código caso não esteja instalado.<br>
Tudo isso é bastante sutil, mas pode causar um comportamento bastante<br>
diferente do espero pelo usuário, que acaba sem saber como evoluir, e<br>
dessa vez com uma mensagem de erro muito mais bizarra porque o erro<br>
acontece em um ponto do código fora do controle dele.<br>
<br></blockquote><div><br></div><div><br></div><div>Pois é... cabe a VOCÊ tratar isso, não acha?</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Finalizando, e só pra reforçar -- eu não sou contra protótipos e/ou<br>
código "throw away", e considero que esmero em excesso pode ser<br>
prejudicial sim, mas não acredito que escrever código que interage com<br>
vários componentes cujo funcionamento não entendemos minimamente seja<br>
a melhor forma de aprender novas tecnologias e/ou técnicas de<br>
programação.<br>
<br></blockquote><div><br></div><div><br></div><div>Não vi nenhum exagero por aqui... e concordo que exageros acabam prejudicando. Mas considero 'armengues' como um mal absolutamente desnecessário, desde que você saiba o que está fazendo!</div>
<div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
BTW, boa discussão, já estava na hora de agitarmos um pouco a lista<br>
Ulisses<br>
<br>
2010/6/8 Cleber Morais <<a href="mailto:cmorais@gmail.com">cmorais@gmail.com</a>>:<br>
<div><div></div><div class="h5">> Hmmm<br>
><br>
> Bem, uma das coisas que eu gosto em Perl é que existe inúmeras<br>
> maneiras de programar.<br>
> De certa forma, isso diz que cada programador de Perl segue uma forma<br>
> diferente de escrever<br>
> E literalmente pensar. Eu por exemplo, oriento meu códigos a sujeira<br>
> que funciona até<br>
> limpeza artística. Má prática de programação? Poderia ser, se os<br>
> códigos não funcionassem.<br>
> Para facilitar a manutenção, organizo depois que o sistema funciona.<br>
> Ruim, para mim, é fazer um código perfeito documentado em cinco<br>
> camandas... que não roda direito.<br>
><br>
> Para quê todo esse preâmbulo? Para dizer que você pode aprender DB<br>
> fácil e rápido com Perl.<br>
> E depois você incrementa, melhora, desenvolve, em conjunto com sua<br>
> capacidade de programação.<br>
><br>
> Porque isso? Quanto menos dificuldade você tiver para COMEÇAR em Perl,<br>
> mais fácil será para você FICAR usando. Perl tem uns truques que são<br>
> realmente muito legais, porque não aproveitar isso?<br>
><br>
> No caso de um DB, muito provavelmente tanto faz se for Windows ou<br>
> Linux. O código é extremamente portável... Não chega a ser uma<br>
> dificuldade. Normalmente eu uso Perl para Web, o que para mim é<br>
> incrivelmente mais fácil pensar front-end. Mas terminal também rola e<br>
> muito legal.<br>
><br>
> Saca só esses dois códigos: <a href="http://codethe.net/codigo/perlDB.zip" target="_blank">http://codethe.net/codigo/perlDB.zip</a><br>
> É esperado, se você tiver todos os pacotes, que esse código funcione<br>
> tanto no Windows como no Linux. Eu uso Linux, mas já rodei esses<br>
> carinhas ai no Windows...No Windows, eu uso normalmente o ActivePerl,<br>
> que acho bem arrumado e já vem com PerlPackageManager2 (ppm) vulgo<br>
> "cpan" no linux. Você diz qual é o pacote, ele instala. Simples assim.<br>
><br>
> É tudo o que você precisa, o resto é melhorar e aplicar.<br>
><br>
> Com esses códigos ai você já pode fazer um sistema que funcione em<br>
> rede conectando a DBs remotos... Não é seguro, mas funciona =D<br>
><br>
> Precisas estudar SQL e alguma coisa sobre Hashes e iteração neles...<br>
><br>
> No mais, mão a obra!<br>
><br>
> abs<br>
><br>
> Cleber M<br>
><br>
><br>
><br>
><br>
><br>
> 2010/6/7 Bruno da Fonte <<a href="mailto:brunodafonte@gmail.com">brunodafonte@gmail.com</a>>:<br>
>> Boa tarde,<br>
>> gostaria de ter "aula particular" de Perl, na verdade quero aprender a<br>
>> utilizar o perl em windows com algum banco de dados, já peguei vários<br>
>> tutoriais na net más não dá, pois não sou programador por profissão e sim<br>
>> por hobbye.<br>
>> Se souber de alguem que cobre para ensinar, gostaria do contato. Acho que em<br>
>> uma manhã já daria pra pegar.<br>
>> Obrigado<br>
>> Bruno da Fonte<br>
>> <a href="mailto:brunodafonte@gmail.com">brunodafonte@gmail.com</a><br>
>> 81.9232.4444<br>
>> _______________________________________________<br>
>> Recife-pm mailing list<br>
>> <a href="mailto:Recife-pm@pm.org">Recife-pm@pm.org</a><br>
>> <a href="http://mail.pm.org/mailman/listinfo/recife-pm" target="_blank">http://mail.pm.org/mailman/listinfo/recife-pm</a><br>
>><br>
> _______________________________________________<br>
> Recife-pm mailing list<br>
> <a href="mailto:Recife-pm@pm.org">Recife-pm@pm.org</a><br>
> <a href="http://mail.pm.org/mailman/listinfo/recife-pm" target="_blank">http://mail.pm.org/mailman/listinfo/recife-pm</a><br>
><br>
<br>
<br>
<br>
</div></div><div class="im">--<br>
“If debugging is the process of removing software bugs, then<br>
programming must be the process of putting them in.” - Edsger Dijkstra<br>
</div><div><div></div><div class="h5">_______________________________________________<br>
Recife-pm mailing list<br>
<a href="mailto:Recife-pm@pm.org">Recife-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/recife-pm" target="_blank">http://mail.pm.org/mailman/listinfo/recife-pm</a></div></div></blockquote></div><br><br clear="all"><br>-- <br>André Garcia Carneiro<br>Analista/Desenvolvedor Perl<br>
(11)82907780<br>