Offtopicamente<br>vocês sabiam, que o criador do TT anda de skate e outros esportes de prancha, e até parece ser socialmente aceito, que quebra de paradigma nerd não? :P<br>Site dele <a href="http://www.andywardley.com/">http://www.andywardley.com/
</a><br><br><div><span class="gmail_quote">On 6/7/07, <b class="gmail_sendername">Luis Motta Campos</b> &lt;<a href="mailto:luismottacampos@yahoo.co.uk">luismottacampos@yahoo.co.uk</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On Jun 7, 2007, at 2:30 AM, Donato Azevedo wrote:<br>&gt; On 6/5/07, Luis Motta Campos &lt;<a href="mailto:luismottacampos@yahoo.co.uk">luismottacampos@yahoo.co.uk</a>&gt; wrote:<br>[snip]<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;Vamos ver: você tem um problema, tem uma restrição de modelagem
<br>&gt;&gt; sobre uma interface muito ruim. Fica esperto com race-conditions,<br>&gt;&gt; elas vão aparecer conforme o volume de operações cresça o bastante.<br>&gt;<br>&gt; A principio nao pensei em ser thread safe, mas vou dar uma olhada
<br>&gt; pra melhorar,<br>&gt; conheço um pouco sobre locking em perl, mas nada muito evoluido (uso o<br>&gt; flock com handles para arquivo para criar exclusão mútua.. fiz isso<br>&gt; num aplicativo e funfou beleza..)<br>
<br>&nbsp;&nbsp; Se você tem um problema do tipo Produtor-Consumidor onde múltiplos<br>agentes trabalham ao mesmo tempo para obter qualquer objetivo que<br>seja, PRECISA ser THREAD SAFE.<br><br>&nbsp;&nbsp; Mas note que isso não é o fim do mundo. :-)
<br>&nbsp;&nbsp; Por exemplo, você pode implementar um sistema de locking<br>colaborativo, em que as pessoas respeitam os locks sem que a gente<br>precise chutar programas mal-comportados. Isto é normalmente o<br>bastante para resolver seu problema.
<br><br>&nbsp;&nbsp; Das varias implementações disponíveis no CPAN, a que eu achei mais<br>interessante é a IPC::Lock [<a href="http://search.cpan.org/~earl/IPC-">http://search.cpan.org/~earl/IPC-</a><br>Lock-0.14/lib/IPC/Lock.pm]. Mas você vai precisar implementar seu
<br>mecanismo de locking por sua conta. :-)<br><br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;Sua aproximação ainda tem mais código do que eu acho que deveria,<br>&gt;&gt; mas está boa. Não vejo grandes comentários para fazer em termos de<br>&gt;&gt; modelagem. Tente escrever perl mais como perl e menos como java...
<br>&gt;&gt; talvez ajude a enxugar um pouco seu código. Mas isto é estilo, não<br>&gt;&gt; tem nada a ver com a solução do problema em si.<br>&gt;<br>&gt; Tou aprendendo... mas java??? Luis, vou ficar ofendido heim!!!<br>
&gt; brincadeira,<br>&gt; Eu acho que tou pensando muito em C++...<br><br>&nbsp;&nbsp; Sim, seu Perl parece com alguma coisa assim.<br><br>&gt; Quando voce diz escrever mais como perl, voce diz, tentar usar mais<br>&gt; mágica?<br>
<br>&nbsp;&nbsp; NÃO. Siga os Best Practices, meu caro... ;-) depois, a coisa flui<br>naturalmente.<br><br>&gt; Preciso de ver código pra absorver mais, vou dar uma olhada em<br>&gt; coisas da CPAN...<br><br>&nbsp;&nbsp; Hum. Cuidado com o que você vai olhar.
<br>&nbsp;&nbsp; Não olhe para o CGI, DBI, DBD::*. Todos estes são péssimos exemplos.<br>&nbsp;&nbsp; Eu recomendo que você veja o código do FGlock, e recomendo as<br>classes de XML::Compiler implementadas pelo Mark Overmeer (MARKOV).<br>Também gosto do que o Andy Wardley escreve, como as classes do
<br>Template Toolkit.<br><br>&nbsp;&nbsp; Alguém mais sugere bons exemplos de código estéticamente<br>apresentável no CPAN?<br><br>&nbsp;&nbsp; Putamplexos!<br>--<br>Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer,<br>Perl fanatic evangelist, and amateur {cook, photographer}
<br><br><br>_______________________________________________<br>Cascavel-pm mailing list<br><a href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/cascavel-pm">http://mail.pm.org/mailman/listinfo/cascavel-pm
</a><br></blockquote></div><br><br clear="all"><br>-- <br>Lindolfo &quot;Lorn&quot; Rodrigues<br>- <a href="http://www.slackwarezine.com.br">www.slackwarezine.com.br</a><br>- <a href="http://lornlab.org">http://lornlab.org
</a><br>- <a href="http://sao-paulo.pm.org">http://sao-paulo.pm.org</a><br>use Catalyst;