Desenvolvimento

Drupal para soluções grandes

A muito tempo que venho apostando em softwares livres e agora foi a vez do projeto Drupal. Ele é um CMS robusto com milhares de módulos e funcionalidades. Costumo dizer que Drupal é a única aplicação que não é orientada a objetos, totalmente solta, trabalhando com tokens e que FUNCIONA.

Após passar por um grande projeto de portal tive experiências com o CMS para opinar e saber alguns truques relacionados a desempenho, tratamento, cache e escalabilidade. Muitos detalhes só foram percebidos depois de um tempo de uso e migração de conteúdos.

Ambiente:
Realmente o ambiente mais indicado seria Linux, Apache com ModRewrite e PHP 5.2. Quanto ao banco estou trabalhando com MySQL. Não utilizei php 5.3 pois alguns módulos tem tido problemas.

Tratamento de Cache:
Nativamente Drupal tem um módulo de cache mas ele não é bem o que se espera. Para melhores resultados optei pelo Boost; ele gera HTML, compacta arquivos CSS e JS com facilidade.
Outro ponto importante é saber o que é necessário gravar no banco como log. Como utilizo o módulo do Analytics não vejo necessidade de gravar estatísticas em banco, assim como também não vejo necessidade de gravar log em banco uma vez que se o php e apache estiverem configurados corretamente os erros serão armazenados em algum local.

Manutenção:
Esse ponto foi complicado de ser resolvido. Imaginem que terá várias áreas de publicação de conteúdos, vários tipos de conteúdos, várias áreas para apresentar tais conteúdos. Minha dica é: O que for possível colocar em menu coloque mas o que não for trate com taxonomia. O que quero dizer é que possivelmente informações sobre sua empresa serão textuais e com isto é mais interessante colocar no menu; porém notícias, vídeos e outros dados serão publicados constantemente e terão várias áreas dedicadas a eles, a idéia então é categorizá-los usando taxonomia pois as views e painéis trabalharão muito bem.

Problemas comuns:
Encontrei vários problemas relacionados a conteúdos e publicação dos mesmos usando workflow. O mais comum foi tratar corretamente o cache mas como já expliquei acima o boost resolve bem. Outro problema muito grave é a permissão dos conteúdos. Entendam que na etapa de desenvolvimento muitas coisas irão mudar, muitas idéias irão surgir e com essa bagunça toda seu conteúdo migrado poderá sofrer. Diversas vezes percebi que uma página não estava online para usuários anônimos mas existia para autenticados; a dica é: de temos em tempos reconstrua as permissões dos conteúdos, isso irá garantir que papéis e regras sejam renovadas nos conteúdos. CUIDADO essa operação demora um pouco, faça de maneira planejada.

Módulos bem interessantes:
Vou citar alguns módulos que gostei bastante e que podem ajudar sua vida de alguma maneira:
lightbox2 – Muito bom para imagens e galerias
gmap, location – Georeferenciamento, USE A VERSÃO BETA
views, panels, menu_node, cck – Esses módulos realmente dão qualidade e facilidade no desenvolvimento.

Este post foi criado com ajuda de @raphox. Ele fez o deploy do Drupa em Windows e acreditem, está show! É isto gente… espero que gostem