Introdução ao Ruby on Rails

On 24 de setembro de 2014 by Bernardo Reis

turismo

Ruby on Rails

Discutiremos neste post alguns dos conceitos de Ruby on Rails que o diferenciam e outras tecnologias e veremos seus pontos positivos e negativos. Nenhum desenvolvimento prático será abordado neste primeiro post, apenas conceitos e motivos para aprender ou não a desenvolver com Ruby on Rails.

O que é Ruby on Rails?

Uma das tecnologias para desenvolvimento de aplicações web mais quentes atualmente, amada por desenvolvedores e donos de empresas devido à velocidade na qual aplicações web podem ser desenvolvidas.

Ruby on Rails começou a ganhar popularidade com startups e pequenas em presas, mas cresceu para nichos muito além desses. Amazon e eBay, por exemplo, estão usando Rucy on Rails em alguns de seus novos projetos.

Ruby on Rails é dividido essencialmente em duas partes: A linguagem Ruby e o framework Rails.

Rails significa “Trilhos”, e é um nome condizente ao que devemos pensar sobre o framework, que pode-se pensar como uma ferramenta que orienta e agiliza o desenvolvimento de aplicações web.

O próprio framework Rails e todas as suas aplicações são escritas em Ruby.

Sobre Ruby

Ruby é uma linguagem de programação geral, não apenas para desenvolvimento web. É usada em aplicações stand-alone, scripts para administração de servidores e até para aplicações web que não utilizam Rails.

Da definição do site oficial do Ruby:

“Ruby é…
Uma linguagem dinâmica, open source com foco na simplicidade e na produtividade. Tem uma sintaxe elegante de leitura natural e fácil escrita.”

Ruby não precisa de ponto-vírgula ao final de suas linhas, não precisa de parênteses para argumentos. A sintaxe da linguagem permite um código expressivo, altamente legível, uma vez que se consegue ler partes do código como se fossem sentenças em inglês descrevendo o que o código deve fazer.

Sobre Rails

Rails pode ser de difícil aprendizado para iniciantes, uma vez que leva-se alguns meses para se habituar com tudo, ou pelo menos a maioria das funcionalidades e características da tecnologia.

Uma parte muito importante do Rails é o que se diz “convention over configuration.” ou “convenção acima de configuração”. Para conseguir isso, Rails utiliza várias convenções de nomes de arquivos e dados para configurar suas aplicações, evitando que se perca tempo escrevendo arquivos de configuração, tomando decisões não tão importantes ou que podem não ser as melhores decisões a se tomar naquela situação.

Por isso, várias coisas parecem simplesmente funcionar, como quando coletamos e validamos dados de um formulário, escrevemos no banco de dados ou mostrando mensagens de erros.

Essas convenções podem ser difíceis de aprender numa primeira vista, mas o esforço vale a pena, pois, uma vez aprendido, você escreverá menos código, terá mais resultados e todas as suas aplicações estaram numa estrutura similar, que será facilmente entendia por programadores Rails.

Rails implementa um padrão de projeto chamado “Model-View-Controller”, que particiona aplicações para torná-las mais fácil de escrever, entender e manter. Este padrão de projeto pode ser usado com qualquer linguagem, mas exige muito mais conhecimento e disciplina quando não há um framework como Rails para ajudar.

O framework Rails é feito para aplicações web baseadas em bancos de dados. Sempre que se precisa acessar um banco de dados por um programa orientado a objetos, é necessário relacionar os dados com as linhas e colunas da tabela do banco de dados. E Rails disponibiliza uma ótima ferramenta para isso se você não quiser escrever o código inteiro, seu nome é ActiveRecord, que é uma das maiores e mais importantes partes do Rails.

O ActiveRecord examina o banco que você criou e automaticamente cria poderosas classes que lhe permite lidar com seus dados como objetos, além de manipular relações entre tabelas.

Rails também possui um sistema de templates que permite fácil modularização de suas views (páginas). Todas as páginas são renderizadas de acordo com um “layout”, que é um arquivo que define a estrutura geral da página. Dessa forma não há repetição de código em páginas HTML. Pode-se também usar HTML intercalado com código Ruby através do Embedded Ruby (ERB).

O framework possui ainda muitas outras coisas, como vários “helpers” para facilitar formulários HTML entre outras coisas, framework interno de testes, RJS (Ruby JavaScript) que permite a escrita de código em Ruby para comportamentos interativos e a tradução do código para JavaScript, automações com o comando Rake, suporte a designs RESTful, entre outras facilidades.

Porque aprender Ruby on Rails?

Eis a maior razão: Uma vez acostumado com o desenvolvimento em Rails, a construção de aplicações web é fácil, rápida, confiável e fácil de manter e modificar.

O maior valor oferecido pelo Rails é recebido por aplicações que começam do zero, o que é válido para boa parte das aplicações Web. Um bom exemplo de uso do framework é o Twitter.

Mas Rails não é usado em todas as situações. O framework possui seu escopo, apesar de ser bem abrangente. Sites simples e estáticos, sites que acessam bancos de dados legados que ainda é usado por outros códigos, sites que precisão da performance máxima do hardware de seu servidor são exemplos de situações nas quais o Rails não se encaixaria.

As excessões citadas mostram que o Rails não é adequado para aplicações que são muito simples para justificar sua complexidade, aplicações presas a tecnologias antigas ou aplicações que necessitam de alta performance.

Um lado negativo de Ruby on Rails é que ele realmente não é tão rápido quanto se gostaria. Se você precisa de velocidade, Rails não serve para você, mas a realidade da maioria das aplicações web não utilizam muito poder de computação, e o que realmente importa é a latência, largura de banda, acesso ao disco e performance do banco de dados.

O setor mais caro do desenvolvimento e manutenção de aplicações web é o tempo do desenvolvedor. Rails sacrifica um pouco da eficiência de sua máquina para disponibilizar um grande aumento na produtividade dos desenvolvedores.

Vale a pena?

O que deixa desenvolvedores longe de Ruby on Rails é a curva de aprendizado, pois se você já trabalha com uma tecnologia, mudar para uma diferente pode consumir mais tempo do que você gostaria a curto prazo. E para quem trabalha apenas com sites simples, o investimento de tempo pode não valer a pena.

Mas se o seu foco é produtividade, Ruby on Rails é uma tecnologia que deve ser aprendida. Você irá investir alguns meses de trabalho para se tornar fluente no desenvolvimento, mas a partir disso, você estará desenvolvendo aplicações web melhores, em menos tempo e de forma mais divertida.

Nos próximos posts da série, começaremos a desenvolver aplicações web com Ruby on Rails e aprender alguns conceitos práticos básicos sobre a tecnologia.

Até a próxima.

One Response to “Introdução ao Ruby on Rails”

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *