Este post surgiu quando eu ia publicar aqui a apresentação Extreme Javascript Performance, do autor do script.aculo.us, Thomas Fuchs. O post é mais amplo, não trata de javascript e nem do código em si, mas sim da importância (ou não) de levar em consideração possíveis problemas de performance que poderão causar problemas no futuro.
Quando comecei a "programar"¹ eu não ligava muito para performance. Ok, eu não ligava nem um pouco.
Motivos que levam um desenvolvedor (noob) não ligar para performance:
- Ele não sabe bem o que está fazendo
- A aplicação terá poucos usuários (sobra de recursos)
- Eventuais problemas de performance não vão causar prejuízo financeiro
- Pensamento POG: funcionou, deixa assim
Pois bem, guri novo que era, tinha os 4 elementos que precisava para fazer cagada. E obviamente fazia. Fiz meu primeiro blog em PHP, funcionava, postava, subia imagem… o código era uma porcaria, mas funcionava.
Fazer bem feito para fazer só uma vez, né?
Performance – porque se preocupar?
Com o tempo cresci (apenas no modo de pensar e programar, na altura quem me conhece sabe: nada.), aprendi coisas novas e coisas que eu já deveria saber, brinquei fazendo "mini-serviços", desenvolvi o And After e testei e produzi uma ferramenta que inicialmente era só para o And After mas acabei abrindo e foi utilizada por centenas de publishers – a Vitrine Fácil.
Nesta época eu já dava importância para performance, código bem escrito, mas ainda faltava experiência de gerenciar de "cabo a rabo" uma aplicação que fosse utilizada por diversos usuários, e eu tinha uma tremenda inexperiência com uma coisa importantíssima quando se fala de performance: cache.
Mas mais do que aprender como melhorar performance (isso a gente aprende programando e lendo, mas as vezes "esquece") eu aprendi os motivos para se preocupar com performance dos nosso códigos. E segue uma listinha:
- Downtime custa CARO quando a ferramenta é lucrativa
- Downtime suja o nome do serviço (lembram do No Donut for you?)
- Se o sistema/aplicativo for bom ele terá usuários
- Você não pode freiar o crescimento do sistema (é o mesmo que freiar os lucros)
- Muitas vezes é impossível prever o crescimento
Como melhorar a performance do código?
Já que optei neste post por não tratar de nenhuma linguagem específica, para alguns leitores as dicas podem ficar uma coisa superficial, mas espero que de alguma forma ajudem na forma de um guia inicial para começar a se preocupar com performance…
- Cache é importante
- Estude e domine a linguagem que está utilizando (siga as boas práticas recomendadas)
- Acompanhe o crescimento do seu serviço / site
- Realize testes de stress no servidor
- Monitore "de perto" como está o seu servidor (consumo)
- Lembre-se denovo: cache é importante
- Verifique: é necessário otimizar? Não vai prejudicar a manutenção do código ou o desenvolvimento de novas features?
Cada caso é um caso, otimizar é importante e pode fazer você economizar com servidor porém não deve lhe causar muita dor de cabeça na hora de fazer uma alteração ou aumentar as funcionalidades do sistema… 😉
Recomendo um posto do meu xará, Guilherme Chapiewski: A falácia da otimização prematura, que aborda a célebre frase “A otimização prematura é a raiz de todo o mal” – e muitas vezes não é bem assim.
E você, se preocupa com performance? Discorda do que foi dito acima? Concorda?
Comente, gostaria de saber opiniões dos leitores também 😀
¹ As aspas são para indicar um fato simples e que não precisa de maiores explicações: comecei a programar sozinho, like a noob.