SlideShare une entreprise Scribd logo
1  sur  118
Télécharger pour lire hors ligne
RUBY
  e
 o
 mu ndo
magico
 dos

u nic orn ios
em u?
qu
 e
so u




                                           Lailson Bandeira
                                          Bacharel em Ciência da Computação pelo CIn
                                         Mestrando em Aprendizagem de Máquina no CIn
                                              Membro do grupo de pesquisa VIISAR
                                                 Co-fundador do Frevo on Rails
                                              Sun Certified Java Programmer (SCJP)
emos
 
qu m ?
 so zes
  no




                      Guilherme Carvalho   Lailson Bandeira   Lucas Marinho
ui                     rails    html    apis
              cloud                               git     css
 agile                                               ux
         s3                                               json
javascript                                         ajax
                                                        sin atra
    heroku
mysql                                             websockets
                                  amazon
  postgres            padrino              mongodb
              Consultoria e desenvolvimento
                de aplicações web e móveis
                primariamente usando Ruby
ng
      i s
   az nt
am lie
  c
yeah,
they
 
 
                                      rock
a
  ha
 
                                          umjoin
       r
 
  ?
    ue cao m
 Q a e
ap lic tamb




                                                                                                                                                        contato@guava.com.br
                                                                                                                                                        facebook.com/guavasoftware
                                                                                                                                                        Rua Alfredo Coutinho, 74 – Casa Forte
R uby
 e
 o
 mundo
magico
 d os
 Unicornios
 
lin
                                              pro gua
                                                  gra gem
                                                     ma
 d
                                                       cao e
 

Ruby on
   Rails
              framewo
    rk
 web
UBY M
                    R DO
                   R AN CT
                      FA




11
fatos aleatórios
sobre Ruby
UBY M
                     R DO
                    R AN CT
                       FA




1   fridayhug.com
UBY M
                     R DO
                    R AN CT
                       FA




1   fridayhug.com
UBY M
                     R DO
                    R AN CT
                       FA




1   fridayhug.com
UBY M
                     R DO
                    R AN CT
                       FA




1   fridayhug.com
Japão, 1995
まつもとゆきひろ
Yukihiro Matsumoto
“Matz”
“Ruby is designed to make
  programmers happy.”
                   — Matz
Smalltalk
  Lisp
  Perl
EUA, 2001
“The Pickaxe Book”
Dinamarca, 2005
David Heinemeier Hansson
DHH
Rails 1.0
UBY M
 R DO
R AN CT
   FA




2   Ruby Heroes Award
UBY M
 R DO
R AN CT
   FA




2   Ruby Heroes Award
MULTIPARADIGMA
                       SOFTWARE LIVRE
    SINTAXE FLEXÍVEL
                                                          REFLEXIVA
MULTIPLATAFORMA
                                                          FUNCIONAL
  DINÂMICA                                                IMPERATIVA

   ORIENTADA A OBJETOS




                                                                 EXTENSÍVEL
INTERPRETADA                            TIPAGEM FORTE
Tudo é objeto
ruby 'frevo'.length
= 5

ruby -1.abs
= 1
Tudo é objeto

  1.upto 5 do |i|
    puts i
  end
(Quase) tudo é expressão

     if sexo ==   :masc
       saudacao   = 'Sr.'
     elsif sexo   == :fem
       saudacao   = 'Sra.'
     end
(Quase) tudo é expressão

   saudacao = if sexo == :masc
     'Sr.'
   elsif sexo == :fem
     'Sra.'
   end
(Quase) tudo é expressão

    saudacao = case sexo
      when :masc then 'Sr.'
      when :fem then 'Sra.'
    end
UBY M
                                 R DO
                                R AN CT
                                   FA


                 class Aಠ_ಠ
                 end

                 Aಠ_ಠ.new




3   Classe mais estranha ever
Construções funcionais
   numeros = [1,2,3,4]

   numeros.map do |num|
     num**2
   end
   = [1, 4, 9, 16]
Construções funcionais
   numeros = [1,2,3,4]

   numeros.select do |num|
     (num % 2) == 0
   end
   = [2, 4]
Construções funcionais
   numeros = [1,2,3,4]

   numeros.select do |num|
     num.even?
   end
   = [2, 4]
Construções funcionais

 numeros = [1,2,3,4]

 numeros.reduce do |memo, num|
   memo + num
 end
 = 10
Construções funcionais

    numeros = [1,2,3,4]

    numeros.reduce(:+)
    = 10
UBY M
                                      R DO
                                     R AN CT
                                        FA




4   Why's (Poignant) Guide to Ruby
UBY M
                                      R DO
                                     R AN CT
                                        FA




4   Why's (Poignant) Guide to Ruby
Extensível

require ‘active_support’

Date.today - 2.days
= Wed, 21 Nov 2012

3.days.ago
= 2012-11-21 10:00:00 -0300
Extensível

class Adder
  def sum(array)
    array.reduce(:+)
  end
end
Extensível
require 'rspec'

describe Adder do
  it 'should sum an array of numbers' do
    array = [1,2,3]
    adder = Adder.new
    adder.sum(array).should == 6
  end
end
Extensível

$ rspec adder_spec.rb

Adder
  should sum an array of numbers

Finished in 0.00069 seconds
1 example, 0 failures
TDD
Teste
    depois do
desenvolvimento
Test-
   driven
development
Behavior-
   driven
development
UBY M
                               R DO
                              R AN CT
                                 FA




5   RubyConf Argentina 2012
UBY M
                               R DO
                              R AN CT
                                 FA




5   RubyConf Argentina 2012
UBY M
                               R DO
                              R AN CT
                                 FA




5   RubyConf Argentina 2012
Bibliotecas são gems

 $   gem   install   crack
 $   gem   install   cocaine
 $   gem   install   cannabis
 $   gem   install   valium
Rake pra fazer o trabalho sujo

      $   rake   db:create
      $   rake   db:migrate
      $   rake   db:drop
      $   rake   deploy
Rails
arquitetura

MVC
 model-view-controller
UBY M
                   R DO
                  R AN CT
                     FA




6   Rails Girls
UBY M
                   R DO
                  R AN CT
                     FA




6   Rails Girls
Revolução no
desenvolvimento
    para web
Princípios
DRY
Don’t
 repeat
 yourself
CoC
Convention
 over
 configuration
KISS
Keep
 it
 stupdly
 simple
YAGNI
  you
 ain’t
 gonna
 need
 it
 NIHS
   not
 invented
 here
 syndrome
 TATFT
                                         test
 all
 the
 fucking
 time
Linha de comando
Editores simples
http://github.com/
UBY M
                         R DO
                        R AN CT
                           FA




              Octocat

7   Octodex
UBY M
                                            R DO
                                           R AN CT
                                              FA




              http://octodex.github.com/


7   Octodex
Conferências
Oxente Rails 2010
RailsConf 2011
RubyConf Brasil 2011
RubyConf Argentina 2011
RubyConf Brasil 2012
RubyConf Argentina 2012

Contenu connexe

Similaire à Ruby e o Mundo Mágico dos Unicórnios

Slides do curso Programação web com RubyOnRails
Slides do curso Programação web com RubyOnRailsSlides do curso Programação web com RubyOnRails
Slides do curso Programação web com RubyOnRails
Tiago Godinho
 
Rails - EXATEC2009
Rails - EXATEC2009Rails - EXATEC2009
Rails - EXATEC2009
Caue Guerra
 

Similaire à Ruby e o Mundo Mágico dos Unicórnios (15)

Slides do curso Programação web com RubyOnRails
Slides do curso Programação web com RubyOnRailsSlides do curso Programação web com RubyOnRails
Slides do curso Programação web com RubyOnRails
 
Dev in Rio - Uma Visão do Mundo Ruby
Dev in Rio - Uma Visão do Mundo RubyDev in Rio - Uma Visão do Mundo Ruby
Dev in Rio - Uma Visão do Mundo Ruby
 
Ruby on Rails em 30 minutos
Ruby on Rails em 30 minutosRuby on Rails em 30 minutos
Ruby on Rails em 30 minutos
 
Rails - EXATEC2009
Rails - EXATEC2009Rails - EXATEC2009
Rails - EXATEC2009
 
Ruby, Simples e Expressivo
Ruby, Simples e ExpressivoRuby, Simples e Expressivo
Ruby, Simples e Expressivo
 
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
 
Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011Desenvolvimento Ágil com Rails GURUSC 2011
Desenvolvimento Ágil com Rails GURUSC 2011
 
Ruby: A New World
Ruby: A New WorldRuby: A New World
Ruby: A New World
 
Palestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço FilhoPalestra Faculdade Lourenço Filho
Palestra Faculdade Lourenço Filho
 
Ruby aula01
Ruby aula01Ruby aula01
Ruby aula01
 
Ruby, Rails e Diversão
Ruby, Rails e DiversãoRuby, Rails e Diversão
Ruby, Rails e Diversão
 
JRuby - Explorando um mundo de possibilidades
JRuby - Explorando um mundo de possibilidadesJRuby - Explorando um mundo de possibilidades
JRuby - Explorando um mundo de possibilidades
 
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
 
Sua aplicação não é filha de um framework
Sua aplicação não é filha de um frameworkSua aplicação não é filha de um framework
Sua aplicação não é filha de um framework
 
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
 

Plus de Frevo on Rails (11)

Introducao a Ruby on Rails
Introducao a Ruby on RailsIntroducao a Ruby on Rails
Introducao a Ruby on Rails
 
Programação GUI com jRuby
Programação GUI com jRubyProgramação GUI com jRuby
Programação GUI com jRuby
 
WebApps minimalistas com Sinatra
WebApps minimalistas com SinatraWebApps minimalistas com Sinatra
WebApps minimalistas com Sinatra
 
The elements of User Experience
The elements of User ExperienceThe elements of User Experience
The elements of User Experience
 
Crash Course Ruby & Rails
Crash Course Ruby & RailsCrash Course Ruby & Rails
Crash Course Ruby & Rails
 
jcheck: validações client-side sem dores
jcheck: validações client-side sem doresjcheck: validações client-side sem dores
jcheck: validações client-side sem dores
 
Ruby (nem tão) Básico
Ruby (nem tão) BásicoRuby (nem tão) Básico
Ruby (nem tão) Básico
 
Perfil da Comunidade
Perfil da ComunidadePerfil da Comunidade
Perfil da Comunidade
 
Resolvendo problemas de dependências com o Bundler
Resolvendo problemas de dependências com o BundlerResolvendo problemas de dependências com o Bundler
Resolvendo problemas de dependências com o Bundler
 
O que vem por aí com Rails 3
O que vem por aí com Rails 3O que vem por aí com Rails 3
O que vem por aí com Rails 3
 
Regras do Coding Dojo
Regras do Coding DojoRegras do Coding Dojo
Regras do Coding Dojo
 

Dernier

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Dernier (6)

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

Ruby e o Mundo Mágico dos Unicórnios