MVC em Rails - direto ao assunto


MVC em Rails - direto ao assunto

Mais que algumas letras, a sigla MVC representa um dos padrões de software mais difundidos e utilizados atualmente. Neste post trato seus conceitos e sua aplicação utilizando de Ruby on Rails.

Continue a leitura e saiba mais!

Origem

Foi descrito pela primeira vez em 1979 por Trygve Reenskaug, que trabalhava na linguagem Smalltalk, na Xerox Palo Alto Research Center (PARC).

O que é MVC?

MVC (Model-View-Controller) é uma arquitetura de software que separa a aplicação em três camadas, sendo elas :

Model

É onde fica a lógica da aplicação, onde ocorre tratamento, validação dos dados e envio de e-mails. Basicamente ele sabe como fazer tudo, mas não quando.

Model  - contact.rb :

class Contact < ApplicationRecord
  validates_presence_of :name
  validates_presence_of :phone
end

View

Ela exibe os dados ao usuário utilizando de HTML ou XML.

View  - index.html.slim

h1 Listing contatos

table
  thead
    tr
      th Nome
      th Telefone
      th
      th
      th

  tbody
    - @contacts.each do |contact|
      tr
        td = contact.name
        td = contact.phone
        td = link_to 'Show', contact
        td = link_to 'Edit', edit_contact_path(contact)
        td = link_to 'Destroy', contact, data: { confirm: 'Are you sure?' }, method: :delete

br

= link_to 'New Contato', new_contact_path

Controller

Ele basicamente recebe requisições do usuário e redireciona para respectivas actions, que são métodos responsáveis por páginas específicas, controlando o que a página deve fazer e qual model e view usar.

Controller - contacts_controller.rb :

class ContactsController < ApplicationController
  def index
    @contacts = Contact.all
  end
end

Esse exemplo acima foi feito em Ruby on Rails mas a arquitetura MVC está em vários outros, como por exemplo, Laravel.

Dica: Por que o Docker não me deixa utilizar o Bundler?

Por que usar? 

Com a estrutura MVC, o código fica mais organizado e legível, além de fornecer um padrão em comum com todos os frameworks que a utilizam. Desta forma um programador acostumado com a estrutura perderia menos tempo se contextualizando com o projeto.  

gif thank you




Por
10/08/2017

 


Assine nosso blog

Não perca nenhuma novidade!

Assine nosso blog

Não perca nenhuma novidade!