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