Desenvolvimento
Performance – menos requets e mais cache
by Michael Mafort on jan.29, 2010, under Desenvolvimento, PHP
Oba eu também quero! Mas o que é isso?
Uma das melhores praticas para se ter uma boa performance em sua página web é reduzir o número de requisições ao servidor, pois cada requisição abre um canal de comunicação que é composto por uma mensagem de ida que aguarda a mensagem de volta, que será a resposta, numa página pode ser html, imagem, css, js etc. Por isso é importante reduzir este número de requisições, pois o que vai tornar a exibição da página mais rapido não será necessariamente o seu tamanho total em Kb mas sim a quantidade de requisições que ela tem.
Agora sim!
Para economizarmos ( economia trabalha o melhor uso de recursos escassos, no nosso caso o tempo ) e ganharmos performance, uma das técnicas é da utilização de renderização de imagens usando inline images rfc 2397, ou seja você não vai ficar fazendo 1 requisição para cada imagem, elas irão ser carregadas juntamente com o seu html, isto agiliza o processo de renderização, diminui os seus requests e possibilita um controle de cache maior, pois todas as imagens estarão no mesmo arquivo html.
Vamos a prática
1 2 | No seu html vai ficar assim: <img src="<?php echo renderImagem( " alt="" />"> |
Com isso você irá reduzir consideravelmente os requests de imagens no seu servidor, diminuindo o tempo para renderização da página, no entando isto aumenta um pouco o tamanho da imagem que era compactada e passou a ser descompactada e enviada via base64, mas para isto há uma solução muito rápida e prática com o uso do mod_deflate do apache, mas isto já é assundo para um novo post.
Até logo e obrigado pelos peixes!
Metodologia ágil de trabalho – SCRUM
by Michael Mafort on jan.18, 2010, under Desenvolvimento
Boa galera, após um tempo off retorno ao blog postando sobre um tema atual, discutido amplamente pelas grandes empresas de desenvolvimento de software, o SCRUM.
Meu depoimento neste artigo é de alguém que está vivenciando este processo, ou seja não aprofundarei no assunto, mas darei umas dicas rápidas para quem interessar (acredito que todos que lerem) possam aprofundar pelo vasto conteúdo disponibilizado na web.
Então vamos ao que interessa:
O que é SCRUM? É nada mais nada menos que uma metodologia para gerenciamento de projetos, com um detalhe que seu foco é a agilidade do processo.
Nesta metodologia, o seu principal foco é entregar o que foi proposto no prazo determinado, ou seja nunca poderá ter atrasos, os prazos não são passiveis de negociação. Caso haja algum impecílio durante o desenvolvimento, o prazo será cumprido e o que poderá ser negociado é a questão do escopo do que será entregue. Ex.: Acordou que iria entregar em 1 mês o sistema de cadastro, com edição, listagem e visualização, sendo que na visualização teria uma feature para aprimorar a visualização do conteúdo (firula), mas o prazo ia estourar, então o que é negociado é deixar esta feature para uma proxima data (se couber dentro do proximo planejamento ela deve ser executada, senão vai ficando para o final do projeto). Desta forma você não se embaralha com os prazos cumprindo a risca e no final vai ter apenas algumas revisões de alguma coisa que porventura não conseguiu fazer dentro do prazo planejado.
Outra coisa extremamente importante neste processo é o acompanhamento diário, geralmente através de reuniões rápida (15 min.) onde se discute o que foi feito no dia anterior, o que vai ser feito hoje e o que me impede de atingir minha meta. Desta forma todos os envolvidos (programador e cliente) estão sempre cientes do que está sendo feito, não saindo do controle e facilitando a correção de possíveis alterações no escopo do projeto.
Com isto você ganha controle e confiabilidade de seu cliente, tornando o seu processo mais ágil e confiável, pois reduz numerosamente a quantidade de bugs no sistema.
Referências: