<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
> <channel><title>Cauan Cabral &#187; otimização</title> <atom:link href="http://cauancabral.net/tag/otimizacao/feed/" rel="self" type="application/rss+xml" /><link>http://cauancabral.net</link> <description>Geek, nerd e apaixonado por tecnologia</description> <lastBuildDate>Sat, 24 Sep 2011 22:13:29 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>Dica Rápida &#8211; Otimizando código</title><link>http://cauancabral.net/2010/02/08/dica-rapida-otimizando-codigo/</link> <comments>http://cauancabral.net/2010/02/08/dica-rapida-otimizando-codigo/#comments</comments> <pubDate>Tue, 09 Feb 2010 01:12:36 +0000</pubDate> <dc:creator>Cauan Cabral</dc:creator> <category><![CDATA[CakePHP]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[dica]]></category> <category><![CDATA[otimização]]></category> <category><![CDATA[qualidade]]></category> <guid
isPermaLink="false">http://cauancabral.net/?p=203</guid> <description><![CDATA[Há um bom tempo atrás rolou uma discussão na lista do PHPMS sobre um comparativo de performance entre PHP x Python x Ruby x Perl. Bom, a conclusão que tirei do comparativo foi de que a velocidade de execução é &#8230; <a
href="http://cauancabral.net/2010/02/08/dica-rapida-otimizando-codigo/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Há um bom tempo atrás rolou uma discussão na lista do PHPMS sobre um <a
title="PHP x Python x Ruby x Perl" href="http://groups.google.com/group/phpms/browse_thread/thread/f4e76f4d94763866/f76cb1b77f28a25b" onclick="pageTracker._trackPageview('/outgoing/groups.google.com/group/phpms/browse_thread/thread/f4e76f4d94763866/f76cb1b77f28a25b?referer=');">comparativo de performance</a> entre PHP x Python x Ruby x Perl.</p><p>Bom, a conclusão que tirei do comparativo foi de que a velocidade de execução é importante, mas mais do que isso, o programador é essencial. No exemplo da thread supracitada, o PHP perdia feio para as outras linguagens, mas olhando para o código escrito em PHP, dava para notar  vários erros de uso da linguagem e suas funções (ponto para o <a
href="http://twitter.com/begnini" onclick="pageTracker._trackPageview('/outgoing/twitter.com/begnini?referer=');">Begnini</a> que viu o código antes de todos).</p><p>Então a dica de hoje é: estude bem a linguagem. Procure a saber o funcionamento das funções e construções da linguagem, isso é essencial para se tornar um bom programador.</p><p>Exemplos de código</p><div
class="wp_syntax"><div
class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">//uso comum</span>
<span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
  <span style="color: #339933;">...</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//forma mais adequada</span>
<span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #000088;">$c</span> <span style="color: #339933;">=</span> <span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$c</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #339933;">++</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#41;</span>
 <span style="color: #339933;">...</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//outro caso, ao invés de forçar várias verificações</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$a</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">100</span> <span style="color: #009900;">&#41;</span>
 <span style="color: #339933;">...</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$a</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">100</span> <span style="color: #009900;">&#41;</span>
 <span style="color: #339933;">...</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$a</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">100</span> <span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//use a estrutura adequada</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$a</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">100</span> <span style="color: #009900;">&#41;</span>
 <span style="color: #339933;">...</span>
<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$a</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">100</span> <span style="color: #009900;">&#41;</span>
 <span style="color: #339933;">...</span>
<span style="color: #b1b100;">else</span> <span style="color: #666666; font-style: italic;">//não precisa fazer o último teste</span>
 <span style="color: #339933;">...</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// esse último caso que me inspirou a fazer o post</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// a pessoa só queria saber se o array $var tava vazio, e para isso contou todos os seus elementos</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span>
 <span style="color: #339933;">...</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// enquanto ela poderia ter usado uma verificação direta como</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span></pre></div></div><p>Este último caso, que motivou o post foi visto no changelog da versão 1.2.6 do CakePHP. Neste caso o &#8220;erro&#8221; foi encontrado e corrigido pelo brasileiro <a
title="Blog do Juan Basso" href="http://blog.cakephp-brasil.org/" onclick="pageTracker._trackPageview('/outgoing/blog.cakephp-brasil.org/?referer=');">Juan Basso</a> neste <a
title="Commit do Juan Basso para o CakePHP 1.2.6 - otimizações" href="http://github.com/cakephp/cakephp1x/commit/a96c157d948e2f3c1fa55b5d422121c323859626" onclick="pageTracker._trackPageview('/outgoing/github.com/cakephp/cakephp1x/commit/a96c157d948e2f3c1fa55b5d422121c323859626?referer=');">commit</a>.</p><p>O intuito do post não é meter o dedo na cara de ninguém, apenas alertar para situações onde culpamos uma determinada linguagem pelo desempenho de nossa aplicação quando o problema na verdade é o mal uso que estamos fazendo.</p><div
id="crp_related"><h3>Outros posts que podem interessar:</h3><ul><li><a
href="http://cauancabral.net/2011/01/09/mantendo-uma-base-de-codigo-organizada-e-documentada/" rel="bookmark" class="crp_title">Mantendo uma base de código organizada e documentada</a></li><li><a
href="http://cauancabral.net/2009/02/25/cakephp-duvidas-comuns-2/" rel="bookmark" class="crp_title">CakePHP &#8211; Dúvidas Comuns #2</a></li><li><a
href="http://cauancabral.net/2008/01/23/validao-de-dados-em-php5-parte-3/" rel="bookmark" class="crp_title">Valida&#231;&#227;o de dados em PHP5 &#8211; Parte 3</a></li><li><a
href="http://cauancabral.net/2009/02/23/cakephp-duvidas-comuns-1/" rel="bookmark" class="crp_title">CakePHP &#8211; dúvidas comuns #1</a></li><li><a
href="http://cauancabral.net/2010/08/13/dica-rapida-evitando-problemas-com-uso-de-jquery-e-imagens/" rel="bookmark" class="crp_title">Dica Rápida &#8211; Evitando problemas com uso de jQuery e imagens</a></li></ul></div>]]></content:encoded> <wfw:commentRss>http://cauancabral.net/2010/02/08/dica-rapida-otimizando-codigo/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> </channel> </rss>
