[Cascavel-pm] Duvida modelagem

Luis Motta Campos luismottacampos em yahoo.co.uk
Quinta Junho 7 00:26:52 PDT 2007


On Jun 7, 2007, at 2:30 AM, Donato Azevedo wrote:
> On 6/5/07, Luis Motta Campos <luismottacampos em yahoo.co.uk> wrote:
[snip]
>>    Vamos ver: você tem um problema, tem uma restrição de modelagem
>> sobre uma interface muito ruim. Fica esperto com race-conditions,
>> elas vão aparecer conforme o volume de operações cresça o bastante.
>
> A principio nao pensei em ser thread safe, mas vou dar uma olhada  
> pra melhorar,
> conheço um pouco sobre locking em perl, mas nada muito evoluido (uso o
> flock com handles para arquivo para criar exclusão mútua.. fiz isso
> num aplicativo e funfou beleza..)

   Se você tem um problema do tipo Produtor-Consumidor onde múltiplos  
agentes trabalham ao mesmo tempo para obter qualquer objetivo que  
seja, PRECISA ser THREAD SAFE.

   Mas note que isso não é o fim do mundo. :-)
   Por exemplo, você pode implementar um sistema de locking  
colaborativo, em que as pessoas respeitam os locks sem que a gente  
precise chutar programas mal-comportados. Isto é normalmente o  
bastante para resolver seu problema.

   Das varias implementações disponíveis no CPAN, a que eu achei mais  
interessante é a IPC::Lock [http://search.cpan.org/~earl/IPC- 
Lock-0.14/lib/IPC/Lock.pm]. Mas você vai precisar implementar seu  
mecanismo de locking por sua conta. :-)

>>    Sua aproximação ainda tem mais código do que eu acho que deveria,
>> mas está boa. Não vejo grandes comentários para fazer em termos de
>> modelagem. Tente escrever perl mais como perl e menos como java...
>> talvez ajude a enxugar um pouco seu código. Mas isto é estilo, não
>> tem nada a ver com a solução do problema em si.
>
> Tou aprendendo... mas java??? Luis, vou ficar ofendido heim!!!  
> brincadeira,
> Eu acho que tou pensando muito em C++...

   Sim, seu Perl parece com alguma coisa assim.

> Quando voce diz escrever mais como perl, voce diz, tentar usar mais  
> mágica?

   NÃO. Siga os Best Practices, meu caro... ;-) depois, a coisa flui  
naturalmente.

> Preciso de ver código pra absorver mais, vou dar uma olhada em  
> coisas da CPAN...

   Hum. Cuidado com o que você vai olhar.
   Não olhe para o CGI, DBI, DBD::*. Todos estes são péssimos exemplos.
   Eu recomendo que você veja o código do FGlock, e recomendo as  
classes de XML::Compiler implementadas pelo Mark Overmeer (MARKOV).  
Também gosto do que o Andy Wardley escreve, como as classes do  
Template Toolkit.

   Alguém mais sugere bons exemplos de código estéticamente  
apresentável no CPAN?

   Putamplexos!
--
Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer,
Perl fanatic evangelist, and amateur {cook, photographer}




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