Arquivo da Categoria ‘Web Design’


No primeiro post Um portal Joomla preparado para um bombardeio de acessos. Vemos que é necessário fazer na garagem, chegou a vez do tanque de combustível

 

No Segundo post falamos sobre as bases de dados que seria o tanque de combustível.

 

Agora chegou a vez do Motor e da Lataria

Continuando a nossa busca pela máquina perfeita, vamos agora falar sobre os elementos que podem ser “fuçados” no motor e quais seriam os elementos de design para aumentar a potência e a estabilidade do nosso portal desenvolvido em Joomla.

Falando de motor

motorO Joomla tem alguns elementos nativos da ferramenta, alguns que ajudam e outros que podem atrapalhar. Com um ajuste fino é possível deixar redondo e obter a melhor performance.

Cachê – Estas funcionalidades ficam no backend do joomla na opção site >> Configuração Global opção sistema. O objetivo da função cachê é diminuir as requisições à base de dados e assim acelerar o acesso, guardando as respostas aos pedidos à base de dados durante um determinado tempo (que o próprio administrador decide). Não entendeu?

Cachê ativado - significa que a resposta ao pedido do browser é dada a partir de um pedido anterior evitando-se novo pedido à base de dados.
Cachê desativada – significa que cada usuário que entrar no site vai consultar o banco de dados para montar a página.

A duração do cachê é uma opção configurável e em geral o melhor que eu indico é:     

Recomendações de cache.

Session – A configuração desta funcionalidade diz quanto tempo vai durar a seção de acesso criada para cada usuário que visita o site. Neste caso a melhor configuração seria algo em torno de 20 a 80 minutos para que a seção não finalize rapidamente e seja necessário novo processamento para criar uma nova sessão.

Estatística de acesso a banners - O joomla contabiliza todos os acessos e views (visualizações) dos banners o que prejudica e muito a performance. Em websites com milhões de acessos, não tem jeito, temos que perder esta funcionalidade. Imagine um portal com 10 banners na home e 100 acessos simultâneos? Teríamos 1000 updates simultâneos para o MySql executar.
Como corrigir o problema?

Cometendo o pecado de alterar o código do CORE. (Infelizmente)
components/com_banners/banners.php linha 108 a 116

$query = 'UPDATE #__banner'
            ' SET impmade = impmade + 1'
            ($expire ? ', showBanner=0' : '')
          ' WHERE bid = '.(int) $item->bid;

$db->setQuery( $query );
            if(!$db->query()) {
              JError::raiseError( 500, $db->stderror());
         }

Query de busca – O select executado pelo joomla no componente de busca está longe de ser considerado um primor, quando se trata de muitos acessos é claro que isso faz toda a diferença. Além de customizar e melhorar a query de busca uma saída indicada é substituir o select simples que o joomla faz por FULL TEXT. Mas afinal o que seria isso? Trata-se de trocar a consulta comum que é executada pelo JOOMLA e utilizar essa técnica do mysql: MATCH (col1,col2,…) AGAINST (expr [search_modifier])
 (http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html).
Detalhe, esta técnica só funciona com tabelas do tipo MyIsam.

Ordering no com_content - O componente com_content faz parte da vida de quem trabalha com o joomla, é ele o responsável pelo cadastramento de conteúdos do site. Existe um problema no administrator que acontece quando; Cadastramos um novo conteúdo, desabilitamos ou o selecionamos para a FrontPage(home). Ao sofrer algumas destas ações o com_content reordena todos os conteúdos, ou seja, desencadeia uma quantidade enorme de up-dates em registros da tabela jos_content. A melhor opção e desabilitar esta funcionalidade automática e somente o fazer quando o usuário der o comando nos gerenciamentos de ordenação disponíveis
 

Uso indiscriminado de extensões - É impossível dizer com exatidão quantas extensões existem para joomla disponíveis na web. Às vezes a facilidade que algumas delas oferecem para resolver o nosso problema pode se tornar uma dor de cabeça em questões de segurança e performance, a saída não existe. Porém o melhor a se fazer é baixar somente as que estão no joomla.org que hoje são em torno de 3.579. Sempre que optar por usar uma extensão esteja ciente de que ela não é parte do joomla e por isso não é de responsabilidade do core.

Falando de Lataria

É isso, vamos agora falar de design, assim como nos carros o desenho do carro ajuda na estabilidade e na performance.
Abaixo segue um quadro que demonstra as Leis de construção de layouts turbinados

Logomarca do tablelessTableless X tabelas – Use tableless. O código fica menor, quantidade de kbytes da página cai, além de proporcionar uma execução mais uniforme e inteligente do código.

Reutilização de classes CSS – Sempre opte pela construção de código CSS que se utilize de herança, pois isso também vai reduzir a quantidades de linhas e o tamanho dos arquivos. css

Utilização correta para extensões de imagens – Apesar de ser um assunto batido é sempre bom relembrar que PNG e GIF é para Ícones e imagens menores e JPG é para imagens com maior número de cores e mais riqueza de detalhes
    
javascriptFramework javascript – Escolha apenas 1, processar 2 ou mais framework pode afetar o desempenho, pois será necessário fazer esse duplo carregamento

Código CSS em uma linha só – O código CSS edentado é ótimo para programadores, é péssimo para o desempenho, em produção envie o código todo em uma linha só isso vai reduzir o tamanho do arquivo em 60% e representa um ganho mais que relevante de processamento.

Estas práticas vão ajudar e muito no desempenho do portal, finalizo aqui a série de três matérias de melhoria de desempenho em joomla. O conjunto destas ações vai fazer com que o seu portal tenha a força de um trator e a velocidade de um formula 1. O que é isso, um tratormula 1?
 
Daniel Leandro (twitter @danielleandro).
Agradecimento especial a Rafael Berlanda twitter(@berlanda) e Reinaldo Soares especialistas em performance e segurança joomla do ministério da educação que colaboraram mesmo sem saber com essas séries de artigos.

 

Daniel Leandro / 13 de novembro de 2009

Metodologia de desenvolvimento

quinta-feira, 20 de agosto de 2009

Senhores, é um prazer estrear este blog, mesmo que em desenvolvimento.

Estou na correria, cheio de trabalho, mas a o tão esperado blog da noix eu não resisti. Parei tudo que estava fazendo e entrei aqui para fazer o primeiro post.

O assunto será metodologia de desenvolvimento porque está fresquinho e a pleno vapor com os projeto do Ministério da Educacão e TRT da 8 Região.

Comecei a Trabalhar com gerência de projeto WEB este ano, porém minha experiência como analista de desenvolvimento já é de 10 anos. No início do desenvolvimento web tudo era muito mais simples e o nível de exigência dos projetos era mínimo. Bastava fazer uma reunião de briefing, uma levantamento rápido de funcionalidades, criava-se um cronograma em uma planilha em excel e mão na massa. A WEB não é mais aquela – ainda bem pra quem trabalha sério e muito ruim para as empresas de fundo de quintal ao para os famosos sobrinhos que sabem AGATÊEMELE. Site ou portal hoje em dia é assunto muito sério. Usabilidade, acessibilidade, arquitetura de informação, webwriting, otimização para buscadores, código semântico, mídias sociais e outras tantas preocupacões são uma realidade. A saída para fazer um projeto web foi a criacão de METODOLOGIAS, não havendo uma metodologia clara para definir como escopar este projeto a chance de errar se torna muito grande. Então apresento-lhes:

Moebius, onde encontrei a receita do sucesso. (mais…)

Daniel Leandro / 20 de agosto de 2009