quarta-feira, 3 de novembro de 2010

Conhecendo o Ruby On Rails

Há mais ou menos uns 10 anos atrás, comecei a perceber o grande e repetitivo trabalho que tinha que fazer toda vez que eu tinha que iniciar o desenvolvimento de um sistema usando as linguagens PHP (Na época chamado de PHP FI) ou ASP.

Ter que criar scripts e tabelas no banco de dados sempre partindo do zero era uma coisa que tornava o trabalho demorado e sem graça, quase que puramente operacional. Foi quando recorri ao "The most powerful and useful guide to the Net" (aka: Altavista), procurando por algo que pudesse agilizar meu trabalho tornando-o mais produtivo e divertido. A busca foi frustrada pois o melhor que eu encontrei naquela época foi o Dreamweaver UltraDev, que simplesmente criava um código impossível de dar manutenção.

Passado todo esse tempo, eis que em 2010 posso dizer encontrei o que procurava naquela época. Depois de escutar vários amigos falando muito bem e usando, resolvi conhecer e praticar o Ruby on Rails.

O primeiro passo foi dado com a leitura do (excelente!) livro "Ruby on Rails - Desenvolvimento rápido e fácil de aplicações web" do Robrigo Urubatan (Editora Novatec).

Já nos primeiros capítulos não resisti e comecei a colocar a mão na massa, ou seja, instalei o Ruby on Rails e comecei a criar algumas aplicações a partir dos exemplos contidos no livro. A experiência não poderia ser melhor!!

Ruby on Rails, também chamado de RoR, é um framework de desenvolvimento de aplicações web baseado na linguagem Ruby e que utiliza o padrão arquitetural Model-View-Controller (MVC).

Uma característica muito interessante desse framework é a utilização nativa de web services REST como forma de comunicação entre o View e o Controller. Sendo assim, ao criar uma aplicação web com o Ruby On Rails você não só está criando a interface humana (HTML) do seu sistema mas também está disponibilizando toda a lógica da sua aplicação para acesso através de uma API REST, o que me interessou muito já que estou atuando como Arquiteto de Integração e participando da implantação de uma Arquitetura Orientada a Serviços (SOA).


Quer ver como é fácil desenvolver aplicações web com o Ruby on Rails?

Desde quando pensei em escrever esse post fiquei pensando o que faria para mostrar brevemente como o Rails funciona. Que exemplo utilizar? Devo, antes de tudo, mostrar como se instala o Ruby e o Rails? Será que o post não vai ficar chato e grande? Nada disso! Foi então que lembrei de um vídeo que me serviu como grande motivador para aprender o framework.

Trata-se de dois vídeos que explicam como trabalhar com formulários html aninhados. No vídeo, a aplicação que é construída permite a criação de Pesquisas (surveys), onde cada pesquisa pode conter várias perguntas, que por sua vez pode conter várias opções de resposta.

Mesmo se você não sabe nada de Ruby ou de Rails vale a pena assistir. Mas assista observando a (pouquíssima) quantidade de código que é escrita para criar a aplicação. Observe também o tempo que leva para fazer. E, principalmente, pense na quantidade de código que você teria que escrever e quanto tempo demoraria para você fazer o mesmo na linguagem de programação que você utiliza atualmente.

Aí vai o link desses dois vídeos que estou me referindo:


A propósito, o http://railscasts.com é uma ótima referência para aprender a como resolver uma série de problemas recorrentes que nos deparamos no dia a dia do desenvolvimento de aplicações web.

O que torna no Ruby on Rails tão simples?

Você já ouviu falar em "Convenção sobre Configuração"? Talvez tenha ouvido falar com o nome de "Codificação por convenção"? Não???????

Bem, o Rails é um framework que segue esse conceito. Na prática, o que tal conceito prega é que o desenvolvedor não precisa dizer, ou melhor, configurar, como o framework irá se comportar toda vez que for construir uma aplicação. Isso quer dizer que o framework assume determinadas premissas de funcionamento e que o desenvolvedor só terá algum trabalho se precisar alterar tais premissas (o que só acontece em casos muito específicos).

Alguns exemplos de tais premissas, ou melhor, convenções, são:

  • A comunicação entre a View e o Controller é feita por REST com os verbos HTTP: GET, POST, PUT e DELETE;
  • Alguns métodos de um Controller são mapeados automaticamente aos verbos HTTP: GET é mapeado ao método show, PUT ao método create, POST ao método edit e DELETE ao método destroy.
  • Toda View já possui uma saída HTML, para consumo humano, e uma XML para consumo por um programa (cliente do web service);
  • Não é necessário criar arquivos de Mapeamento Objeto-Relacional. Isso já está embutido em todo modelo;

Essa lista poderia ir longe. A importante mensagem que espero ter passdo com esse pequeno exemplo é: Poupa-se muito trabalho ao utilizar essa abordagem!

Saiba mais sobre Convenção sobre Configuração.

Quer aprender Ruby on Rails e não sabe por onde começar?

Começar aprendendo a linguagem Ruby é sempre uma boa, a final de contas não dá para aprender direito um framework de desenvolvimento sem saber a linguagem que ele utiliza.

Para aqueles que não dispõem se muito tempo e querem aprender Ruby e Rails colocando a mão na massa desde o início, adquira o livro que eu comentei no começo desse post. Mas atenção!!! Esse livro trata da versão 2 do Rails, que já está na versão 3.

Se o Inglês não for um problema e você quiser iniciar o aprendizado na recente versão mais recente, leia o livro "Agile Development with Ruby on Rails (3rd Edition)". Nele você construirá uma aplicação completa de e-commerce onde são abordadas situações reais que enfrentamos no dia a dia do desenvolvimento de aplicações web. Eu lí ambos e recomendo.

Outra boa sugestão é seguir as dicas do Akita sobre como aprender Ruby on Rails. A propósito, o blog dele (http://akitaonrails.com/) é uma ótima maneira de manter-se antenado sobre o que rola na comunidade Rails aqui no Brasil.

Abraços e até a próxima!

Nenhum comentário:

Postar um comentário