Strict Standards: Non-static method themeGluedIdeas_Subtle::initOptions() should not be called statically in /home/riopro/www/blog.riopro.com.br/wp-content/themes/gluedideas_subtle/header.php on line 19
Riopro Blog - » Mature optimization versus Premature optimization

Mature optimization versus Premature optimization



Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Aqui na Riopro, volta e meia nos vemos discutindo e ouvindo a seguinte frase: “mas isso é otimização prematura, deixa ver se isso realmente vai ser um gargalo”. É, isso é muito verdade. A preocupação extrema em otimizar e fazer tudo ficar muito rápido, muitas vezes dá trabalho e o ganho real é ínfimo. Além disso, pode trazer prejuízos reais, como tornar seu sistema menos testável e menos legível.

“Forget about small efficiencies, say about 97% of the time:
premature optimization is the root of all evil.”-Donald Knuth.

Ok, mas experiência tem que contar para alguma coisa, não é? Foi aí que lendo o ótimo artigo Scaling Rails, me deparei com a expressão que cabe corretamente para alguns problemas: Mature Optimization. No artigo, que é ótimo como um todo, ele fala uma coisa muito correta (tradução bem livre): “quando o custo da precaução for bem baixo ou, às vezes, dar o mesmo trabalho, por que não resolver logo”. E aí acrescento o comentário feito no primeiro parágrafo que diz que além do tempo, devemos também ponderar se estaremos comprometendo os testes o a leitura do fonte.

Isso, ao menos para mim, vale para gargalos clássicos como e-mail. Sei que podemos mandar um e-mail durante a requisição. Mas isso obviamente vai gerar um custo mesmo que só tenhamos 1 só usuário (ou você acha que mandamos um e-mail em menos de 2 segundos). Ou seja, faça o trabalho certo logo e coloque esse e-mail de forma assíncrona!

Informações e Links

Junte-se comentando, lendo o que os outros dizem ou colocando um link a partir do seu blog.


Outros Artigos

Strict Standards: Only variables should be assigned by reference in /home/riopro/www/blog.riopro.com.br/wp-includes/post.php on line 117
Placas de rede no Linux

Strict Standards: Only variables should be assigned by reference in /home/riopro/www/blog.riopro.com.br/wp-includes/post.php on line 117
Entrevista do Linus Towards - prazer de programar

Comente

Tire um tempo para comentar e nos dizer o que você acha. Alguns códigos HTML são permitidos para formatação.

Comentários dos Leitores

Seja o primeiro a comentar!