Escolar Documentos
Profissional Documentos
Cultura Documentos
programao de computadores, embora elas possam ser vistas como pontos da filosofia
Unix:
Regra 1: Voc no pode dizer qual trecho de um programa lento. Os gargalos ocorr
em em locais que surpreendem, portanto, no tente supor e determinar uma soluo at que
tenha determinado exatamente onde se encontra o gargalo.
Regra 2: Mea. No otimize o programa at que voc tenha medido o seu tempo de execuo,
e mesmo depois de medido o tempo, no otimize a menos que uma parte do cdigo estej
a gastando muito mais tempo em comparao com o restante do programa.
Regra 3: Algoritmos extravagantes so lentos quando n pequeno, e n normalmente
pequeno. Algoritmos extravagantes tm grandes constantes. At que voc saiba que n to
rna-se freqentemente grande, no seja extravagante. (Mesmo se n tornar-se grande, u
se a Regra 2 primeiro.)
Regra 4: Algoritmos extravagantes contm mais defeitos que algoritmos simples
e so mais difceis de implementar. Utilize algoritmos simples assim como estrutura
de dados simples.
Regra 5: O dado domina. Se voc escolher a estrutura de dados certa e organiza
r bem as coisas, os algoritmos surgiro naturalmente. O elemento central da progra
mao a estrutura de dados, no o algoritmo.
Regra 6: No existe Regra 6.
As regras 1 e 2 de Pike, reforam a famosa mxima de Tony Hoare: "A otimizao prematura
a raiz de todo mal." Ken Thompson reescreveu as regras 3 e 4 da seguinte forma:
"Quando em dvida, use fora bruta." As regras 3 e 4 so exemplos da filosofia de pro
jeto KISS. A regra 5 foi colocada anteriormente por Fred Brooks no livro The Myt
hical Man-Month. A regra 5 freqentemente resumida como: "escreva um cdigo burro qu
e use uma estrutura de dados inteligente", e um exemplo da norma "Se a sua estru
tura de dados boa o bastante, o algoritmo para manipul-la dever ser trivial."