<div dir="ltr">Nesse meu exemplo o codigo vai ser usado por pessoas que não falam portugues e a lingua comum é o inglês (eles falam francês).<div><br></div><div>Alias se vc for liberar um modulo no CPAN é muito interessante vc escolher uma lingua como o inglês por assim vai atender a muitas pessoas de diferentes paises. O que não impede de documentar em outros idiomas como o pt_BR se for necessario.</div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-02-27 11:20 GMT-03:00 Ricardo Stock <span dir="ltr"><<a href="mailto:ricardostock@bol.com.br" target="_blank">ricardostock@bol.com.br</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div dir="ltr">
<div style="font-size:10pt;font-family:'Verdana'">
<div>Ola Tiago.</div>
<div> </div>
<div>Veja eu concordo com voce no que diz a metodos do tipo “obscuros” até mesmo
classes, variaveis ou funções ou mesmo condicionais que ninguem entende até
mesmo quem fez depois de um certo tempo.</div>
<div> </div>
<div>Aquela massima de que “quem vai manter seu codigo é um serial killer e tem
seu endereço é verdade”. só uma coisa que não concordo e que vejo em muitas
pessoas que estão na lista.</div>
<div> </div>
<div>Porque comentar, explicar, escrever em ingles se nossa lingua e portugues e
temos uma deficiencia enorne de material tecnico de qualidade em lossa lingua.
Em meus códigos, eu SEMPRE documento, comento em portugues.</div>
<div> </div>
<div> </div>
<div>Está é só a minha opnião... Sem flames.</div>
<div> </div>
<div style="font-size:10pt;font-family:'Verdana'">Ricardo
Stock<br><a href="http://www.stocksistemas.com.br" target="_blank">http://www.stocksistemas.com.br</a></div>
<div style="font-style:normal;font-size:small;display:inline;font-family:"Calibri";text-decoration:none;font-weight:normal">
<div style="FONT:10pt tahoma">
<div> </div>
<div style="BACKGROUND:#f5f5f5">
<div><b>From:</b> <a title="tiago.peczenyj@gmail.com" href="mailto:tiago.peczenyj@gmail.com" target="_blank">Tiago Peczenyj</a> </div>
<div><b>Sent:</b> Thursday, February 27, 2014 10:12 AM</div>
<div><b>To:</b> <a title="saopaulo-pm@mail.pm.org" href="mailto:saopaulo-pm@mail.pm.org" target="_blank">saopaulo-pm@mail.pm.org</a> </div>
<div><b>Subject:</b> Re: [SP-pm]Perl write-only, que comece o flame [WAS Perl e
horário de verão]</div></div></div>
<div> </div></div>
<div style="font-style:normal;font-size:small;display:inline;font-family:"Calibri";text-decoration:none;font-weight:normal"><div><div class="h5">
<div dir="ltr">
<div>Existe o problema das culturas.<br></div>
<div class="gmail_extra"> </div>
<div class="gmail_extra">Se eu não sei programar, o que eu usar, seja C, Haskell
ou Perl, vai sair esquisito. Talvez funcione. Talvez resolva o meu problema. A
questão é que a linguagem evolui assim como a sua comunidade. Hoje tem uma parte
da comunidade que defende boas praticas, que defende testes, que defende um
codigo legivel.</div>
<div class="gmail_extra"> </div>
<div class="gmail_extra">Recentemente eu trabalhei num projeto Ruby ( <a href="https://github.com/peczenyj/MooseX" target="_blank">https://github.com/peczenyj/MooseX</a>
) e vou dizer, eu consigo produzir um codigo talvez até mais legivel em Ruby do
que em Perl. Porém vc tem casos onde a galera abusa do fato da linguagem possuir
classes abertas e não raro alguem injeta 500 metodos sem vc saber em alguma
classe tipo Object ou String. Eis o problema da cultura: não é só pq eu posso
que eu devo fazer. Existem praticas para produzir algo que seja usavel por um
grupo maior de pessoas e que seja possivel dar manutenção num futuro
proximo.</div>
<div class="gmail_extra"> </div>
<div class="gmail_extra">Estou trabalhando em Perl 5.12.2 e usando Moo. Eu tento
usar nomes legiveis para as minhas variaveis, eu tento adicionar comentarios /
pod quando preciso fazer algo obscuro</div>
<div class="gmail_extra"> </div>
<div class="gmail_extra">por exemplo:</div>
<div class="gmail_extra"> </div>
<div class="gmail_extra">
<div class="gmail_extra">sub _generate_random_foo {</div>
<div class="gmail_extra"> my ($thing) = @_;</div>
<div class="gmail_extra"> </div>
<div class="gmail_extra"> # to generate random foo based on the
thing:</div>
<div class="gmail_extra"> # 1 - sha1_hex of thing, to generate a
hexadecimal hash</div>
<div class="gmail_extra"> # 2 - pick two first
hexdigits (returns 0x00 <= x <= 0xff)</div>
<div class="gmail_extra"> # 3 - convert from hex to
decimal (returns 0 <= x <= 255)</div>
<div class="gmail_extra"> # 4 - apply 100 * value / 256 to
rescale between 0 <= x < 100</div>
<div class="gmail_extra"> # 5 - truncate to integer</div>
<div class="gmail_extra"> # 6 - abs returns a positive integer
or zero</div>
<div class="gmail_extra"> # 7 - modulus 100 will ensure it will
return something less than 100</div>
<div class="gmail_extra"> # we will return a number between zero
and 99</div>
<div class="gmail_extra"> </div>
<div class="gmail_extra"> abs( int( 100 * hex( substr(
sha1_hex($thing), 0, 2 ) ) / 0x100 ) ) % 100;</div>
<div class="gmail_extra">}</div>
<div> </div></div>
<div class="gmail_extra">os dois ultimos passos eu adicionei de paranoia depois
que acharam "coisas estranhas acontecendo".</div>
<div class="gmail_extra"> </div>
<div class="gmail_extra">qual o limite para isso ser legivel ou não? um bom
processo de code review. Se eu simplesmente remover os comentarios alguem vai
perder 20 minutos no futuro tentando entender essa porra.</div>
<div class="gmail_extra"> </div>
<div class="gmail_extra">Eu fui programar em Java semana passada. Cara que
dificuldade que é fazer um simples join ",", @array ! Eu preciso usar uma
biblioteca externa pra fazer isso. E adicionar uma biblioteca externa significa
depender de maven ( ou graddle) pra fazer alguma coisa que eu queria que tivesse
0 dependencias externas. No fim eu posso criar uma classe "Util" que vai ter
esse tipo de coisa. E Javadoc. Ou posso socar um foreach + StringBuilder no meio
da minha logica e ficar com um metodo de 75 linhas no fim das contas. A minha
dificuldade? estou fazendo sozinho, ninguem pra revisar ou criticar o meu
codigo.</div>
<div class="gmail_extra"> </div>
<div class="gmail_extra">Existem formas de analisar o codigo ( dependendo da
linguagem ) e achar problemas, metodos muito complexos, problemas de cobertura
de teste, etc. Esse tipo de ferramenta ajuda (E MUITO) mas não faz o trabalho
humano.</div>
<div class="gmail_extra">
<div> </div>
<div class="gmail_quote">2014-02-27 9:55 GMT-03:00 Blabos de Blebe <span dir="ltr"><<a href="mailto:blabos@gmail.com" target="_blank">blabos@gmail.com</a>></span>:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT:1ex;MARGIN:0px 0px 0px 0.8ex;BORDER-LEFT:rgb(204,204,204) 1px solid">
<div dir="ltr">Pra quem for continuar no assunto, seguem apenas umas
considerações menores e de pouca importância:
<div> </div>
<div><a href="https://metacpan.org/pod/Devel::Cover" target="_blank">https://metacpan.org/pod/Devel::Cover</a></div>
<div><a href="https://metacpan.org/pod/Perl::Critic" target="_blank">https://metacpan.org/pod/Perl::Critic</a><br></div>
<div><a href="https://metacpan.org/pod/Perl::Tidy" target="_blank">https://metacpan.org/pod/Perl::Tidy</a><br></div>
<div><a href="https://metacpan.org/pod/Test::Most" target="_blank">https://metacpan.org/pod/Test::Most</a><br></div>
<div> </div>
<div>Algo ainda mais irrelevante:</div>
<div> </div>
<div><a href="https://metacpan.org/pod/Catalyst" target="_blank">https://metacpan.org/pod/Catalyst</a><br></div>
<div><a href="https://metacpan.org/pod/Mojolicious" target="_blank">https://metacpan.org/pod/Mojolicious</a> (pra focar num flame de
cada vez)<br></div>
<div><a href="https://metacpan.org/pod/DBIx::Class" target="_blank">https://metacpan.org/pod/DBIx::Class</a><br></div>
<div><a href="https://metacpan.org/pod/Template" target="_blank">https://metacpan.org/pod/Template</a><br></div>
<div> </div>
<div>Eu to falando irrelevante, não pelos módulos em si, mas pela minha
abordagem na resposta. Eu não vou nem usar argumentos mais sólidos que
isso.</div>
<div> </div>
<div>Agora, criatura das neves, se com pelo menos isso, você ( um você
genérico, ninguém pessoalmente ok!? ) ainda acredita em Perl write-only, Papai
Noel ou no Pé Grande, nada pessoal, mas não me venha dizer que você é o
experiente grande programador foda do alto da montanha, porque, desculpa, você
não é.</div>
<div> </div>
<div>Se com todos esses frameworks de apoio ( pra citar o mínimo ) você ainda
escreve código tosco, **você** é o tosco, não a linguagem.</div>
<div> </div>
<div>Um código é tão ruim quanto a competência do infeliz que o escreveu, e
não por causa da linguagem.</div>
<div> </div>
<div>Existe Perl tosco? Sim. Existe. Tem coisas que eu diria que é Shell
Script com shebang perl.</div>
<div> </div>
<div>Mas se em 2014 você usa perl-5.18.2 pra escrever lixo, você é o tosco. E
se em 2014 você ainda propaga essa ladainha, desculpa cara, sai dos anos 90 e
vem viver no presente.</div>
<div> </div>
<div>Eu não sou tão velho assim, mas com 15 anos de mercado, já trabalhei com
algumas coisas (e ambientes) bem bizarras e posso garantir que não só em Perl,
mas em PHP, Java, C, .NET e coisinhas da moda (só pra citar as que eu já
trabalhei), dá pra achar coisas que vão te fazer sentir vontade de parir a
própria mãe só pra matar ela no berço por ter te criado e educado ao ponto de
vc ser obrigado a ver certos códigos. É triste.</div>
<div> </div>
<div>Por que a linguagem é write-only? Não, criatura, por que quem escreveu é
um imbecil.</div>
<div> </div>
<div>Assim como existem pedreiros ruins, médicos ruins, professores ruins,
surpresa, supressa, oh, existem programadores ruins! Nossa!</div>
<div> </div>
<div>Eu não vou nem entrar no mérito do gestor que te proíbe de refatorar
aquele código legado porque "mexer em código que está funcionando é
desperdício". Pra esse já me faltam adjetivos, talvez eu devesse aprender
klingon.<br></div>
<div> </div>
<div>E só pra deixar claro aqui, eu to criticando, o cara que hoje, faz coisa
tosca sabendo que é tosco e dá a desculpa esfarrapada de que é culpa da
linguagem.</div>
<div> </div>
<div>A existência de um legado, que foi construído dentro de um contexto
particular, embora questionável, é outro papo. Muito embora eu já tenha pegado
muito código legado do século passado, que é bem melhor escrito que os de
hoje.</div>
<div> </div>
<div>[]'s</div>
<div>
<div>
<div> </div>
<div>
<div> </div>
<div class="gmail_extra"><br><br>
<div class="gmail_quote">2014-02-27 8:27 GMT-03:00 Alceu Rodrigues de Freitas
Junior <span dir="ltr"><<a href="mailto:glasswalk3r@yahoo.com.br" target="_blank">glasswalk3r@yahoo.com.br</a>></span>:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT:1ex;MARGIN:0px 0px 0px 0.8ex;BORDER-LEFT:rgb(204,204,204) 1px solid">Em
<a href="tel:27-02-2014%2001" value="+12702201401" target="_blank">27-02-2014
01</a>:05, Blabos de Blebe escreveu:
<div><br>
<blockquote class="gmail_quote" style="PADDING-LEFT:1ex;MARGIN:0px 0px 0px 0.8ex;BORDER-LEFT:rgb(204,204,204) 1px solid">
<blockquote class="gmail_quote" style="PADDING-LEFT:1ex;MARGIN:0px 0px 0px 0.8ex;BORDER-LEFT:rgb(204,204,204) 1px solid">A
concepção de programadores experientes sobre Perl, pelo menos por onde
passei, é > que Perl ainda é linguagem
"write-only"<br></blockquote><br>Não tão experientes pelo
visto...<br><br>Mas isso é só um comentário pessoal e não agrega nada à
thread que<br>aliás, WTF o que eu to fazendo!? Passou, passou,
passou...<br><br></blockquote><br></div>Pelo contrário, faz parte do
problema conforme descrito pelo Geraldo. Acho totalmente válido seu
comentário, apesar de não ajudar muito. :-)<br><br>É difícil desfazer
preconceitos e geralmente leva tempo... algumas vezes eu acho que nem vale a
pena tentar.
<div><br><br>
<blockquote class="gmail_quote" style="PADDING-LEFT:1ex;MARGIN:0px 0px 0px 0.8ex;BORDER-LEFT:rgb(204,204,204) 1px solid">Talvez
seja uma boa realizar o trabalho sujo numa outra máquina,<br>produzir os
comandos de shell e enviá-los pra esse servidor via ssh ou<br>algo
parecido.<br></blockquote><br></div>Concordo. Ele só precisar saber o
horário de verão, e se usar Perl é um "problema" porque ninguém conhece,
pode usar shell script mesmo, comparar $TZ para saber que época do ano está
e usar ssh/telnet para executar o programa do HP Open View lá no True64, já
com o valor de timezone.<br><br>[]'s<span><font color="#888888"><br>Alceu</font></span>
<div>
<div><br><br>=begin disclaimer<br> Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/<u></u>listinfo/saopaulo-pm</a>><br>=end
disclaimer<br></div></div></blockquote></div>
<div> </div></div></div></div></div></div><br>=begin
disclaimer<br> Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>=end
disclaimer<br><br></blockquote></div><br><br clear="all">
<div> </div>-- <br>Tiago B. Peczenyj<br>Linux User #405772<br><br><a href="http://about.me/peczenyj" target="_blank">http://about.me/peczenyj</a>
</div></div>
</div></div><p>
</p><hr><div class="">
=begin disclaimer<br> Sao Paulo Perl Mongers:
<a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>SaoPaulo-pm mailing list:
<a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>=end
disclaimer<br></div><p></p></div></div></div></div>
<br>=begin disclaimer<br>
Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>Tiago B. Peczenyj<br>Linux User #405772<br><br><a href="http://about.me/peczenyj" target="_blank">http://about.me/peczenyj</a>
</div>