Otimização de Software: Quando? Onde? Porquê?

ago 13
2009

A otimização de software é um dos tópicos mais mal-entendidos pelos profissionais de TI. Muitos pensam que a performace só deve ser levada em consideração ao final do desenvolvimento, devido a uma máxima conhecida por muitos "premature optimization is the root of all evil", em tradução livre "otimização prematura é a raiz de todos os males". Este dizer é mal-interpretado por muitos como: todas as considerações de performace devem ser feitas apenas ao final do desenvolvimento. É mesmo? Problemas de performance podem e devem ser previstos durante a fase de projeto, como tudo em software, quando mais cedo o problema é encontrado, mais barato é a solução.

O mal entendido

O dizer “otimização prematura é a raiz de todos os males” de Donald Knuth está incompleto. A forma completa é “We should forget about small efficiencies, say about 97% of the time, premature optimization is the root of all evil.”, em tradução livre “Devemos esquecer as pequenas eficiências, digamos 97% do tempo, otimização prematura é a raiz de todos os males.” Donald Knuth estava falando da micro-otimização do código, não fornecendo um passe livre para métodos ineficientes.

Outro ponto a ser considerado, é a época na qual Donald Knuth fez a sua declaração. Naqueles idos tempos, otimização normalmente consistia em ficar contando ciclos de CPU gastos em cada instrução. Com certeza, esse tipo de preocupação não é adequada no momento do projeto do sistema. Ele não estava falando da escolha do algoritmo, estruturas de dados, uso adequado de loops, etc..

Read the rest of this entry »

7 Pontos Críticos de um bom Software

ago 03
2009

Ao se fazer um programa, além do funcionamento correto e desempenho, mais fatores contribuem para que esse seja um bom software. A interface não é lugar para arrombos criativos ou para um amontoado de opções de menus, ícones, etc. A documentação precisa estar presente. Abaixo detalho 7 pontos críticos.
Read the rest of this entry »

Últimos Visitantes

Google Friend Connect