<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>