Fuentes Vinícius Baggio - Ruby on Rails: coloque sua aplicação web nos trilhos стр 20.

Шрифт
Фон

Depois da repopularizarão do JavaScript com o uso intensivo de AJAX

nas páginas Web, os browsers tem se tornado muito mais poderosos do

que antigamente, inclusive com os benefícios incorporados pelo HTML

5. Tendo isso em mente, programadores estão criando aplicações cada

vez mais complexas no browser.

Nos últimos anos, diversos frameworks tem sido lançados, tal como os

mencionados anteriormente. Dessa forma, existem aplicações Web que a

parte de back-end tornou-se uma API que está totalmente independente

da apresentação final ao usuário.

3.2

Recursos ao invés de páginas

Para que nossas aplicações fiquem elegantes, precisamos parar de pensar na maneira

antiquada de se criar aplicações Web cheias de páginas e interações complexas e pen-

74

Casa do Código

Capítulo 3. Conhecendo a aplicação

sarmos em recursos. Não é uma mudança fácil, mas vamos usar este pensamento

durante o livro todo, então até o final, você ficará mais confortável com essa ideia.

Se você já ouviu falar ou sabe o que é REST (Representational State Transfer,

ou Transferência de estado de representação), entender como vamos usar recursos

para modelar nossa aplicação será bem mais fácil. Se você quiser se aprofundar no

assunto, recomendo a leitura do livro Rest in Practice [7].

3.3

Recursos no Colcho.net

Então vamos lá, como fica um recurso no Colcho.net? Relembremos que o Col-

cho.net é um aplicativo em que os seus usuários podem mostrar quartos vagos, ou

até um colchonete que pode ser usado em sua sala em troca de uma grana e quem

sabe fazer novas amizades.

Assim, o primeiro recurso que podemos identificar é o Quarto. Em nosso sis-

tema, será possível listar quartos, exibir detalhes de um quarto, criar um novo quarto,

editar um quarto já existente e removê-lo.

Recursos assim são fáceis de serem mapeados, pois estão diretamente ligados

a uma unidade lógica do sistema. Porém, existem recursos que são menos óbvios.

Por exemplo, como representar o login de um usuário? Para isso, teremos o recurso

Sessão. Poderemos criar uma sessão ou destruí-la, porém nada mais que isso.

Em sistemas REST, ações com recursos são mapeados em duas partes: um verbo

HTTP e uma URL. Veja os seguintes exemplos:

75

3.4. Conhecendo os componentes

Casa do Código

O que são verbos HTTP?

Verbos HTTP são ações que podem ser executadas em um recurso iden-

tificado por uma URL. A implementação do comportamento fica a cri-

tério do servidor, não existe um padrão. Os verbos usados no Ruby on

Rails são:

GET - para retornar um recurso específico ou uma coleção;

POST - para enviar um novo elemento à uma coleção;

PUT - para alterar um elemento existente;

DELETE - para remover um elemento.

GET /rooms: Verbo GET na URL /rooms mapeia para a listagem de todos os

quartos;

POST /rooms: Verbo POST na URL /rooms mapeia para a inserção de mais um

novo quarto na coleção de quartos;

DELETE /rooms/123: Verbo DELETE na URL /rooms/123 mapeia para a remo-

ção do quarto cujo identificador único é 123.

Se fizermos dessa maneira, o Rails nos ajuda e bastante e de quebra ganhamos

facilidade ao usar frameworks de client-side quando necessário.

Essa é a visão externa da arquitetura de aplicações Web. Vamos entrar então na

arquitetura interna.

3.4

Conhecendo os componentes

O Ruby on Rails é um framework que adota o padrão de arquitetura chamado

Model-View-Controller (MVC), ou Modelo, Apresentação e Controle.

Modelos possuem duas responsabilidades: eles são os dados que normalmente

ficam persistidos em um ou mais banco de dados (seu perfil de usuário, por exem-

plo). Eles também fazem parte da regra de negócio, ou seja, cálculos e outros proce-

dimentos,

como verificar se uma senha é válida.

76

Casa do Código

Capítulo 3. Conhecendo a aplicação

O Controle é a camada intermediária entre a Web e o seu sistema. Ele pega

os dados que vem de parâmetros na URL e/ou de um formulário e repassa para os

modelos, que vão fazer o trabalho pesado. Em seguida, pega o resultado e transforma

da maneira adequada para a Apresentação.

A Apresentação é como o aplicativo mostra o resultado das operações e os dados.

Normalmente podem ser uma bela página usando as novas tecnologias de CSS 3 e

HTML 5 a até pequenas representações de objetos em JSON.

3.5

Os modelos

Quando criamos aplicações Ruby on Rails, basicamente usamos um componente

chamado ActiveRecord. O ActiveRecord é um Object-Relational-Mapping, ou seja,

uma biblioteca que faz o mapeamento de estruturas relacionais (leia-se SQL e bancos

de dados relacionais) a objetos Ruby.

O ActiveRecord internamente usa uma biblioteca bastante poderosa chamada

Arel. Com o uso do Arel o ActiveRecord consegue transformar chamadas de mé-

todos Ruby em complexas consultas SQL e depois mapear de volta em objetos Ruby.

Isso tudo é muito conveniente, veja alguns exemplos:

Room.all

# SELECT "rooms".* FROM "rooms"

Room.where(:location => ['São Paulo', 'Rio de Janeiro'])

# SELECT "rooms".* FROM "rooms" WHERE "rooms"."location"

#

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке