Soluções        Serviços          Atendimento       Governo        Consultoria T.I      Treinamento

Software

Origem: Wikipédia, a enciclopédia livre.
Ruby on Rails
Ruby on Rails logo.jpg
Rails default index.png
Boas vindas do Rails
Desenvolvedor Rails Core Team
Lançado em julho de 2004
Versão estável 3.0 (29 de agosto de 2010)
Idioma(s) inglês
Escrito em Ruby
Sistema Operacional Multiplataforma
Gênero(s) Framework Web
Licença Licença MIT
Estado do desenvolvimento Ativo
Página oficial rubyonrails.org
Portal das Tecnologias de informação

Ruby on Rails é um framework livre que promete aumentar velocidade e facilidade no desenvolvimento de sites orientados a banco de dados (database-driven web sites), uma vez que é possível criar aplicações com base em estruturas pré-definidas. Frequentemente referenciado como Rails ou RoR, o Ruby on Rails é um projeto de código aberto escrito na linguagem de programação Ruby. As aplicações criadas utilizando o framework Rails são desenvolvidas com base no padrão de projeto MVC (Model-View-Controller).

Índice

  • 1 História
  • 2 Componentes
    • 2.1 Active Record
    • 2.2 Action Pack
    • 2.3 Action Mailer
    • 2.4 Active Support
    • 2.5 Action WebServices
  • 3 Tempo de desenvolvimento
    • 3.1 DRY
    • 3.2 Convention over configuration
  • 4 Escalabilidade
  • 5 Ver também
  • 6 Ligações externas

História

Ruby on Rails foi uma extração de David Heinemeier Hansson de um projeto seu, o gerenciador de projetos Basecamp. Foi lançado a público pela primeira vez em julho de 2004.

Componentes

O Rails é um "meta-framework" (ou seja, um framework de frameworks), composto pelos seguintes frameworks:

Active Record

O Active Record é uma camada de mapeamento objeto-relacional (object-relational mapping layer), responsável pela interoperabilidade entre a aplicação e o banco de dados e pela abstração dos dados.

Action Pack

Compreende o Action View (geração de visualização de usuário, como HTML, XML, JavaScript, entre outros) e o Action Controller (controle de fluxo de negócio).

Action Mailer

O Action Mailer é um framework responsável pelo serviço de entrega e até mesmo de recebimento de e-mails. É relativamente pequeno e simples, porém poderoso e capaz de realizar diversas operações apenas com chamadas de entrega de correspondência.

Active Support

Active Support é uma coleção de várias classes úteis e extensões de bibliotecas padrões, que foram considerados úteis para aplicações em Ruby on Rails.

Action WebServices

Provê uma maneira de publicar APIs interoperaveis com o Rails, sem a necessidade de perder tempo dentro de especificações de protocolo. Implementa WSDL e SOAP.

O Action Web Service não estará mais presente na versão 2.0 no Rails, visto que o mesmo está voltando-se para a utilização do modelo REST. Mesmo assim, aos ainda interessados em utilizá-lo, será possível fazê-lo através da instalação de um plugin.

Tempo de desenvolvimento

Ruby on 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)

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 "leitor" (getter) e um "modificador" (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 é atualizado automaticamente.

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. Se o desenvolvedor quiser, 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.

Escalabilidade

A maioria dos sites não necessita de esquemas sofisticados de escalabilidade, bastando alguns aceleradores. 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 FastCGI, LightTPD ou Mongrel, que são necessários para obter uma velocidade aceitável de abertura da página. Comparando uma aplicação com FastCGI e sem FastCGI (rodando Ruby direto como CGI), a diferença é perceptível em qualquer aplicação. O processamento do código (sem contar o tempo de download) em CGI ocorre em no mínimo 10 segundos mesmo em servidores Quad Core, enquanto que em FastCGI o desempenho é notável: em no máximo 1 segundo a página é processada, tal qual linguagens web como PHP.

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 suficiente para 90% das aplicações atuais[carece de fontes?]. Nestes sites, 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.

Ver também

  • Framework
  • Django

Ligações externas

  • Página oficial (em inglês)
  • Página oficial (em português)
  • Tutoriais e vídeos para iniciantes em Ruby on Rails (em português)
  • Ruby-Doc: Ajuda e documentação sobre a linguagem Ruby (em inglês)
  • API Dock: Documentação de Ruby e Rails organizada de forma fácil e interativa
  • Rails Brain: API implementada com AJAX, para facilitar utilização
  • Rails Help: busca dinâmica na API (em inglês)
  • Ruby Brasil (em português)
  • Ruby Portugal (em português)
Obtida de "http://pt.wikipedia.org/w/index.php?title=Ruby_on_Rails&oldid=27467744"

MAIS INFORMAÇÕES DO SETOR DE SOFTWARE

ERP

Sistemas Integrados de Gestão Empresarial (SIGE ou SIG), em inglês Enterprise Resource Planning (E [ ... ]


CodeIgniter

CodeIgniter Desenvolvedor EllisLab, Inc. Lançado em 28 de Fevereiro de 2006  [ ... ]


Teste de penetração

article thumbnail

O teste de penetração é um método que avalia a segurança de um sistema de computador ou de um [ ... ]


Symfony

article thumbnail

Symfony

Projeto padrão do Symfony Desenvolvedor Sensio Labs Versão está [ ... ]


Desenvolvimento de software

Na computação, o desenvolvimento de software é o ato de elaborar e implementar um sistema computa [ ... ]


Tecnologia educacional

article thumbnail

A Wikipédia possui o portal:
Portal de educação As Tecnologias educacionais são [ ... ]


Outsourcing em gestão

O outsourcing em gestão é uma ferramenta administrativa em que o terceririzado realiza a ativida [ ... ]


Licitação

Licitação é o procedimento administrativo para contratação de serviços ou aquisição de pro [ ... ]


Microsoft SharePoint Workspace

article thumbnail

Título a ser usado para criar uma ligação interna é Microsoft SharePoint Workspace. Micr [ ... ]


Governança em T.I (Governança corporativa)

Governança corporativa (português brasileiro) ou governo das sociedades ou das empresas (portuguê [ ... ]


Firewall

article thumbnail

Firewall separando redes LAN e WAN A Wikipédia possui o portal:
Portal das tecno [ ... ]


Algoritmos

article thumbnail

Um algoritmo é uma sequência finita de instruções bem definidas e não ambíguas, cada uma das q [ ... ]


CobiT

Origem: Wikipédia, a enciclopédia livre. COBIT®, do inglês, Control Objectives for Information  [ ... ]


Sistemas de CRM

Os sistemas de CRM.. são aplicativos de informação desenvolvidos com o objetivo de auxiliar na ge [ ... ]


Computação em nuvem

article thumbnail

A nuvem (cloud) é o símbolo da Internet. O conceito de computação em nuvem (em inglê [ ... ]


Nanomedicina

Nanomedicina é a denominação dada à junção da medicina e da nanotecnologia. Em suma a nanomedi [ ... ]


JavaScript


JavaScript Paradigma Multi-paradigma: com base em protótipo funcional
imperativo
scr [ ... ]


Tecnologia móvel

Tecnologia móvel Toda tecnologia que permite seu uso durante a movimentação do usuário é uma t [ ... ]


Software livre

article thumbnail

Ilustração frequentemente usada como logo para o Projeto GNU A Wikipédia possui  [ ... ]


Software livre nos governos

Nos últimos anos a questão do software livre nos governos está na ordem do dia. Alguns governos c [ ... ]


ITILv3

A versão 3 da biblioteca ITIL foi lançada mundialmente em maio de 2007 como uma atualização comp [ ... ]


dotProject

Software Livre - dotProject
dotProject Desenvolvedor Adam Donnison, Karen Chisholm, Gregor Er [ ... ]


Processo de desenvolvimento de software

Um processo de desenvolvimento de software é um conjunto de atividades, parcialmente ordenadas, c [ ... ]


XMI (ou XML Metadata Interchange)

XMI (ou XML Metadata Interchange) é um padrão da OMG (grupo de gerenciamento de objetos) para tr [ ... ]


Business-to-business

Business to Business - B2B é o nome dado ao comércio associado a operações de compra e venda, de [ ... ]


Banco de dados

article thumbnail

Bancos de dados, ou bases de dados (em Portugal), são coleções de informações que se relacion [ ... ]


Web design

article thumbnail

Exemplo de um layout simples. O web design pode ser visto como uma extensão da prática  [ ... ]


Modelagem de dados

Modelagem de Dados Representa um conjunto de requerimentos de informações de negócio. É uma part [ ... ]


Desenvolvimento web

article thumbnail

Desenvolvimento web é o termo utilizado para descrever o desenvolvimento de sítios, na Internet  [ ... ]


Software colaborativo

Software colaborativo (ou groupware) é um software que apoia o trabalho em grupo, coletivamente.  [ ... ]


Prototipação

Prototipação é uma abordagem baseada numa visão evolutiva do desenvolvimento de software, afe [ ... ]


Arquitetura de dados

Arquitetura de dados é a estrutura dos componentes de dados de uma organização - considerados sob [ ... ]


ITIL

Information Technology Infrastructure Library (ITIL) é um conjunto de boas práticas a serem aplica [ ... ]


Dispositivo móvel

Um dispositivo móvel, designado popularmente em inglês por handheld é um computador de bolso ha [ ... ]


Estrutura de dados

article thumbnail

Uma árvore binária é uma estrutura de dados. Na Ciência da computação, uma estrutura  [ ... ]


Comércio eletrônico

Comércio eletrônico (português brasileiro) ou comércio electrónico (português europeu) ou e-co [ ... ]


Gerenciamento de nível de serviços

Gerenciamento de nível de serviços é uma disciplina de gestão responsável pelo processo gerenci [ ... ]


Kohana Framework

Kohana é um framework para aplicações web de código aberto, escrito em PHP 5 que adota o padr [ ... ]


Gestão de projetos

Gerência de projetos, gestão de projetos, gerenciamento de projetos ou ainda administração de pr [ ... ]


Rede complexa

Rede Complexa é uma forma de modelar a natureza onde as propriedades de um elemento são resumidas [ ... ]


Novas tecnologias de informação e comunicação

Comunicação Novas tecnologias de informação e comunicação Tipos Social • M [ ... ]


Java

article thumbnail

Java
Duke, o mascote do Java Paradigma Orientação a objetos, estruturada, impe [ ... ]


Gestão de riscos em TI

A Gestão de riscos (termo também conhecido como Risk Management) é um processo/disciplina util [ ... ]


Microsoft Office

article thumbnail

Microsoft Office Desenvolvedor Microsoft Plataforma x86 e x64 Lançad [ ... ]


UML

article thumbnail

A Unified Modeling Language (UML) é uma linguagem de modelagem não proprietária de terceira gera [ ... ]


APPS

article thumbnail

Apps (do inglês application) é uma forma abreviada para software aplicativo. A extensão .app si [ ... ]


Orientação a objetos

A orientação a objetos é um paradigma de análise, projeto e programação de sistemas de softwar [ ... ]


Sistema Integrado de Aprendizagem de Produtos e Serviços

Sistema Integrado de Aprendizagem de Produtos e Serviços - Sinapse (acrônimo) é o nome de uma met [ ... ]


Sistema de gerenciamento de conteúdo

Sistema de Gestão de Conteúdo (SGC) - do inglês Content Management Systems (CMS) mas igualmente d [ ... ]


Inteligência organizacional

Inteligência Organizacional é a capacidade coletiva disponível em uma organização para identifi [ ... ]


Artigos Relacionados

Pluriverso - Inteligência em Tecnologia

Pluriverso - Inteligência em Tecnologia


Ed.Centro Sul, 2°Andar, SCIA, Qd. 14, Conj. 07, Lt 1, S. Ind.
CEP: 71.250-135, Brasília-DF.  
Como Chegar
| Atendimento  


+55 (61) 4141.5555

Serviços

Desenvolvimento de Software
Oursourcing de T.I
Consultoria em Tecnologia
Licitação com o Governo

Produtos

ERP, CRM, Colaboração
Cloud Computing

Soluções
Soluções em Outsourcing de Tecnologia
Integração de Software
Avaliação de nível tecnológico
Cálculo de custos de T.I
Softwares customizados


Porque escolher a Pluriverso

Blog Corporativo
Blog do Software

Conheça a Pluriverso
quem somos
verticais de atuação
portifólio
casos de sucesso

Atendimento
contatos
sala de imprensa
como chegar
Trabalhe conosco

desenvolvimento de software