[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