Introdução ao Ruby on
         Rails
              UniInfo 2007

    Jony dos Santos Kostetzer
    http://jonysk.net | jony@jonysk.net
Objetivos do mini-curso
●   Conhecer a linguagem Ruby e suas principais
    características sintáticas
●   Compreender a arquitetura MVC e sua
    aplicação no Rails
●   Compreender os conceitos que norteiam o
    desenvolvimento de aplicações com Rails
●   Desenvolver um cadastro de livros de forma
    incremental
A linguagem Ruby
História
●   Criada em 1993 por Yukihiro “matz” Matsumoto
●   Sucesso com o Rails
●   No Japão, mais popular que a linguagem
    Python
●   Inspirada em Perl, Smalltalk, Ada, Eiffel, Lisp
●   Open Source
●   Versão estável: 1.8.6
●   Quase 4.300 projetos hospedados no
    RubyForge
Características
●   Sintaxe simples, eficiente...
●   ... e divertida!
●   Code less, do more!
●   Foco na solução
●   Tipagem dinâmica e forte
●   Tudo é objeto
●   Tudo tem um valor
Dave Thomas says...
●   I believe that the purpose of life is, at least in
    part, to be happy. Based on this belief, Ruby is
    designed to make programming not only easy
    but also fun.
●   You can concentrate on solving the problem at
    hand, instead of struggling with compiler and
    language issues. That’s how it can help you
    become a better programmer: by giving you the
    chance to spend your time creating solutions for
    your users, not for the compiler.
Características
●   Classes abertas
●   Herança simples, mas extensível com mixins
●   Mensagens e não chamada de métodos
●   Operadores mutáveis
●   Variáveis são referências a objetos
●   Uso massivo de blocos
Tipos de dados
●   Numéricos
    –   Fixnum , Bignum, Float
●   Booleanos
    –   true, false, nil
●   Strings
●   Ranges
●   Arrays e Hashes
●   Expressões regulares
●   Proc
●   Symbols
Classes e objetos
class Classe
   def initialize(param1, param2)
      @inst1, @inst2 = param1, param2
   end

  def metodo(param1, param2)
  end
end

a = Class.new
a.metodo
a.metodo(1, 2)
a.metodo 1, 2
a.send “metodo”, 1, 2
O framework Rails
Rails
●   Criado em meados de 2003 por David
    Heinemeier Hansson (DHH)
●   Aplicação real que foi abstraída
●   37signals.com
●   MVC
●   Vantagem principal: Ruby!!
A filosofia por trás do Rails
●   DRY – Don't Repeat Yourself
●   Convention over Configuration
●   Opinated software
●   Agile Manifesto - http://www.agilemanifesto.org
●   Resposta às mudanças
MVC - Model-View-Controller
MVC no Rails
Componentes
●   ActiveRecord: Model no rails
         ●   ORM
●   ActionPack: Controller e View
    –   View
         ●   RHTML
         ●   RXML
         ●   RJS
●   ActionMailer
●   ActiveResouce e ActionWebService
Hands on!
●   Aplicação: Cadastro de livros
Atualidades
●   Versão 2.0 a caminho
●   YARV
●   Projeto JRuby
    –   Rails & Java
    –   Sun
    –   Compilador finalizado
Links
●   http://rubyonrails.com
●   http://api.rubyonrails.com
●   http://www.rubyonbr.org/
●   http://jruby.codehaus.org
●   http://www.eustaquiorangel.com/ (tutorial ruby)
●   http://kb.reflectivesurface.com/br/tutoriais/railsD
    iversaoLucro/ (tutorial rails)
●   http://gettingreal.37signals.com/
●   http://akitaonrails.com
Obrigado!

Jony dos Santos Kostetzer
http://jonysk.net | jony@jonysk.net

Introdução ao Ruby on Rails

  • 1.
    Introdução ao Rubyon Rails UniInfo 2007 Jony dos Santos Kostetzer http://jonysk.net | jony@jonysk.net
  • 2.
    Objetivos do mini-curso ● Conhecer a linguagem Ruby e suas principais características sintáticas ● Compreender a arquitetura MVC e sua aplicação no Rails ● Compreender os conceitos que norteiam o desenvolvimento de aplicações com Rails ● Desenvolver um cadastro de livros de forma incremental
  • 3.
  • 4.
    História ● Criada em 1993 por Yukihiro “matz” Matsumoto ● Sucesso com o Rails ● No Japão, mais popular que a linguagem Python ● Inspirada em Perl, Smalltalk, Ada, Eiffel, Lisp ● Open Source ● Versão estável: 1.8.6 ● Quase 4.300 projetos hospedados no RubyForge
  • 5.
    Características ● Sintaxe simples, eficiente... ● ... e divertida! ● Code less, do more! ● Foco na solução ● Tipagem dinâmica e forte ● Tudo é objeto ● Tudo tem um valor
  • 6.
    Dave Thomas says... ● I believe that the purpose of life is, at least in part, to be happy. Based on this belief, Ruby is designed to make programming not only easy but also fun. ● You can concentrate on solving the problem at hand, instead of struggling with compiler and language issues. That’s how it can help you become a better programmer: by giving you the chance to spend your time creating solutions for your users, not for the compiler.
  • 7.
    Características ● Classes abertas ● Herança simples, mas extensível com mixins ● Mensagens e não chamada de métodos ● Operadores mutáveis ● Variáveis são referências a objetos ● Uso massivo de blocos
  • 8.
    Tipos de dados ● Numéricos – Fixnum , Bignum, Float ● Booleanos – true, false, nil ● Strings ● Ranges ● Arrays e Hashes ● Expressões regulares ● Proc ● Symbols
  • 9.
    Classes e objetos classClasse def initialize(param1, param2) @inst1, @inst2 = param1, param2 end def metodo(param1, param2) end end a = Class.new a.metodo a.metodo(1, 2) a.metodo 1, 2 a.send “metodo”, 1, 2
  • 10.
  • 11.
    Rails ● Criado em meados de 2003 por David Heinemeier Hansson (DHH) ● Aplicação real que foi abstraída ● 37signals.com ● MVC ● Vantagem principal: Ruby!!
  • 12.
    A filosofia portrás do Rails ● DRY – Don't Repeat Yourself ● Convention over Configuration ● Opinated software ● Agile Manifesto - http://www.agilemanifesto.org ● Resposta às mudanças
  • 13.
  • 14.
  • 15.
    Componentes ● ActiveRecord: Model no rails ● ORM ● ActionPack: Controller e View – View ● RHTML ● RXML ● RJS ● ActionMailer ● ActiveResouce e ActionWebService
  • 16.
    Hands on! ● Aplicação: Cadastro de livros
  • 17.
    Atualidades ● Versão 2.0 a caminho ● YARV ● Projeto JRuby – Rails & Java – Sun – Compilador finalizado
  • 18.
    Links ● http://rubyonrails.com ● http://api.rubyonrails.com ● http://www.rubyonbr.org/ ● http://jruby.codehaus.org ● http://www.eustaquiorangel.com/ (tutorial ruby) ● http://kb.reflectivesurface.com/br/tutoriais/railsD iversaoLucro/ (tutorial rails) ● http://gettingreal.37signals.com/ ● http://akitaonrails.com
  • 19.
    Obrigado! Jony dos SantosKostetzer http://jonysk.net | jony@jonysk.net