
No mês passado concluímos mais um projeto. O tempo anda um pouco corrido por aqui, então acabamos divulgando hoje aqui no blog. Desta vez o projeto foi o blog Ameixa Japonesa (ameixajaponesa.com.br), onde o cliente queria melhorar radicalmente o blog antigo, que já fazia bastante sucesso.
Foi um projeto bem interessante e com um tema muito agradável. Uma das principais exigências foi a capacidade de suportar imagens grandes, além de ser possível o cliente administrar tudo com conhecimento técnico zero.
Nosso papel foi migrar do Blogger para algo mais profissional, com um layout renovado e moderno mas “clean”. O resultado foi a transformação do blog abaixo:

Para este novo:
Como foi desenvolvido
Como o blog original estava hospedado no Blogger, nem cogitamos a idéia de mante-lo lá devido às dificuldades de customização da plataforma, o painel administrativo fraco, além de não termos muito controle sobre o servidor.
Codificar um sistema de blog inteiro não estava dentro dos planos, então muitos poderiam argumentar o uso de algum CMS em Ruby. O grande problema é que Ruby possui bons CMS’s, mas nada ideal para blogs quando o objetivo do cliente é algo profissional com vários posts ao dia.
O projetos minimalistas com Enky estavam totalmente fora de cogitação já que o cliente não é técnico e seria preciso algo mais robusto. Mephisto (o que usamos para o nosso próprio blog) é interessante mas está muito abaixo das funcionalidades do Wordpress. O Typo parece ter voltado a ser uma plataforma interessante e em constante desenvolvimento, inclusive atualizado para o Rails 2.3.5 e Ruby Enterprise Edition. Porém não chegamos a testá-lo novamente pois já tivemos problemas com ele anos atrás (mas assim que sobrar um tempo vamos voltar a experimentá-lo).
Nós honestamente gostaríamos muito que tivéssemos algo tão robusto em funcionalidades e simples de se usar como Wordpress, porém escrito em Ruby. Mas como esta não é a realidade, nos restará apenas o WP.
Antes que comecem a argumentar que o WP é muito bom, nós dizemos que, de fato ele é muito bom se você vai apenas pegar um template pronto e colocar um blog default online. O grande problema do Wordpress é a confusão que é o código fonte do projeto, além de ser quase impossível encontrar plugins de qualidade. Então, se você precisa criar um template próprio ou acrescentar funcionalidades na administração, você está por sua conta e de pouco adiantará os milhares de plugins.
Como o serviço é muito bom e a forma como o cliente administra o blog é sem dúvida uma das melhores do mercado, não sobra outra alternativa. O grande problema é que como desenvolvedor Ruby, estamos acostumados com dezenas de boas práticas do mundo Rails como: divisão de ambientes, deploy automatizado, testes automatizados, organização em arquitetura MVC e etc. Este tipo de organização e prática passa bem longe do Wordpress.
De qualquer forma, é possível contornar esta situação e criar algo razoavelmente simples de manter. O que fazemos é evitar ao máximo os plugins e criando métodos para ignorar práticas ruins (incentivadas pelo WP) como pegar posts por ID da categoria.
Colocando online
Mais uma coisa que consideramos inaceitável é atualização de plugins e do próprio Wordpress direto pelo site. Por isso sempre trabalhamos com atualizações e qualquer alteração localmente. É uma pena não existir esta cultura e o WP não ter sido feito pensando assim. Para remediar o caos que pode ser o deploy, adaptamos uma receita do Capistrano, transformando o deploy tão trivial quanto em Ruby.
Criamos a receita abaixo e versionamos o projeto com Git:
O que ocorre acima é nada mais do que configurar algumas coisas como domínio, repositório git e caminha do projeto no servidor (nada diferente de Rails). A diferença está nas pastas compartilhadas entre cada deploy. Mantemos avatares, uploads, cache e ads em uma pasta compartilhada.
Nós não versionamos o wp-config.php que contém as senhas do DB, então criamos uma tarefa para fazer o upload deste arquivo.
Com tudo configurado agora colocamos as alterações online rodando apenas o famoso comando: cap deploy
Resultado final
O apanhado final do projeto foi um template customizado, feito a partir do zero (sem os lixos como posts por ID da categoria). Quase não usamos plugins, e os existentes foram bem analisados e/ou fizemos vários ajustes. Utilizamos uma forma própria de deploy automatizado via Capistrano com Git. E para terminar, um arquivo de funções gigante que reproduz coisa muita que estamos acostumados no Rails (métodos link_to, image_tag, etc).
Desta forma temos um projeto simples de manter e bem organizado além de atender às expectativas do cliente.
Internet Explorer
Não é novidade que a maior pérola da internet é o Internet Explorer. É incontestável a inferioridade do navegador. E para este projeto seguimos a tendência atual da internet de evitar as versões mais antigas do IE.
No Ameixa seguimos o que já explicamos neste post . O site é compatível com IE6 e IE7 e contém todos os hacks para o layout ficar perfeito nestes e nos demais navegadores. Ao acessar o site com os IE6 e IE7, o usuário é avisado que existe uma nova versão do navegador e que ele deveria atualizá-lo.
O mais interessante é que IE6 não representa nem 5% do usuários do site. O IE representa no geral apenas 30% do tráfego total (mas ficando em 2º lugar). O primeiro colocado é o Firefox, o terceiro o Chrome e o Safari também possui uma boa fatia de acessos.


