SlideShare uma empresa Scribd logo
1 de 41
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

Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAThiago Cifani
 
Abordagem geral - Ruby on rails
Abordagem geral - Ruby on railsAbordagem geral - Ruby on rails
Abordagem geral - Ruby on railsCOTIC-PROEG (UFPA)
 
C# 6.0 - Interopmix 2015
C# 6.0 - Interopmix 2015C# 6.0 - Interopmix 2015
C# 6.0 - Interopmix 2015Renato Groff
 
Delphi Conference 2012 - Programação Baseado em Regras com RTTI
Delphi Conference 2012 - Programação Baseado em Regras com RTTIDelphi Conference 2012 - Programação Baseado em Regras com RTTI
Delphi Conference 2012 - Programação Baseado em Regras com RTTIMario Guedes
 
C# 6.0 - DotNetBaixada - Novembro/2015
C# 6.0 - DotNetBaixada - Novembro/2015C# 6.0 - DotNetBaixada - Novembro/2015
C# 6.0 - DotNetBaixada - Novembro/2015Renato Groff
 
Ruby on Rails Colocando a web nos trilhos
Ruby on Rails Colocando a web nos trilhosRuby on Rails Colocando a web nos trilhos
Ruby on Rails Colocando a web nos trilhosjpaulolins
 
Testes com javascript
Testes com javascriptTestes com javascript
Testes com javascriptLaís Lima
 
Codando Assíncrono com Coroutines
Codando Assíncrono com CoroutinesCodando Assíncrono com Coroutines
Codando Assíncrono com CoroutinesArildo Borges Jr
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panosLaís Lima
 
React para pensar além do Ruby
React para pensar além do RubyReact para pensar além do Ruby
React para pensar além do RubyAdimir Colen
 
Delphi Parallel Programming Library
Delphi Parallel Programming LibraryDelphi Parallel Programming Library
Delphi Parallel Programming LibraryMario Guedes
 
ruby on rails e o mercado
ruby on rails e o mercadoruby on rails e o mercado
ruby on rails e o mercadoelliando dias
 
Apresentação Integração ROS e JADE
Apresentação Integração ROS e JADEApresentação Integração ROS e JADE
Apresentação Integração ROS e JADEPedro Nakibar
 
Concorrência no IOS
Concorrência no IOSConcorrência no IOS
Concorrência no IOSFagner Moura
 

Mais procurados (20)

Introdução ao Ruby on Rails
Introdução ao Ruby on RailsIntrodução ao Ruby on Rails
Introdução ao Ruby on Rails
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 
Abordagem geral - Ruby on rails
Abordagem geral - Ruby on railsAbordagem geral - Ruby on rails
Abordagem geral - Ruby on rails
 
C# 6.0 - Interopmix 2015
C# 6.0 - Interopmix 2015C# 6.0 - Interopmix 2015
C# 6.0 - Interopmix 2015
 
Treinamento i os
Treinamento i osTreinamento i os
Treinamento i os
 
Delphi Conference 2012 - Programação Baseado em Regras com RTTI
Delphi Conference 2012 - Programação Baseado em Regras com RTTIDelphi Conference 2012 - Programação Baseado em Regras com RTTI
Delphi Conference 2012 - Programação Baseado em Regras com RTTI
 
C# 6.0 - DotNetBaixada - Novembro/2015
C# 6.0 - DotNetBaixada - Novembro/2015C# 6.0 - DotNetBaixada - Novembro/2015
C# 6.0 - DotNetBaixada - Novembro/2015
 
Ruby on Rails Colocando a web nos trilhos
Ruby on Rails Colocando a web nos trilhosRuby on Rails Colocando a web nos trilhos
Ruby on Rails Colocando a web nos trilhos
 
Ruby and Rails
Ruby and RailsRuby and Rails
Ruby and Rails
 
Testes com javascript
Testes com javascriptTestes com javascript
Testes com javascript
 
Codando Assíncrono com Coroutines
Codando Assíncrono com CoroutinesCodando Assíncrono com Coroutines
Codando Assíncrono com Coroutines
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
 
React para pensar além do Ruby
React para pensar além do RubyReact para pensar além do Ruby
React para pensar além do Ruby
 
Sistemas Distribuídos: RMI, CORBA e SOA
Sistemas Distribuídos: RMI, CORBA e SOASistemas Distribuídos: RMI, CORBA e SOA
Sistemas Distribuídos: RMI, CORBA e SOA
 
Delphi Parallel Programming Library
Delphi Parallel Programming LibraryDelphi Parallel Programming Library
Delphi Parallel Programming Library
 
Ruby
RubyRuby
Ruby
 
ruby on rails e o mercado
ruby on rails e o mercadoruby on rails e o mercado
ruby on rails e o mercado
 
Apresentação Integração ROS e JADE
Apresentação Integração ROS e JADEApresentação Integração ROS e JADE
Apresentação Integração ROS e JADE
 
Introducing Ruby
Introducing RubyIntroducing Ruby
Introducing Ruby
 
Concorrência no IOS
Concorrência no IOSConcorrência no IOS
Concorrência no IOS
 

Destaque

Projecto cross media wikipédia
Projecto cross media wikipédiaProjecto cross media wikipédia
Projecto cross media wikipédiapedrovasco87
 
LA MAGIA DE LA NAVIDAD.
LA MAGIA DE LA NAVIDAD.LA MAGIA DE LA NAVIDAD.
LA MAGIA DE LA NAVIDAD.vane9903
 
Www1 an-com-br 1999-dez_16_0ane-htm_yodd5jd4
Www1 an-com-br 1999-dez_16_0ane-htm_yodd5jd4Www1 an-com-br 1999-dez_16_0ane-htm_yodd5jd4
Www1 an-com-br 1999-dez_16_0ane-htm_yodd5jd4marcossage
 
Programacion diapositivas poema a
Programacion diapositivas poema aProgramacion diapositivas poema a
Programacion diapositivas poema abyronalejandro
 
Marlonveelez!
Marlonveelez!Marlonveelez!
Marlonveelez!Veelez
 
Punto y linea
Punto y lineaPunto y linea
Punto y lineajacosta2
 
REFLEXÕES SOBRE A INFLUÊNCIA DA GLOBALIZAÇÃO NA EDUCAÇÃO SUPERIOR
REFLEXÕES SOBRE A INFLUÊNCIA DA GLOBALIZAÇÃO NA EDUCAÇÃO SUPERIORREFLEXÕES SOBRE A INFLUÊNCIA DA GLOBALIZAÇÃO NA EDUCAÇÃO SUPERIOR
REFLEXÕES SOBRE A INFLUÊNCIA DA GLOBALIZAÇÃO NA EDUCAÇÃO SUPERIORAlexey Carvalho
 
Www1 an-com-br 1999-festival_20fes-htm_giwxpor4
Www1 an-com-br 1999-festival_20fes-htm_giwxpor4Www1 an-com-br 1999-festival_20fes-htm_giwxpor4
Www1 an-com-br 1999-festival_20fes-htm_giwxpor4marcossage
 
Diapositivas de informatica del disco duro
Diapositivas de informatica del disco duroDiapositivas de informatica del disco duro
Diapositivas de informatica del disco duro11Madeleyne
 
Google earth project
Google earth projectGoogle earth project
Google earth projectLaQuoya Tyler
 
5idademdia2 090428162513-phpapp02
5idademdia2 090428162513-phpapp025idademdia2 090428162513-phpapp02
5idademdia2 090428162513-phpapp02Samuel Henriques
 
Competência em informação uma abordagem comunicacional : constituição da ár...
Competência em informação uma abordagem comunicacional: constituição da ár...Competência em informação uma abordagem comunicacional: constituição da ár...
Competência em informação uma abordagem comunicacional : constituição da ár...Elisabeth Dudziak
 

Destaque (20)

Bazo
BazoBazo
Bazo
 
Projecto cross media wikipédia
Projecto cross media wikipédiaProjecto cross media wikipédia
Projecto cross media wikipédia
 
Miología
MiologíaMiología
Miología
 
Brayan
BrayanBrayan
Brayan
 
Copasa doenças
Copasa doençasCopasa doenças
Copasa doenças
 
LA MAGIA DE LA NAVIDAD.
LA MAGIA DE LA NAVIDAD.LA MAGIA DE LA NAVIDAD.
LA MAGIA DE LA NAVIDAD.
 
Www1 an-com-br 1999-dez_16_0ane-htm_yodd5jd4
Www1 an-com-br 1999-dez_16_0ane-htm_yodd5jd4Www1 an-com-br 1999-dez_16_0ane-htm_yodd5jd4
Www1 an-com-br 1999-dez_16_0ane-htm_yodd5jd4
 
Programacion diapositivas poema a
Programacion diapositivas poema aProgramacion diapositivas poema a
Programacion diapositivas poema a
 
Marlonveelez!
Marlonveelez!Marlonveelez!
Marlonveelez!
 
Punto y linea
Punto y lineaPunto y linea
Punto y linea
 
REFLEXÕES SOBRE A INFLUÊNCIA DA GLOBALIZAÇÃO NA EDUCAÇÃO SUPERIOR
REFLEXÕES SOBRE A INFLUÊNCIA DA GLOBALIZAÇÃO NA EDUCAÇÃO SUPERIORREFLEXÕES SOBRE A INFLUÊNCIA DA GLOBALIZAÇÃO NA EDUCAÇÃO SUPERIOR
REFLEXÕES SOBRE A INFLUÊNCIA DA GLOBALIZAÇÃO NA EDUCAÇÃO SUPERIOR
 
Oncología
OncologíaOncología
Oncología
 
Www1 an-com-br 1999-festival_20fes-htm_giwxpor4
Www1 an-com-br 1999-festival_20fes-htm_giwxpor4Www1 an-com-br 1999-festival_20fes-htm_giwxpor4
Www1 an-com-br 1999-festival_20fes-htm_giwxpor4
 
Diapositivas de informatica del disco duro
Diapositivas de informatica del disco duroDiapositivas de informatica del disco duro
Diapositivas de informatica del disco duro
 
Tics
TicsTics
Tics
 
Fmci cap%201[1]
Fmci cap%201[1]Fmci cap%201[1]
Fmci cap%201[1]
 
Google earth project
Google earth projectGoogle earth project
Google earth project
 
5idademdia2 090428162513-phpapp02
5idademdia2 090428162513-phpapp025idademdia2 090428162513-phpapp02
5idademdia2 090428162513-phpapp02
 
Apresentação Coleção de Arte
Apresentação Coleção de ArteApresentação Coleção de Arte
Apresentação Coleção de Arte
 
Competência em informação uma abordagem comunicacional : constituição da ár...
Competência em informação uma abordagem comunicacional: constituição da ár...Competência em informação uma abordagem comunicacional: constituição da ár...
Competência em informação uma abordagem comunicacional : constituição da ár...
 

Semelhante a Ruby e Rails

Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Joao Lucas Santana
 
Mini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLMini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLtarginosilveira
 
Ruby on Rails e o Mercado
Ruby on Rails e o MercadoRuby on Rails e o Mercado
Ruby on Rails e o MercadoJulio Monteiro
 
Introdução ao Ruby on Rails (SOCIESC)
Introdução ao Ruby on Rails (SOCIESC)Introdução ao Ruby on Rails (SOCIESC)
Introdução ao Ruby on Rails (SOCIESC)Julio Monteiro
 
Ruby on Rails - Filosofia e Prática
Ruby on Rails - Filosofia e PráticaRuby on Rails - Filosofia e Prática
Ruby on Rails - Filosofia e PráticaGabriel Molter
 
Introducao ao Ruby On Rails
Introducao ao Ruby On RailsIntroducao ao Ruby On Rails
Introducao ao Ruby On RailsAndre Ferraro
 
Palestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço FilhoPalestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço Filhorafarubert
 
Rails e Rails, introdução e estudo de caso
Rails e Rails, introdução e estudo de casoRails e Rails, introdução e estudo de caso
Rails e Rails, introdução e estudo de casoJohn Carneiro
 
Desenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsDesenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsLucas Caton
 
Esta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com RailsEsta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com Railsismaelstahelin
 
Introdução ao Ruby on Rails (InstallFest 2006)
Introdução ao Ruby on Rails (InstallFest 2006)Introdução ao Ruby on Rails (InstallFest 2006)
Introdução ao Ruby on Rails (InstallFest 2006)Julio Monteiro
 
Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011Andre Bernardes
 

Semelhante a Ruby e Rails (20)

Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)
 
Mini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLMini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOL
 
Ruby on Rails e o Mercado
Ruby on Rails e o MercadoRuby on Rails e o Mercado
Ruby on Rails e o Mercado
 
Introdução ao Ruby on Rails (SOCIESC)
Introdução ao Ruby on Rails (SOCIESC)Introdução ao Ruby on Rails (SOCIESC)
Introdução ao Ruby on Rails (SOCIESC)
 
Ruby & Rails
Ruby & RailsRuby & Rails
Ruby & Rails
 
Ruby on Rails - Filosofia e Prática
Ruby on Rails - Filosofia e PráticaRuby on Rails - Filosofia e Prática
Ruby on Rails - Filosofia e Prática
 
Introducao ao Ruby On Rails
Introducao ao Ruby On RailsIntroducao ao Ruby On Rails
Introducao ao Ruby On Rails
 
Rails na pratica
Rails na praticaRails na pratica
Rails na pratica
 
Palestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço FilhoPalestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço Filho
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on Rails
 
Desenvolvimento agil ifc
Desenvolvimento agil ifcDesenvolvimento agil ifc
Desenvolvimento agil ifc
 
Rails e Rails, introdução e estudo de caso
Rails e Rails, introdução e estudo de casoRails e Rails, introdução e estudo de caso
Rails e Rails, introdução e estudo de caso
 
Desenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsDesenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on Rails
 
Esta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com RailsEsta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com Rails
 
Fundamentos de Objetos Remotos
Fundamentos de Objetos RemotosFundamentos de Objetos Remotos
Fundamentos de Objetos Remotos
 
Funmentos de Objetos Remotos
Funmentos de Objetos RemotosFunmentos de Objetos Remotos
Funmentos de Objetos Remotos
 
Introdução ao Ruby on Rails (InstallFest 2006)
Introdução ao Ruby on Rails (InstallFest 2006)Introdução ao Ruby on Rails (InstallFest 2006)
Introdução ao Ruby on Rails (InstallFest 2006)
 
Ruby
RubyRuby
Ruby
 
Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011
 

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