[Cascavel-pm] RE : Re: RE : Re: Módulo de controle de queries

Nilson Santos Figueiredo Junior acid06 em gmail.com
Quarta Dezembro 26 12:22:55 PST 2007


On Dec 26, 2007 5:58 PM, Alesandro Zidane <zidanealesx em yahoo.fr> wrote:
> Era por aí que você tinha falado ?

Sim, era por aí sim.

Se você quiser elaborar um pouco, poderia até criar uma classe
iterador ou utilizar alguma disponível na CPAN. Mas talvez seja
overkill: sua solução é simples e eficiente para um iterador que só
vai andar pra frente.

> Pelo menos já consigo acessar os dados com um simples while:
>
> my $dbh_qry = Controle::DataBase->new('finish','221442');
> my $qry_ref = $dbh_qry->fetch_hashref;
> while(my $ref = &$qry_ref)    {
>     print $ref->{'DADOS_FINISH'}."\n";
> }
>
> Gostaria de saber se posso melhorar.

Talvez uma questão de gosto, mas eu usaria:

  while ( my $ref = $qry_ref->() )

Mas isso é só porque eu não sou muito fã de chamar referências de
código com a sintaxe de chamada de funções antiga. Até onde eu sei, na
prática, o efeito é o mesmo.

> Não entendi muito bem quando disse uma implementação orientada objetos,
> estou tentando melhorar e organizar o acesso ao banco de dados do sistema, e
> qualquer sugestão é bem vinda. Pode me esclarecer melhor ?

Ao invés de você ter um bando de queries numeradas (ou com IDs) crie
classes com métodos com nomes descritivos.
Por exemplo, se você tem uma query que busca todos os meios de contato
de um cliente (telefone, email, IM, etc) e retorna tuplas [tipo do
meio, valor] (e.g. ['email', 'joao em dasilva.com']) crie uma classe
Cliente com um método 'contatos' que irá retornar essa lista de
tuplas.

Claro que é possível que, no final, essa camada acabe até mesmo
utilizando seu arquivo XML de queries, mas assim, você tem uma camada
de abstração e se, de repente, você resolver buscar os contatos não
mais do banco de dados, mas importá-los de um servidor de contatos
(lembro que o Exchange Server tem isso) o resto do seu código não
precisaria de ser mudado.

É apenas boa prática que pode facilitar sua vida no futuro.

-Nilson Santos F. Jr.


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