drails – Dojo + Rails

drails

Dica rápida para quem se interessou no post anterior sobre Dojo. Eu pesquisei e encontrei um plugin que substitui os helpers do Rails para utilizar Dojo ao invés de Prototype. É o drails.

A instalação é simples:

# drails relies on the dojo-pkg gem.  Installing this gem can sometimes take a while
gem install dojo-pkg

cd my_rails_app
script/plugin install git://github.com/foobarfighter/drails.git

Para maiores informações acesse o README do plugin no github.

Abra sua caixa de ferramentas com Dojo

dojo toolkit logo

Antes de tudo, Dojo não é só mais um framework Javascript como jQuery, Prototype e Mootols. Em muitos casos esses facilitam o desenvolvimento, no entanto, quando a questão é desempenho, somente agilidade no processo de desenvolvimento não é uma boa escolha.

Desenvolver aplicações web de grande porte significa preocupar-se com desempenho não só do lado do servidor, o cliente (alvo principal) deve ser peça fundamental. Incluir dezenas de arquivos javascript com funções que muitas vezes sequer serão usadas, causa um aumento de tráfego pouco significante se analisarmos as coisas de forma isolada, mas imagine um excesso de 10kb a cada request feita por milhões de usuários, isso pode gerar um excesso de gigabytes por mês dependendo do número de acessos mensais, causando uma lentidão nas respostas do servidor.

Acerca do desempenho no lado do cliente

Um teste realizado neste blog mostrou resultados surpreendentes relacionando frameworks e browsers. Na média, o Dojo é o mais rápido de todos os frameworks.

speed-compersion-graph

Sobre o tráfego

Muitos desenvolvedores usam jQuery e Prototype, inclusive eu. O jQuery tem todo o seu core em um único arquivo, já o prototype tem arquivos separados que você inclui dependendo de suas necessidades. Para esse segundo caso, creio que você não fará um header diferente para cada página que criar, portanto, na maioria das vezes inluímos todos os arquivos que irão usar em toda aplicação.

A facilidade do Dojo nesse aspecto está no seu maior segredinho: ele é dividido em dezenas de partes que você inclui somente de acordo com a sua necessidade utilizando um médoto próprio do dojo.

dojo.require("dojo.NodeList-fx");

A primeira vista pode parecer semelhante ao prototype, porém, se você analizar o código que está contido em cada arquivo vai entender. São em média 50 a 100 linhas incluíndo comentários e quebras de linha por arquivo (na versão não reduzida do dojo). Comparando com o arquivo effects.js do Prototype (que contém aproximadamente 1200 linhas) é algo realmente significativo.

Dijit: O diferencial do Dojo

O melhor do Dojo com certeza é a sua biblioteca de widgets, chamada Dijit. Com ela você pode adicionar elementos à sua aplicação tornando a experiência do usuário muito satisfatória. Existem soluções semelhantes para jQuery e Prototype, porém, você terá que ir em busca das soluções que necessita e contar com a sorte para que o desenvolvedor do plugin tenha desenvolvido algo que irá funcionar corretamente e suprir as suas necessidades.

O mais importante de tudo é que o Dijit é internacionalizado e em muitos casos, acessível. Veja aqui algumas features do Dijit.

DojoX

O DojoX é uma área de desenvolvimento de extensões, uma espécie de incubadora de novas idéias que mais tarde podem estar disponíveis na ferramenta principal ou serem removidas se não obtiverem o sucesso esperado. Podem não ser internacionalizadas e não ter a mesma qualidade dos widgets do Dijit, porém, são sempre coisas novas que podem ser úteis na hora do aperto.

Conclusão

Utilizar Dojo é uma revisão de conceitos, mas como todo bom desenvolvedor dedicar um pouco de tempo ao aprendendizado da “filosofia” do Dojo pode torná-lo um desenvolvedor versátil e independente de tecnologias, pois pode ocorrer de uma oportunidade de emprego solicitar experiências com esta e(ou) aquela ferramenta de acordo com a aplicação ou ainda as determinações do cliente.