SlideShare a Scribd company logo
1 of 168
Download to read offline
Oficina
                             Ruby on Rails
                             por Guilherme Vinicius




sábado, 4 de junho de 2011
Desculpas pela apresentação.
                          =(




sábado, 4 de junho de 2011
sábado, 4 de junho de 2011
sábado, 4 de junho de 2011
sábado, 4 de junho de 2011
Quem sou eu ?




sábado, 4 de junho de 2011
Quem sou eu ?
          Guilherme Vinicius Moreira




sábado, 4 de junho de 2011
Quem sou eu ?
          Guilherme Vinicius Moreira   (Harry)




sábado, 4 de junho de 2011
Quem sou eu ?
          Guilherme Vinicius Moreira   (Harry)

          Desde 2007 em desenv. de Software




sábado, 4 de junho de 2011
Quem sou eu ?
          Guilherme Vinicius Moreira   (Harry)

          Desde 2007 em desenv. de Software

          Desde 2010 com Rails




sábado, 4 de junho de 2011
Quem sou eu ?
          Guilherme Vinicius Moreira   (Harry)

          Desde 2007 em desenv. de Software

          Desde 2010 com Rails

                             SEMPRE WEB!!!


sábado, 4 de junho de 2011
Quem sou eu ?
          Guilherme Vinicius Moreira          (Harry)

          Desde 2007 em desenv. de Software

          Desde 2010 com Rails

                             SEMPRE WEB!!!
                                   @guivinicius
                             gui.vinicius@gmail.com
sábado, 4 de junho de 2011
Quem são vocês ?




sábado, 4 de junho de 2011
Objetivos de hoje!




sábado, 4 de junho de 2011
Objetivos de hoje!

                              Despertar curiosidade




sábado, 4 de junho de 2011
Objetivos de hoje!

                              Despertar curiosidade

             Contribuir para a comunidade Ruby / Rails




sábado, 4 de junho de 2011
Objetivos de hoje!

                              Despertar curiosidade

             Contribuir para a comunidade Ruby / Rails

                               Aprender / Ensinar




sábado, 4 de junho de 2011
Ruby on Rails



sábado, 4 de junho de 2011
Linguagem



                             Ruby on Rails



sábado, 4 de junho de 2011
Linguagem



                             Ruby on Rails
                                           Framework




sábado, 4 de junho de 2011
RUGBY




                             RUBY



sábado, 4 de junho de 2011
RUGBY




                             RUBY



sábado, 4 de junho de 2011
sábado, 4 de junho de 2011
sábado, 4 de junho de 2011
sábado, 4 de junho de 2011
sábado, 4 de junho de 2011
História




sábado, 4 de junho de 2011
História
                             1993 - 1995




sábado, 4 de junho de 2011
História
                             1993 - 1995




sábado, 4 de junho de 2011
História
                                    1993 - 1995




                             Yukihiro Matsumoto, ou “Matz”

sábado, 4 de junho de 2011
Filosofia




sábado, 4 de junho de 2011
Filosofia

                “ ... estou trabalhando para fazer o Ruby
                  uma linguagem natural, não simples. ”




sábado, 4 de junho de 2011
Filosofia

                “ ... estou trabalhando para fazer o Ruby
                  uma linguagem natural, não simples. ”



                   “ Ruby é simples na aparência, mas é
                   muito complicada internamente, igual o
                              corpo humano. ”



sábado, 4 de junho de 2011
Mas como ?




sábado, 4 de junho de 2011
Mas como ?




sábado, 4 de junho de 2011
Mas como ?




sábado, 4 de junho de 2011
Mas como ?




sábado, 4 de junho de 2011
Mas como ?




sábado, 4 de junho de 2011
Mas como ?




sábado, 4 de junho de 2011
Versões


                             1.9.2

                             1.8.7

                              REE
sábado, 4 de junho de 2011
http://www.ruby-lang.org




sábado, 4 de junho de 2011
http://tryruby.org/




sábado, 4 de junho de 2011
http://www.jruby.org/




sábado, 4 de junho de 2011
http://www.macruby.org/




sábado, 4 de junho de 2011
http://rubini.us/




sábado, 4 de junho de 2011
sábado, 4 de junho de 2011
E o código ?




sábado, 4 de junho de 2011
sábado, 4 de junho de 2011
“Hello World”
                                  Ruby




sábado, 4 de junho de 2011
“Hello World”
                                  Ruby




                    puts "Hello World"




sábado, 4 de junho de 2011
“Hello World”
                                  Java




sábado, 4 de junho de 2011
“Hello World”
                                  Java




           public class HelloWorld {
              public static void main(String[] args) {
                 System.out.println("Hello World");
              }
           }




sábado, 4 de junho de 2011
“Hello World”
                                  Java




           public class HelloWorld {
              public static void main(String[] args) {
                 System.out.println("Hello World");
              }
           }




sábado, 4 de junho de 2011
“Hello World”
                                   C




sábado, 4 de junho de 2011
“Hello World”
                                   C


           #include <stdio.h>

           int main()
           {
             printf(“Hello Worldn”);
             return 0;
           }




sábado, 4 de junho de 2011
“Hello World”
                                   C


           #include <stdio.h>

           int main()
           {
             printf(“Hello Worldn”);
             return 0;
           }




sábado, 4 de junho de 2011
“Hello World”
                                  Ruby


                    puts "Hello World"




sábado, 4 de junho de 2011
“Hello World”
                                  Ruby


                    puts "Hello World"




sábado, 4 de junho de 2011
puts "Hello World".class
         # => String

         puts 1.class
         # => Fixnum

         puts true.class
         # => TrueClass

         puts nil.class
         # => Nilclass

sábado, 4 de junho de 2011
Funções




sábado, 4 de junho de 2011
Funções


               def welcome(name)
                 return "Welcome, " + name
               end

               puts welcome("Harry")
               # => Welcome, Harry


sábado, 4 de junho de 2011
Funções
                             Parênteses opcionais


               def welcome(name)
                 return "Welcome, " + name
               end

               puts welcome "Harry"
               # => Welcome, Harry


sábado, 4 de junho de 2011
Funções
                             Return automático


               def welcome(name)
                 "Welcome, " + name
               end

               puts welcome "Harry"
               # => Welcome, Harry


sábado, 4 de junho de 2011
Funções
                             Interpolação


               def welcome(name)
                 "Welcome, #{name}"
               end

               puts welcome "Harry"
               # => Welcome, Harry


sábado, 4 de junho de 2011
Classes
               class Fixnum
                 def welcome(name)
                   self.times {
                     puts "Welcome, #{name}"
                   }
                 end
               end

               5.welcome("Harry")

sábado, 4 de junho de 2011
Classes
             class Pessoa
               def chora
                 puts "#{self.class} chorando"
               end
             end

             class Aluno < Pessoa
               def reprova!
                 puts "Aluno reprovado!"
               end
             end

             aluno = Aluno.new
             aluno.reprova! # => Aluno reprovado!
             aluno.chora    # => Aluno chorando

sábado, 4 de junho de 2011
Mais código!
          [14, 35, -7, 46, 98].min
          [14, 35, -7, 46, 98].max


       4.times { |n| puts "Happy Birthday #{n==2 ? "dear Tony" : "to You"}" }




       Array.new(6).collect {rand 60}.sort




sábado, 4 de junho de 2011
sábado, 4 de junho de 2011
sábado, 4 de junho de 2011
PRONTO AGORA VOCÊ JÁ É UM
           MESTRE NO RUBY!




sábado, 4 de junho de 2011
sábado, 4 de junho de 2011
Quem ser bom em Ruby ou
                em qualquer outra coisa ?




sábado, 4 de junho de 2011
sábado, 4 de junho de 2011
E as Gems ?




sábado, 4 de junho de 2011
E as Gems ?

                             Pacotes/Programas




sábado, 4 de junho de 2011
E as Gems ?

                                Pacotes/Programas


                             (Ruby) Gem == Jar (Java)




sábado, 4 de junho de 2011
E as Gems ?

                                Pacotes/Programas


                             (Ruby) Gem == Jar (Java)

                                    rubygems




sábado, 4 de junho de 2011
E as Gems ?

                                Pacotes/Programas


                             (Ruby) Gem == Jar (Java)

                                    rubygems


                             sudo gem install heroku

sábado, 4 de junho de 2011
http://rubygems.org/




sábado, 4 de junho de 2011
Curti e agora ?

                             Por onde começo ?



sábado, 4 de junho de 2011
http://www.google.com.br




sábado, 4 de junho de 2011
Ambientes ??



sábado, 4 de junho de 2011
sábado, 4 de junho de 2011
Mac OS




sábado, 4 de junho de 2011
Mac OS


                             Linux




sábado, 4 de junho de 2011
Mac OS


                              Linux


                             Windows


sábado, 4 de junho de 2011
Mac OS
                               RVM


                              Linux


                             Windows


sábado, 4 de junho de 2011
Mac OS
                               RVM


                              Linux
                               RVM


                             Windows


sábado, 4 de junho de 2011
Mac OS
                                RVM


                              Linux
                                RVM


                             Windows
                             RubyInstaller


sábado, 4 de junho de 2011
Mac OS
                                RVM
    Recomendados
                              Linux
                                RVM


                             Windows
                             RubyInstaller


sábado, 4 de junho de 2011
Mac OS
                                RVM
    Recomendados
                              Linux
                                RVM


                             Windows
                             RubyInstaller


sábado, 4 de junho de 2011
Mac OS
                                RVM
    Recomendados
                              Linux
                                RVM


                             Windows
                             RubyInstaller


sábado, 4 de junho de 2011
http://rubyinstaller.org/




sábado, 4 de junho de 2011
https://rvm.beginrescueend.com/




sábado, 4 de junho de 2011
Dúvidas ?



sábado, 4 de junho de 2011
sábado, 4 de junho de 2011
sábado, 4 de junho de 2011
História




sábado, 4 de junho de 2011
História
                                David Heinemeier Hansson




sábado, 4 de junho de 2011
História
                                David Heinemeier Hansson
                                          (DHH)




sábado, 4 de junho de 2011
História
                                David Heinemeier Hansson
                                          (DHH)




                                        37signals




sábado, 4 de junho de 2011
História
                                David Heinemeier Hansson
                                          (DHH)




                                        37signals

                                        Basecamp




sábado, 4 de junho de 2011
História
                                David Heinemeier Hansson
                                          (DHH)




                                        37signals

                                        Basecamp

                                      Rails (2004)


sábado, 4 de junho de 2011
http://basecamphq.com/




sábado, 4 de junho de 2011
Filosofia

                   Convention over Configuration (CoC)




                             Don’t Repeat Yourself (DRY)




sábado, 4 de junho de 2011
Filosofia

                   Convention over Configuration (CoC)

   Diminuir o número de decisões do desenvolvedor.
  Ganhando simplicidade, sem perder o a flexibilidade.


                             Don’t Repeat Yourself (DRY)




sábado, 4 de junho de 2011
Filosofia

                   Convention over Configuration (CoC)

   Diminuir o número de decisões do desenvolvedor.
  Ganhando simplicidade, sem perder o a flexibilidade.


                             Don’t Repeat Yourself (DRY)

                                Reutilização de código.


sábado, 4 de junho de 2011
MVC
                      Lógica

                                 Controller
                                              Visualização




                      Model                   View


                               Dados

sábado, 4 de junho de 2011
Versões


                             3.1.x RC1

                              3.0.7




sábado, 4 de junho de 2011
Versões


                             3.1.x RC1

                              3.0.7




sábado, 4 de junho de 2011
3.1.x




sábado, 4 de junho de 2011
3.1.x
                                     MVC




sábado, 4 de junho de 2011
3.1.x
                                     MVC




sábado, 4 de junho de 2011
3.1.x
                                     MVC
                                           3.1.x




sábado, 4 de junho de 2011
3.1.x
                                     MVC
                                           3.1.x




sábado, 4 de junho de 2011
3.1.x
                                     MVC
                                           3.1.x




sábado, 4 de junho de 2011
3.1.x
                                     MVC
                                           3.1.x




sábado, 4 de junho de 2011
Comandos Básicos

                   Rails




sábado, 4 de junho de 2011
Comandos Básicos

                             Criando uma nova aplicação!




sábado, 4 de junho de 2011
Comandos Básicos

                             Criando uma nova aplicação!




sábado, 4 de junho de 2011
Comandos Básicos

                             Criando uma nova aplicação!


                                rails new myApp




sábado, 4 de junho de 2011
Comandos Básicos

                  Rails generate




sábado, 4 de junho de 2011
Comandos Básicos

                  Rails generate




sábado, 4 de junho de 2011
Comandos Básicos

                     rake -T




sábado, 4 de junho de 2011
Comandos Básicos

                     rake -T




sábado, 4 de junho de 2011
Receita de Bolo

                   rails new app

                   rails g scaffold MODEL FIELD:TYPE

                   rake db:migrate

                   rails server




sábado, 4 de junho de 2011
Receita de Bolo

                   rails new app

                   rails g scaffold MODEL FIELD:TYPE

                   rake db:migrate

                   rails server




                       http://localhost:3000/model (plural)

sábado, 4 de junho de 2011
sábado, 4 de junho de 2011
Rails funcionaria na minha empresa ?




sábado, 4 de junho de 2011
Rails funcionaria na minha empresa ?




                             Why not ?

sábado, 4 de junho de 2011
http://isitrails.com/




sábado, 4 de junho de 2011
Curti e agora ?

                             Por onde começo ?



sábado, 4 de junho de 2011
http://www.google.com.br




sábado, 4 de junho de 2011
http://rubyonrails.org/




sábado, 4 de junho de 2011
http://guides.rubyonrails.org/




sábado, 4 de junho de 2011
http://railscasts.com/




sábado, 4 de junho de 2011
sábado, 4 de junho de 2011
DÚVIDAS ?




sábado, 4 de junho de 2011
Quem nunca foi salvo por um
                código da internet ?




sábado, 4 de junho de 2011
sábado, 4 de junho de 2011
1 milhão
              de desenvolvedores
                        4M até 2013 (Gartner)



sábado, 4 de junho de 2011
sábado, 4 de junho de 2011
sábado, 4 de junho de 2011
https://github.com/




sábado, 4 de junho de 2011
http://stackoverflow.com




sábado, 4 de junho de 2011
sábado, 4 de junho de 2011
Escreva código!




sábado, 4 de junho de 2011
Escreva código!

                             Publique código!




sábado, 4 de junho de 2011
Escreva código!

                             Publique código!

                               Contribua!


sábado, 4 de junho de 2011
Escreva código!

                             Publique código!

                               Contribua!   (código)




sábado, 4 de junho de 2011
É HORA DE CODIFICAR




sábado, 4 de junho de 2011
É HORA DE CODIFICAR




sábado, 4 de junho de 2011
sábado, 4 de junho de 2011
- CRIAR UMA APP BÁSICA




sábado, 4 de junho de 2011
- CRIAR UMA APP BÁSICA

                        - ENVIAR PARA O GITHUB




sábado, 4 de junho de 2011
- CRIAR UMA APP BÁSICA

                        - ENVIAR PARA O GITHUB

                        - ENVIAR PARA O HEROKU




sábado, 4 de junho de 2011
http://www.heroku.com/




sábado, 4 de junho de 2011
http://git-scm.com/




sábado, 4 de junho de 2011
Dúvidas ?




sábado, 4 de junho de 2011
GURU - Sorocaba




sábado, 4 de junho de 2011
GEMP - Sorocaba




sábado, 4 de junho de 2011
Onde me encontrar ?


                                   @guivinicius

                               gui.vinicius@gmail.com

                      http://www.facebook.com/guivinicius



sábado, 4 de junho de 2011
Não é só o meu que fica na reta!




sábado, 4 de junho de 2011
Não é só o meu que fica na reta!

                             @lucasrenan




sábado, 4 de junho de 2011
Não é só o meu que fica na reta!

                             @lucasrenan

                             @tiagogodinho




sábado, 4 de junho de 2011
Não é só o meu que fica na reta!

                             @lucasrenan

                             @tiagogodinho

                                @Kssi4


sábado, 4 de junho de 2011
Muito Obrigado!

sábado, 4 de junho de 2011
Muito Obrigado!

sábado, 4 de junho de 2011

More Related Content

Similar to Oficina Ruby on Rails Fatec (7)

Suite de Testes
Suite de TestesSuite de Testes
Suite de Testes
 
Gastronomia tedx
Gastronomia tedxGastronomia tedx
Gastronomia tedx
 
Plone e eGov: Presente e Futuro
Plone e eGov: Presente e FuturoPlone e eGov: Presente e Futuro
Plone e eGov: Presente e Futuro
 
Palestra flisol wordpress
Palestra flisol wordpressPalestra flisol wordpress
Palestra flisol wordpress
 
Redes Sociais e o Comércio Eletrônico - Fecomércio/BA
Redes Sociais e o Comércio Eletrônico - Fecomércio/BARedes Sociais e o Comércio Eletrônico - Fecomércio/BA
Redes Sociais e o Comércio Eletrônico - Fecomércio/BA
 
colmeia na Missa - Aula 4
colmeia na Missa - Aula 4colmeia na Missa - Aula 4
colmeia na Missa - Aula 4
 
Chega mais para a inclusão
Chega mais para a inclusãoChega mais para a inclusão
Chega mais para a inclusão
 

Recently uploaded

Recently uploaded (9)

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
 
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
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
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
 
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 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 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
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 

Oficina Ruby on Rails Fatec