Ruby on Rails
Origem: Wikipédia, a enciclopédia livre.
Índice |
[editar] Definição
Ruby On Rails é um framework de código aberto para desenvolvimento de aplicações Web, escrito em Ruby.
Rails foi projetado para:
- Ser uma solução de desenvolvimento completa;
- Que as suas camadas se comuniquem da forma mais transparente possível;
- Ser uniforme, escrito totalmente apenas numa linguagem;
- Seguir a arquitectura MVC (Model-View-Controller)
Essas características tornam o Rails extremamente produtivo e mantem baixa a curva de aprendizagem.
A versão atual do Rails é 1.2.2 Final.
[editar] Componentes
O Rails é um "meta-framework", contendo 5 outros frameworks:
- Active Record;
- Action Pack;
- Action Mailer;
- Active Support;
- Active WebServices.
Cada um destes "mini-frameworks" está disponível via gem (sistema de gerenciamento de pacotes para Ruby), mas todos eles são baixados e instalados automáticamente quando se instala o gem do Rails.
[editar] Tempo de desenvolvimento
Rails segue dois conceitos que visam aumentar a produtividade do desenvolvedor: DRY e Convention over Configuration. Estes métodos estão implementados por todo o Rails, mas podem ser mais notados nos "pacotes" do Active Record (ORM, Object Relational Mapper) e Action Pack (MVC)
[editar] DRY
DRY (Don't Repeat Yourself, Não se repita) é o conceito por trás da técnica de definir nomes, propriedades e códigos em somente um lugar e reaproveitar essas informações em outros.
Por exemplo, ao invés de ter uma tabela Pessoas e uma classe Pessoa, com uma propriedade, um método "acessador" (getter) e um "mutador" (setter) para cada campo na tabela, tem-se apenas no banco de dados. As propriedades e métodos necessários são "injetados" na classe através de funcionalidades da linguagem Ruby.
Com isso, economiza-se tempo, já que não é necessário alterar a tabela, o "bean", o "form bean", o "local home", o "home", o "session", ... Alterando apenas no banco de dados, tudo o que se baseia nessas informações são atualizadas automaticamente.
[editar] Convention over configuration
Na maioria dos casos, usamos convenções no dia-a-dia da programação, em geral para facilitar o entendimento e manutenção por parte de outros desenvolvedores. Sabendo disso, e sabendo que o tempo gasto para configurar XML em alguns frameworks de outras linguagens é extremamente alto, decidiu-se adotar esse conceito.
Ele diz basicamente que deve-se assumir valores padrão onde existe uma convenção. Caso o desenvolvedor deseje, pode-se sobrescrever essa convenção com o valor necessário. Por exemplo, uma classe User pode ter seus dados armazenados na tabela Customer. Seguindo a convenção, seria na tabela Users. Com isso, o tempo de desenvolvimento cai ainda mais.
[editar] Escalabilidade
Uma questão frequente é sobre a escalabilidade de aplicações escritas em Rails. Ao contrário de outras tecnologias, você não precisa fazer um código específico para que o sistema esteja preparado para "escalar". Quando necessário, pode-se adotar uma das táticas disponíveis para escalabilidade em Rails. Vale notar que o único problema da escalabilidade é a manutenção de sessões entre servidores. Portanto, a saída mais óbvia é guardar estas sessões em volumes NFS, acessíveis por todos os servidores de aplicação. Outra tática é usar o armazenamento de sessões diretamente no banco de dados. Uma terceira, seria salvar a sessão em um cookie na máquina do usuário. Como pode-se ver, uma aplicação Rails já nasce com todo o suporte necessário para crescer sem traumas.
Porém, a maioria dos sites não necessita de esquemas sofisticados de escalabilidade. Em sites menores ou normais, uma configuração padrão do servidor web consegue suportar uma boa quantidade de carga, principalmente se forem usados o LightTPD e FastCGI. Existem casos de sites feitos em Rails que suportaram 5 milhões de visitas em um mês, ou seja, aproximadamente 115 por minuto, uma performance considerada bastante suficiente para 90% das aplicações atuais.
[editar] Referências
- Ruby On Rails Oficial
- Ruby On Rails in Brazil Site Brasileiro Oficial
- Artigos sobre Ruby on Rails em português
- Tutorial sobre o Ruby On Rails
- Rails Help (API)
- RailsBrasil - Site sobre Rails em português
- Balance on Rails - Weblog oficial do livro Repensando a Web com Rails, de Fabio Akita.
- RadRails - IDE para desenvolvimento em Rails.
- Blog sobre Ruby on Rails e Desenvolvimento Ágil