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

Andre Carneiro andregarciacarneiro em gmail.com
Terça Junho 8 14:55:26 PDT 2010


Em 8 de junho de 2010 17:29, Ulisses Montenegro <
ulisses.montenegro em gmail.com> escreveu:

> 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.
>
>
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.


> 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.
>
>

Pois é... cabe a VOCÊ tratar isso, não acha?



> 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.
>
>

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!



> 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
> _______________________________________________
> Recife-pm mailing list
> Recife-pm em pm.org
> http://mail.pm.org/mailman/listinfo/recife-pm
>



-- 
André Garcia Carneiro
Analista/Desenvolvedor Perl
(11)82907780
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/recife-pm/attachments/20100608/0457d0c7/attachment.html>


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