MVC e Ruby on Rails, uma visão simplificada

por em Tecnologia (1) comentário

Quem me conhece sabe que gosto de simplicidade. Dentre as coisas simples que gosto, tenho especial apreço por explicações simples, pois elas ajudam quem nunca teve contato com um assunto a ter uma primeira idéia e, a partir daí, se aprofundar no tema. Recentemente postei uma explição simples das Metodologias Ágeis de Desenvolvimento. Queria fazer o mesmo para dois termos que têm sido muito falados não só nos blogs da Locaweb, como em vários lugares pela internet.

O primeiro é MVC, que significa Model View Controller. Explicando de forma bem simplista:

- Model: modelo dos dados, normalmente um banco de dados, mas é mais que só interface com BD. O recomendado é que toda regra de negócio fique nele. Por exemplo, numa loja, ao gravar um novo pedido, o modelo faz todo o cálculo de frete, checagem de estoque, processamento de pagamento etc.
- View: como os dados serão vistos e como alguém pode interagir com esses dados, normalmente páginas HTML com forms.
- Controller: é quem interpreta eventos que acontecem na View e manipula os dados que estão no Model, normalmente são ações como listar, procurar, alterar, inserir e deletar dados.

O bacana desse modelo de arquitetura de software é a separação entre essas três camadas distintas da aplicação que permite até que pessoas ou equipes diferentes trabalhem em diferentes camadas, sem impacto no trabalho dos outros.

Como sempre, uma imagem vale mais que mil palavras, mesmo as imagens que contém palavras, então:

Sobre o Ruby on Rails, os especialistas aqui na Locaweb são o Akita e o Gilberto, que explicou como criar um ambiente rails no seu PC Windows, além de várias outras pessoas que estão estudando, mas vou dar minha visão simplista:

Ruby é uma linguagem de programação criada no japão em 1994, como já explicou o André aqui (http://blog.locaweb.com.br/?p=10). Quem conhece Perl certamente vai gostar de programar em Ruby.

Rails é um framework, ou um ambiente de trabalho, desenvolvido para transformar a programação em Ruby ainda mais simples e divertida. Rails foi criado por David Hansson:

desenvolvedor dinamarquês de uma empresa americana chamada 37signals, para automatizar o trabalho “chato” de desenvolvimento de um novo sistema.

Quando se inicia a programação de um sistema em Rails, o framework já cria o ambiente MVC incluindo as tabelas de banco de dados (Model), o esqueleto dos Viewers e dos Controllers.

Uma das funcionalidades que mais me impressiona no Rails é o Active Record, que mapeia tabelas a classes, linhas de tabelas a objetos e colunas de tabelas aos atributos dos objetos. Essa prática é conhecida como object-relational mapping (ORM), em português mapeamento objeto-relacional, ou seja, mapear objetos à tabelas de bancos de dados relacionais.

ORM não é novidade, mas a implementação feita em Rails, com o ActiveRecord simplificou em muito ORM pois, ao invés de necessitar de um arquivo de configuração para fazer os mapeamentos, ele se baseaia em convenções e em valores default para fazer o mapeamento. Ou seja, é a simplificação do ORM. :)

Aguardem, em breve teremos mais posts sobre Rails e, para quem quiser testar o ambiente Rails que estamos preparando em nossa Hospedagem Linux, basta se inscrever em:

http://blog.locaweb.com.br/archives/263