SlideShare uma empresa Scribd logo
Ruby on Rails
   Magnum Fonseca | Thales Lima | Weslley Almeida
Ruby   > O que é Ruby?
       > Ruby é uma linguagem interpretada
         multiparadigma, dinâmica e open source
         com foco na simplicidade e
         produtividade.

       > Seus objetos e classes podem ser
         alterados em tempo de execução. Além
         disso é totalmente orientada a
         objetos, ou seja, em Ruby tudo é um
         objeto.
> Como Surgiu?

> Desenvolvido no Japão em 1995, por Yukihiro
  “Matz” Matsumoto.

> Matz desejava uma linguagem
  mais poderosa que Perl e mais
  orientada a objetos que Python.
  A partir disso Matz decidiu
  desenhar     a    sua   própria
  linguagem de programação.
> Como Surgiu?

Nós somos os
mestres

Eles são os
escravos
Diferenças de outras linguagens

> Interpretadores
  * O interpretador Ruby é o programa que faz todo o
    trabalho pesado e roda seu código Ruby. No entanto
    existem diversos interpretadores:
  * MRI (Matz Ruby Interpreter)
  * JRuby
  * IronRuby
  * MacRuby
  * Etc…
Diferenças de outras linguagens

> Gems
 * Gem é um pacote ou uma aplicação escrita em ruby.
   Essas bibliotecas podem ser instaladas e divulgadas
   em diversos computadores, como as “libs” em C.

 * Uma adição interessante é que é muito fácil instalar
   uma gem

                gem install rails
Diferenças de outras linguagens

            > IRB (Interactive      Ruby
             Execution)
              * Basicamente um shell para
                Ruby. É um interpretador
                em tempo real dos códigos
                digitados.
              * É um método ágil de testar
                seus    códigos  ou    de
                aprender Ruby
> O que Ruby tem
 de tão legal?
> Tudo é objeto!
 * Não existe variável primitiva
 * +, -, /… são todos métodos
> Syntax Sugar
 * Linguagem onde o que importa é a
   beleza do código, expressividade do
   mesmo
 * Algumas regras podem ser
   quebradas, para que o código seja
   melhor entendido por humanos
> Syntax Sugar
if(a<b){
  System.out.println("a é menor");
}


puts("a é menor") if(a.<(b))
puts "a é menor" if a < b
> Duck typing
 * Se ele anda como um pato, e faz quack
   como um pato, eu devo tratá-lo como um
   pato

 * Foco no que os objetos podem fazer, não
   no que eles são
>
 Metaprogamação
  * Linguagem dinâmica

  * Código gerando código

  * Código modificando código
> Blocos
 * Uma das coisas mais poderosas em Ruby

 * É um bloco, um fechamento do código
   que recebe código como parâmetro

 * Como um iterador mas executa códigos
> Códigos legais
 * Métodos recebem Hash de parâmetros

 * Unless
Rails   > O que é Rails?
        <%= 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. %>
> O início
David Hannson em 2004

Extraído do trabalho dele
na 37Signals
> Do que é formado?
> Rails é um meta-framework formado
  de:
  – Action Pack;
  – Action Mailer;
  – Active Record;
  – Active Support;
  – Active Web Services.
> MVC
> Model-view-controller (MVC) é um
  padrão de arquitetura de software que
  visa separar a lógica de negócio da lógica
  de apresentação, permitindo o
  desenvolvimento, teste e manutenção
  isolado de ambos
> MVC
> Model
> View
> Controller
> Filosofias

> Filosofias tem um pé (ou os dois)
 nas metodologias ágeis e em seus
 designs
> Filosofias
Dont
Repeat
R
Yourself
Y
> Filosofias
Convention
Over
O
Configuration
C
> Produtividade
 > Active Record
c = Celular.new
c.nome = "Galaxy S II"
c.preco = 2000
 Design Pattern, Framework
c.save


 ORM
=== Em SQL ===

INSERT INTO CELULARES(NOME,PRECO) VALUES ("Galaxy S
II", 2000);
> Produtividade
 > Action Pack
  Pacote que gerencia as ações que
  ocorrem na aplicação, do request ao
  response
> Action Pack
 > Action Controller
  Gerencia o que ocorre na
  Controller, quais ações e como elas
  devem ser tomadas
> Action Pack
 > Action View
     * os celulares:como os dados serão c.nome
 Todos
       Gerencia <%= @celulares.collect { |c|
     apresentados na tela %>
                     }.join ", "


     * .erb, rotas, …
> Comandos!!!
> Novo projeto
rails new <nome>
> Scaffold
 rails generate
 scaffold
 <modelo com
 atributos>
> Rake
 rake <script>
> Quem usa?



> Diversas empresas utilizam o Rails
  para seus sites
> Basecamp
> Twitter
> github
> Groupon
> E na PT Inovação?
> Wardon
> Dialogus
> Tornar as coisas
 simples fáceis, e
 as complexas
 possíveis
> puts “Muito Obrigado!”
=> nil

Mais conteúdo relacionado

Mais procurados (20)

PDF
Introdução ao Ruby on Rails
Jony dos Santos Kostetzer
 
PDF
Palestra Desenvolvimento Ágil para Web com ROR UVA
Thiago Cifani
 
PDF
Abordagem geral - Ruby on rails
COTIC-PROEG (UFPA)
 
PPTX
C# 6.0 - Interopmix 2015
Renato Groff
 
PPTX
Treinamento i os
Pedro Nicholas De Souza
 
PDF
Delphi Conference 2012 - Programação Baseado em Regras com RTTI
Mario Guedes
 
PPTX
C# 6.0 - DotNetBaixada - Novembro/2015
Renato Groff
 
ODP
Ruby on Rails Colocando a web nos trilhos
jpaulolins
 
ODP
Ruby and Rails
Gilcier Oliveira de Sousa
 
PPTX
Testes com javascript
Laís Lima
 
PPTX
Codando Assíncrono com Coroutines
Arildo Borges Jr
 
PDF
Javascript por debaixo dos panos
Laís Lima
 
PDF
React para pensar além do Ruby
Adimir Colen
 
PDF
Sistemas Distribuídos: RMI, CORBA e SOA
Líus Fontenelle Carneiro
 
PPTX
Delphi Parallel Programming Library
Mario Guedes
 
ODP
Ruby
Filipe Giusti
 
PPT
ruby on rails e o mercado
elliando dias
 
PDF
Apresentação Integração ROS e JADE
Pedro Nakibar
 
PPT
Introducing Ruby
Robson de Almeida
 
KEY
Concorrência no IOS
Fagner Moura
 
Introdução ao Ruby on Rails
Jony dos Santos Kostetzer
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Thiago Cifani
 
Abordagem geral - Ruby on rails
COTIC-PROEG (UFPA)
 
C# 6.0 - Interopmix 2015
Renato Groff
 
Treinamento i os
Pedro Nicholas De Souza
 
Delphi Conference 2012 - Programação Baseado em Regras com RTTI
Mario Guedes
 
C# 6.0 - DotNetBaixada - Novembro/2015
Renato Groff
 
Ruby on Rails Colocando a web nos trilhos
jpaulolins
 
Testes com javascript
Laís Lima
 
Codando Assíncrono com Coroutines
Arildo Borges Jr
 
Javascript por debaixo dos panos
Laís Lima
 
React para pensar além do Ruby
Adimir Colen
 
Sistemas Distribuídos: RMI, CORBA e SOA
Líus Fontenelle Carneiro
 
Delphi Parallel Programming Library
Mario Guedes
 
ruby on rails e o mercado
elliando dias
 
Apresentação Integração ROS e JADE
Pedro Nakibar
 
Introducing Ruby
Robson de Almeida
 
Concorrência no IOS
Fagner Moura
 

Destaque (20)

PPT
Bazo
Ronald Montes
 
PPTX
Projecto cross media wikipédia
pedrovasco87
 
PPTX
Miología
yenyakelyn
 
PPTX
Brayan
naxional
 
PDF
Copasa doenças
Med. Veterinária 2011
 
PPTX
LA MAGIA DE LA NAVIDAD.
vane9903
 
PDF
Www1 an-com-br 1999-dez_16_0ane-htm_yodd5jd4
marcossage
 
PPT
Programacion diapositivas poema a
byronalejandro
 
PPTX
Marlonveelez!
Veelez
 
PPTX
Punto y linea
jacosta2
 
PDF
REFLEXÕES SOBRE A INFLUÊNCIA DA GLOBALIZAÇÃO NA EDUCAÇÃO SUPERIOR
Alexey Carvalho
 
PDF
Oncología
Eduardo Augusto Avila
 
PDF
Www1 an-com-br 1999-festival_20fes-htm_giwxpor4
marcossage
 
PPTX
Diapositivas de informatica del disco duro
11Madeleyne
 
PPTX
Tics
Maritzaa123
 
PPT
Fmci cap%201[1]
Carlos Queiroz
 
PPTX
Google earth project
LaQuoya Tyler
 
PPT
5idademdia2 090428162513-phpapp02
Samuel Henriques
 
PDF
Apresentação Coleção de Arte
KS Marketing e Comunicação Visual
 
PPT
Competência em informação uma abordagem comunicacional : constituição da ár...
Elisabeth Dudziak
 
Projecto cross media wikipédia
pedrovasco87
 
Miología
yenyakelyn
 
Brayan
naxional
 
Copasa doenças
Med. Veterinária 2011
 
LA MAGIA DE LA NAVIDAD.
vane9903
 
Www1 an-com-br 1999-dez_16_0ane-htm_yodd5jd4
marcossage
 
Programacion diapositivas poema a
byronalejandro
 
Marlonveelez!
Veelez
 
Punto y linea
jacosta2
 
REFLEXÕES SOBRE A INFLUÊNCIA DA GLOBALIZAÇÃO NA EDUCAÇÃO SUPERIOR
Alexey Carvalho
 
Www1 an-com-br 1999-festival_20fes-htm_giwxpor4
marcossage
 
Diapositivas de informatica del disco duro
11Madeleyne
 
Fmci cap%201[1]
Carlos Queiroz
 
Google earth project
LaQuoya Tyler
 
5idademdia2 090428162513-phpapp02
Samuel Henriques
 
Apresentação Coleção de Arte
KS Marketing e Comunicação Visual
 
Competência em informação uma abordagem comunicacional : constituição da ár...
Elisabeth Dudziak
 
Anúncio

Semelhante a Ruby e Rails (20)

PDF
Desenvolvimento web com Ruby on Rails (parte 1)
Joao Lucas Santana
 
ODP
Mini-curso RubyOnRails CESOL
targinosilveira
 
PPT
Ruby on Rails e o Mercado
Julio Monteiro
 
PPT
Introdução ao Ruby on Rails (SOCIESC)
Julio Monteiro
 
PDF
Ruby & Rails
Sergio Henrique
 
ODP
Ruby on Rails - Filosofia e Prática
Gabriel Molter
 
ODP
Introducao ao Ruby On Rails
Andre Ferraro
 
PDF
Rails na pratica
Túlio Ornelas
 
ODP
Palestra Faculdade Lourenço Filho
rafarubert
 
PPTX
Ruby on rails
Paulo Monteiro
 
PPTX
Ruby on Rails
Renato Sousa
 
PDF
Desenvolvimento agil ifc
Rafael Felix da Silva
 
PPSX
Rails e Rails, introdução e estudo de caso
John Carneiro
 
PDF
Desenvolvimento ágil de software com Ruby on Rails
Lucas Caton
 
PDF
Esta começando a programar para a web? Então começe com Rails
ismaelstahelin
 
PDF
Fundamentos de Objetos Remotos
Denis L Presciliano
 
PDF
Funmentos de Objetos Remotos
Denis L Presciliano
 
ODP
Introdução ao Ruby on Rails (InstallFest 2006)
Julio Monteiro
 
PPTX
Ruby
Ivna Valença
 
KEY
Desenvolvimento Ágil com Rails GURUSC 2011
Andre Bernardes
 
Desenvolvimento web com Ruby on Rails (parte 1)
Joao Lucas Santana
 
Mini-curso RubyOnRails CESOL
targinosilveira
 
Ruby on Rails e o Mercado
Julio Monteiro
 
Introdução ao Ruby on Rails (SOCIESC)
Julio Monteiro
 
Ruby & Rails
Sergio Henrique
 
Ruby on Rails - Filosofia e Prática
Gabriel Molter
 
Introducao ao Ruby On Rails
Andre Ferraro
 
Rails na pratica
Túlio Ornelas
 
Palestra Faculdade Lourenço Filho
rafarubert
 
Ruby on rails
Paulo Monteiro
 
Ruby on Rails
Renato Sousa
 
Desenvolvimento agil ifc
Rafael Felix da Silva
 
Rails e Rails, introdução e estudo de caso
John Carneiro
 
Desenvolvimento ágil de software com Ruby on Rails
Lucas Caton
 
Esta começando a programar para a web? Então começe com Rails
ismaelstahelin
 
Fundamentos de Objetos Remotos
Denis L Presciliano
 
Funmentos de Objetos Remotos
Denis L Presciliano
 
Introdução ao Ruby on Rails (InstallFest 2006)
Julio Monteiro
 
Desenvolvimento Ágil com Rails GURUSC 2011
Andre Bernardes
 
Anúncio

Último (7)

PPTX
NR-13.pptx treinamento sobre a norma regulamentadora
SimoniBorges1
 
PDF
Apresentação de Manipulação de strings em Python .pdf
Gabriel Vitor
 
PDF
SENAC Modelagem de Dados - Aula01 do curso de ADSpdf
JhonataLamim1
 
PPTX
Gestão de Mudanças - O que é e como é implementada
Gateware Group
 
PDF
SENAC Modelagem de Dados - Aula02 curso de ADS.pdf
JhonataLamim1
 
PDF
Zeebo: Uma brevíssima introdução. - David Glotz
BluePanther6
 
PDF
Apresentação sobre Funções Matemáticas e o módulo.pdf
Gabriel Vitor
 
NR-13.pptx treinamento sobre a norma regulamentadora
SimoniBorges1
 
Apresentação de Manipulação de strings em Python .pdf
Gabriel Vitor
 
SENAC Modelagem de Dados - Aula01 do curso de ADSpdf
JhonataLamim1
 
Gestão de Mudanças - O que é e como é implementada
Gateware Group
 
SENAC Modelagem de Dados - Aula02 curso de ADS.pdf
JhonataLamim1
 
Zeebo: Uma brevíssima introdução. - David Glotz
BluePanther6
 
Apresentação sobre Funções Matemáticas e o módulo.pdf
Gabriel Vitor
 

Ruby e Rails

  • 1. Ruby on Rails Magnum Fonseca | Thales Lima | Weslley Almeida
  • 2. Ruby > O que é Ruby? > Ruby é uma linguagem interpretada multiparadigma, dinâmica e open source com foco na simplicidade e produtividade. > Seus objetos e classes podem ser alterados em tempo de execução. Além disso é totalmente orientada a objetos, ou seja, em Ruby tudo é um objeto.
  • 3. > Como Surgiu? > Desenvolvido no Japão em 1995, por Yukihiro “Matz” Matsumoto. > Matz desejava uma linguagem mais poderosa que Perl e mais orientada a objetos que Python. A partir disso Matz decidiu desenhar a sua própria linguagem de programação.
  • 4. > Como Surgiu? Nós somos os mestres Eles são os escravos
  • 5. Diferenças de outras linguagens > Interpretadores * O interpretador Ruby é o programa que faz todo o trabalho pesado e roda seu código Ruby. No entanto existem diversos interpretadores: * MRI (Matz Ruby Interpreter) * JRuby * IronRuby * MacRuby * Etc…
  • 6. Diferenças de outras linguagens > Gems * Gem é um pacote ou uma aplicação escrita em ruby. Essas bibliotecas podem ser instaladas e divulgadas em diversos computadores, como as “libs” em C. * Uma adição interessante é que é muito fácil instalar uma gem gem install rails
  • 7. Diferenças de outras linguagens > IRB (Interactive Ruby Execution) * Basicamente um shell para Ruby. É um interpretador em tempo real dos códigos digitados. * É um método ágil de testar seus códigos ou de aprender Ruby
  • 8. > O que Ruby tem de tão legal?
  • 9. > Tudo é objeto! * Não existe variável primitiva * +, -, /… são todos métodos
  • 10. > Syntax Sugar * Linguagem onde o que importa é a beleza do código, expressividade do mesmo * Algumas regras podem ser quebradas, para que o código seja melhor entendido por humanos
  • 11. > Syntax Sugar if(a<b){ System.out.println("a é menor"); } puts("a é menor") if(a.<(b)) puts "a é menor" if a < b
  • 12. > Duck typing * Se ele anda como um pato, e faz quack como um pato, eu devo tratá-lo como um pato * Foco no que os objetos podem fazer, não no que eles são
  • 13. > Metaprogamação * Linguagem dinâmica * Código gerando código * Código modificando código
  • 14. > Blocos * Uma das coisas mais poderosas em Ruby * É um bloco, um fechamento do código que recebe código como parâmetro * Como um iterador mas executa códigos
  • 15. > Códigos legais * Métodos recebem Hash de parâmetros * Unless
  • 16. Rails > O que é Rails? <%= 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. %>
  • 17. > O início David Hannson em 2004 Extraído do trabalho dele na 37Signals
  • 18. > Do que é formado? > Rails é um meta-framework formado de: – Action Pack; – Action Mailer; – Active Record; – Active Support; – Active Web Services.
  • 19. > MVC > Model-view-controller (MVC) é um padrão de arquitetura de software que visa separar a lógica de negócio da lógica de apresentação, permitindo o desenvolvimento, teste e manutenção isolado de ambos
  • 20. > MVC > Model > View > Controller
  • 21. > Filosofias > Filosofias tem um pé (ou os dois) nas metodologias ágeis e em seus designs
  • 24. > Produtividade > Active Record c = Celular.new c.nome = "Galaxy S II" c.preco = 2000 Design Pattern, Framework c.save ORM === Em SQL === INSERT INTO CELULARES(NOME,PRECO) VALUES ("Galaxy S II", 2000);
  • 25. > Produtividade > Action Pack Pacote que gerencia as ações que ocorrem na aplicação, do request ao response
  • 26. > Action Pack > Action Controller Gerencia o que ocorre na Controller, quais ações e como elas devem ser tomadas
  • 27. > Action Pack > Action View * os celulares:como os dados serão c.nome Todos Gerencia <%= @celulares.collect { |c| apresentados na tela %> }.join ", " * .erb, rotas, …
  • 29. > Novo projeto rails new <nome>
  • 30. > Scaffold rails generate scaffold <modelo com atributos>
  • 31. > Rake rake <script>
  • 32. > Quem usa? > Diversas empresas utilizam o Rails para seus sites
  • 37. > E na PT Inovação?
  • 40. > Tornar as coisas simples fáceis, e as complexas possíveis
  • 41. > puts “Muito Obrigado!” => nil