SlideShare uma empresa Scribd logo
O que é
                                      Ruby on Rails?
                                     Braga Geek Nights - Fevereiro 2010

                                                 Leonardo Costa
                                         email: lcosta [dot] job [at] gmail [dot] com




sábado, 26 de Fevereiro/02 de 2011
Quem eu sou?
                    • Nome - Leonardo Costa
                    • Trabalho com web a cerca de 11 anos
                    • Comecei a programar para web com Perl,
                            PHP e .net
                    • Estudo Ruby/Rails a cerca de 2 anos e meio
                    • Trabalho diariamente com RubyOnRails
                            acerca 1 ano


sábado, 26 de Fevereiro/02 de 2011
Ruby



sábado, 26 de Fevereiro/02 de 2011
Ruby - a História
                    • 1993: Criado por Yukihiro “Matz”
                            Matsumoto
                    • Mais usada no Japão do que Python
                    • 1995: Primeiro livro em inglês com o titulo
                            Programming Ruby de Dave Thomas
                    • 2004: Levada ao sucesso pelo RubyOnRails

sábado, 26 de Fevereiro/02 de 2011
Ruby - Características
                    • Sintaxe simples, inspirada por Ada, Eiffel e
                            Perl
                    • Semântica compacta, inspirada por Smalltalk
                    • Todo valor é um objecto
                    • Toda operação em um objecto é um
                            método


sábado, 26 de Fevereiro/02 de 2011
Ruby - Características
                    • Todas as classes são abertas
                    • Herança simples e mixins
                    • Closures reais
                    • Garbage collector
                    • Extensões via C
                    • Suporte a quase todos os os Sistemas
                            Operativos

sábado, 26 de Fevereiro/02 de 2011
Rails



sábado, 26 de Fevereiro/02 de 2011
Rails - a História
                    • Criado por David Heinemeier Hansson
                            (DHH) da 37signals em 2004 - www.loudthinking.com
                    • Extraído de um projecto real - Basecamp
                    • Lançamento publico em julho de 2004
                    • Lançamento da versão 1.0 em dezembro
                            2005
                    •       Versão actual recomendada para deploy 2.3.4


sábado, 26 de Fevereiro/02 de 2011
Rails - o que é?
                    • “full stack web framework”
                    • Framework completo para
                            desenvolvimento de aplicativos Web
                    • Pacote MVC (Model-View-Controller)
                            - Action Pack (Action Controller e Action View)
                            - Active Record
                    • Suporte a envio e recebimento de e-mails
                            - Action Mailer
                    • Active Resource
sábado, 26 de Fevereiro/02 de 2011
Rails - Filosofia

                    • DRY – “Don’t Repeat Yourself”
                    • Convenção ao invés de Configuração
                    • REST é o melhor modelo para aplicações
                            web
                    • Teste sempre o que faz

sábado, 26 de Fevereiro/02 de 2011
Rails - Componentes

                    • Action Controller -                     requisições, sessão, renderização de
                            template e gerenciamento de redirecionamento


                    • Action View -                 gerência as views (HTML e XML por padrão),
                            gerência a renderização de templates, templates aninhados e parciais, e inclui
                            suporte embutido para AJAX


                    • Active Record -                   funcionalidade CRUD, capacidade de buscas
                            avançadas, relacionamento entre models




sábado, 26 de Fevereiro/02 de 2011
Rails - Componentes

                    • Action Mailer -
                            e processar um e-mail
                                                       enviar e-mails baseados em templates e receber



                    • Active Resource -                     framework para serviços web RESTful


                    • Active Support -                   colecção extensiva de classes utilitárias e
                            extensões da biblioteca padrão do Ruby




sábado, 26 de Fevereiro/02 de 2011
Rails - instalação
                    • Instalar Ruby
                            http://www.ruby-lang.org/en/downloads
                    • Instalar RubyGems (Mac ou Linux)
                      http://rubyforge.org/projects/rubygems

                    • Instalar Rails
                            $ sudo gem install rails

                    • wiki de instalação em http://
                            wiki.rubyonrails.org/getting-started/
                            installation
sábado, 26 de Fevereiro/02 de 2011
Rails - Começo Rápido

                    • Para um começo rápido
                            PRINCIPALMENTE para usuários do
                            Windows temos o RubyStack da BitNami
                            que pode ser encontrado em http://
                            bitnami.org/stack/rubystack, disponível para
                            Linux, Mac e Windows



sábado, 26 de Fevereiro/02 de 2011
Rails - primeiro passo
                    • No terminal
                      $ rails blog             # base de dados padrão SQLite
                            ou
                            $ rails blog -d mysql
                            ou
                            $ rails blog -d postgresql

                    • Começar -m http://compass-style.org/rails/
                      $ rails blog
                                   uma aplicação via template

                            installer


sábado, 26 de Fevereiro/02 de 2011
sábado, 26 de Fevereiro/02 de 2011
•       $ cd blog

                    •       $ script/generate scaffold Post title:string body:text
                                exists app/models/
                                exists app/controllers/
                                exists app/helpers/
                                create app/views/posts
                                exists app/views/layouts/
                                exists test/functional/
                                exists test/unit/
                                create test/unit/helpers/
                                exists public/stylesheets/
                                create app/views/posts/index.html.erb
                                create app/views/posts/show.html.erb
                                create app/views/posts/new.html.erb
                                create app/views/posts/edit.html.erb
                                create app/views/layouts/posts.html.erb
                                create public/stylesheets/scaffold.css
                                create app/controllers/posts_controller.rb
                                create test/functional/posts_controller_test.rb
                                create app/helpers/posts_helper.rb
                                create test/unit/helpers/posts_helper_test.rb
                                 route map.resources :posts
                              dependency model
                                exists app/models/
                                exists test/unit/
                                exists test/fixtures/
                                create app/models/post.rb
                                create test/unit/post_test.rb
                                create test/fixtures/posts.yml
                                create db/migrate
                                create db/migrate/20100202165708_create_posts.rb




sábado, 26 de Fevereiro/02 de 2011
•       $ mate db/migrate/20100120165708_create_posts.rb

                    •       class CreatePosts < ActiveRecord::Migration
                              def self.up
                               create_table :posts do |t|
                                 t.string :title
                                 t.text :body

                                 t.timestamps     # update_at and created_at columns
                                end
                               end

                             def self.down
                              drop_table :posts
                             end
                            end

sábado, 26 de Fevereiro/02 de 2011
• $ rake db:migrate
                            (in /Users/lcosta/tmp/blog)
                            == CreatePosts: migrating
                            ====================================================
                            -- create_table(:posts)
                               -> 0.0014s
                            == CreatePosts: migrated (0.0017s)
                            ===========================================



                    • $ script/server
                            => Booting Mongrel
                            => Rails 2.3.4 application starting on http://0.0.0.0:3000
                            => Call with -d to detach=> Ctrl-C to shutdown server




sábado, 26 de Fevereiro/02 de 2011
http://0.0.0.0:3000/posts


sábado, 26 de Fevereiro/02 de 2011
http://0.0.0.0:3000/posts/new


sábado, 26 de Fevereiro/02 de 2011
sábado, 26 de Fevereiro/02 de 2011
sábado, 26 de Fevereiro/02 de 2011
sábado, 26 de Fevereiro/02 de 2011
sábado, 26 de Fevereiro/02 de 2011
http://0.0.0.0:3000/posts.xml


sábado, 26 de Fevereiro/02 de 2011
sábado, 26 de Fevereiro/02 de 2011
sábado, 26 de Fevereiro/02 de 2011
Rails - Tools
                    •      script/about       •   script/runner

                    •      script/console     •   script/server

                    •      script/dbconsole

                    •      script/destroy     •   e não menos o Rake

                    •      script/generate

                    •      script/plugin




sábado, 26 de Fevereiro/02 de 2011
Rails - o Rake
                    • automatizador de tarefas
                    • para ver uma listagem de todas as tarefas:
                          •          $ rake -T

                                •       rake db:create:all

                                •       rake db:migrate

                                •       rake db:migrate:redo, rake db:reset rake db:rollback

                                •       rake db:migrate:down e rake db:migrate:up

                                •       rake doc:app

                                •       rake gems, rake gems:install e rake gems:unpack

                                •       rake notes | notes:fixme | notes:optimize | notes:todo

sábado, 26 de Fevereiro/02 de 2011
Ruby e Rails - Links
                    •       Site oficial do Ruby
                             http://www.ruby-lang.org

                    •       Bom lugar para aprender Ruby (Satish Talim)
                            http://rubylearning.com

                    •       Site oficial do Rails
                             http://rubyonrails.org

                    •       Excelentes guias sobre Rails
                            http://guides.rubyonrails.org e http://guias.rubyonrails.pro.br

                    •       Screencasts de alta qualidade sobre Rails
                             http://railscasts.com

                    •       O repositório de código open source
                            http://github.com

                    •       Getting Real
                            http://gettingreal.37signals.com
sábado, 26 de Fevereiro/02 de 2011
Perguntas?


     email: lcosta.job@gmail.com - http://twitter.com/lcosta
sábado, 26 de Fevereiro/02 de 2011

Mais conteúdo relacionado

PPTX
TDD - Test Driven Development
PDF
Introdução ao Ruby on Rails
KEY
Projeto Octopus - Database Sharding para ActiveRecord
PPT
Testes De Software - Uma Visão Geral
PPT
Testes Funcionais
ODP
Test link
PDF
Responsabilidade na Entrega Contínua por Carlos Villela
PDF
Treinamento Six Sigma LG Electronics
TDD - Test Driven Development
Introdução ao Ruby on Rails
Projeto Octopus - Database Sharding para ActiveRecord
Testes De Software - Uma Visão Geral
Testes Funcionais
Test link
Responsabilidade na Entrega Contínua por Carlos Villela
Treinamento Six Sigma LG Electronics

Destaque (20)

PDF
Aula questões dissertativas
PDF
09 IBH E Assessment
PPT
Usability Ergebnisse Umfrage
PPTX
Anatomie eines Trending Topics: Retweet-Ketten als Verbreitungsmechanismus fü...
PDF
Comment déterminer le critère de jugement et le nombre de sujets nécessaires
PPTX
Test de estereopsis
PPT
Evaluación diagnóstico funcional en la práctica ortomolecular.
PPTX
Taller de evaluación de la agudeza visual y la visión binocular en el infante...
PDF
PPTX
Nuove norme sul segreto di stato e sulle informazioni classificate
PPTX
2014 ncae nvb presentation
PDF
3e jaars
PPTX
Advertising Quiz
PPT
Delray Presentation Microsoft
PDF
Cours econometrie-uqam-st-3-v4
PPT
Embarque de materiales peligrosos
PPT
EvaluacióN Psicopedagogia P Afinal
PDF
UX, e-Commerce et Web Marketing (+ Chiffres e-Commerce et M-Commerce 2014)
PDF
¿Como diseñar modelos de negocio? Herramientas de negocio, estrategia e innov...
PPT
Diagnosis evaluation in strabismus
Aula questões dissertativas
09 IBH E Assessment
Usability Ergebnisse Umfrage
Anatomie eines Trending Topics: Retweet-Ketten als Verbreitungsmechanismus fü...
Comment déterminer le critère de jugement et le nombre de sujets nécessaires
Test de estereopsis
Evaluación diagnóstico funcional en la práctica ortomolecular.
Taller de evaluación de la agudeza visual y la visión binocular en el infante...
Nuove norme sul segreto di stato e sulle informazioni classificate
2014 ncae nvb presentation
3e jaars
Advertising Quiz
Delray Presentation Microsoft
Cours econometrie-uqam-st-3-v4
Embarque de materiales peligrosos
EvaluacióN Psicopedagogia P Afinal
UX, e-Commerce et Web Marketing (+ Chiffres e-Commerce et M-Commerce 2014)
¿Como diseñar modelos de negocio? Herramientas de negocio, estrategia e innov...
Diagnosis evaluation in strabismus
Anúncio

Semelhante a O que é o ruby on rails? (20)

PDF
Palestra Desenvolvimento Ágil para Web com ROR UVA
PDF
Ruby On Rails
PPT
Desenvolvimento Ágil com Ruby on Rails
PDF
Fisl 10
PDF
Desenvolvendo Aplicações Web Usando Ruby e Rails
PDF
Esta começando a programar para a web? Então começe com Rails
PDF
Conhecendo Ruby on Rails
PDF
Rails 03
PDF
Introdução ao Ruby On Rails
PDF
Introducao ao desenvolvimento web com Rails
PDF
Conhecendo o Ruby on Rails
PDF
Palestra ror edted
PDF
Minicurso Ruby e Rails (RailsMG UNA)
PDF
SEA Rails na pratica
PDF
Dando os primeiros passos com rails
PDF
Minicurso Ruby on Rails
PDF
Ruby On Rails Regis
PDF
PPTX
Mini curso rails 3
Palestra Desenvolvimento Ágil para Web com ROR UVA
Ruby On Rails
Desenvolvimento Ágil com Ruby on Rails
Fisl 10
Desenvolvendo Aplicações Web Usando Ruby e Rails
Esta começando a programar para a web? Então começe com Rails
Conhecendo Ruby on Rails
Rails 03
Introdução ao Ruby On Rails
Introducao ao desenvolvimento web com Rails
Conhecendo o Ruby on Rails
Palestra ror edted
Minicurso Ruby e Rails (RailsMG UNA)
SEA Rails na pratica
Dando os primeiros passos com rails
Minicurso Ruby on Rails
Ruby On Rails Regis
Mini curso rails 3
Anúncio

Último (11)

PPTX
Mecânico de Manutenção de Equipamentos.pptx
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Eng. Software - pontos essenciais para o início
PPTX
Utilizando code blockes por andre backes
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Arquitetura de computadores - Memórias Secundárias
Mecânico de Manutenção de Equipamentos.pptx
Viasol Energia Solar -Soluções para geração e economia de energia
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Eng. Software - pontos essenciais para o início
Utilizando code blockes por andre backes
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Manejo integrado de pragas na cultura do algodão
Arquitetura de computadores - Memórias Secundárias

O que é o ruby on rails?

  • 1. O que é Ruby on Rails? Braga Geek Nights - Fevereiro 2010 Leonardo Costa email: lcosta [dot] job [at] gmail [dot] com sábado, 26 de Fevereiro/02 de 2011
  • 2. Quem eu sou? • Nome - Leonardo Costa • Trabalho com web a cerca de 11 anos • Comecei a programar para web com Perl, PHP e .net • Estudo Ruby/Rails a cerca de 2 anos e meio • Trabalho diariamente com RubyOnRails acerca 1 ano sábado, 26 de Fevereiro/02 de 2011
  • 3. Ruby sábado, 26 de Fevereiro/02 de 2011
  • 4. Ruby - a História • 1993: Criado por Yukihiro “Matz” Matsumoto • Mais usada no Japão do que Python • 1995: Primeiro livro em inglês com o titulo Programming Ruby de Dave Thomas • 2004: Levada ao sucesso pelo RubyOnRails sábado, 26 de Fevereiro/02 de 2011
  • 5. Ruby - Características • Sintaxe simples, inspirada por Ada, Eiffel e Perl • Semântica compacta, inspirada por Smalltalk • Todo valor é um objecto • Toda operação em um objecto é um método sábado, 26 de Fevereiro/02 de 2011
  • 6. Ruby - Características • Todas as classes são abertas • Herança simples e mixins • Closures reais • Garbage collector • Extensões via C • Suporte a quase todos os os Sistemas Operativos sábado, 26 de Fevereiro/02 de 2011
  • 7. Rails sábado, 26 de Fevereiro/02 de 2011
  • 8. Rails - a História • Criado por David Heinemeier Hansson (DHH) da 37signals em 2004 - www.loudthinking.com • Extraído de um projecto real - Basecamp • Lançamento publico em julho de 2004 • Lançamento da versão 1.0 em dezembro 2005 • Versão actual recomendada para deploy 2.3.4 sábado, 26 de Fevereiro/02 de 2011
  • 9. Rails - o que é? • “full stack web framework” • Framework completo para desenvolvimento de aplicativos Web • Pacote MVC (Model-View-Controller) - Action Pack (Action Controller e Action View) - Active Record • Suporte a envio e recebimento de e-mails - Action Mailer • Active Resource sábado, 26 de Fevereiro/02 de 2011
  • 10. Rails - Filosofia • DRY – “Don’t Repeat Yourself” • Convenção ao invés de Configuração • REST é o melhor modelo para aplicações web • Teste sempre o que faz sábado, 26 de Fevereiro/02 de 2011
  • 11. Rails - Componentes • Action Controller - requisições, sessão, renderização de template e gerenciamento de redirecionamento • Action View - gerência as views (HTML e XML por padrão), gerência a renderização de templates, templates aninhados e parciais, e inclui suporte embutido para AJAX • Active Record - funcionalidade CRUD, capacidade de buscas avançadas, relacionamento entre models sábado, 26 de Fevereiro/02 de 2011
  • 12. Rails - Componentes • Action Mailer - e processar um e-mail enviar e-mails baseados em templates e receber • Active Resource - framework para serviços web RESTful • Active Support - colecção extensiva de classes utilitárias e extensões da biblioteca padrão do Ruby sábado, 26 de Fevereiro/02 de 2011
  • 13. Rails - instalação • Instalar Ruby http://www.ruby-lang.org/en/downloads • Instalar RubyGems (Mac ou Linux) http://rubyforge.org/projects/rubygems • Instalar Rails $ sudo gem install rails • wiki de instalação em http:// wiki.rubyonrails.org/getting-started/ installation sábado, 26 de Fevereiro/02 de 2011
  • 14. Rails - Começo Rápido • Para um começo rápido PRINCIPALMENTE para usuários do Windows temos o RubyStack da BitNami que pode ser encontrado em http:// bitnami.org/stack/rubystack, disponível para Linux, Mac e Windows sábado, 26 de Fevereiro/02 de 2011
  • 15. Rails - primeiro passo • No terminal $ rails blog # base de dados padrão SQLite ou $ rails blog -d mysql ou $ rails blog -d postgresql • Começar -m http://compass-style.org/rails/ $ rails blog uma aplicação via template installer sábado, 26 de Fevereiro/02 de 2011
  • 16. sábado, 26 de Fevereiro/02 de 2011
  • 17. $ cd blog • $ script/generate scaffold Post title:string body:text exists app/models/ exists app/controllers/ exists app/helpers/ create app/views/posts exists app/views/layouts/ exists test/functional/ exists test/unit/ create test/unit/helpers/ exists public/stylesheets/ create app/views/posts/index.html.erb create app/views/posts/show.html.erb create app/views/posts/new.html.erb create app/views/posts/edit.html.erb create app/views/layouts/posts.html.erb create public/stylesheets/scaffold.css create app/controllers/posts_controller.rb create test/functional/posts_controller_test.rb create app/helpers/posts_helper.rb create test/unit/helpers/posts_helper_test.rb route map.resources :posts dependency model exists app/models/ exists test/unit/ exists test/fixtures/ create app/models/post.rb create test/unit/post_test.rb create test/fixtures/posts.yml create db/migrate create db/migrate/20100202165708_create_posts.rb sábado, 26 de Fevereiro/02 de 2011
  • 18. $ mate db/migrate/20100120165708_create_posts.rb • class CreatePosts < ActiveRecord::Migration def self.up create_table :posts do |t| t.string :title t.text :body t.timestamps # update_at and created_at columns end end def self.down drop_table :posts end end sábado, 26 de Fevereiro/02 de 2011
  • 19. • $ rake db:migrate (in /Users/lcosta/tmp/blog) == CreatePosts: migrating ==================================================== -- create_table(:posts) -> 0.0014s == CreatePosts: migrated (0.0017s) =========================================== • $ script/server => Booting Mongrel => Rails 2.3.4 application starting on http://0.0.0.0:3000 => Call with -d to detach=> Ctrl-C to shutdown server sábado, 26 de Fevereiro/02 de 2011
  • 22. sábado, 26 de Fevereiro/02 de 2011
  • 23. sábado, 26 de Fevereiro/02 de 2011
  • 24. sábado, 26 de Fevereiro/02 de 2011
  • 25. sábado, 26 de Fevereiro/02 de 2011
  • 27. sábado, 26 de Fevereiro/02 de 2011
  • 28. sábado, 26 de Fevereiro/02 de 2011
  • 29. Rails - Tools • script/about • script/runner • script/console • script/server • script/dbconsole • script/destroy • e não menos o Rake • script/generate • script/plugin sábado, 26 de Fevereiro/02 de 2011
  • 30. Rails - o Rake • automatizador de tarefas • para ver uma listagem de todas as tarefas: • $ rake -T • rake db:create:all • rake db:migrate • rake db:migrate:redo, rake db:reset rake db:rollback • rake db:migrate:down e rake db:migrate:up • rake doc:app • rake gems, rake gems:install e rake gems:unpack • rake notes | notes:fixme | notes:optimize | notes:todo sábado, 26 de Fevereiro/02 de 2011
  • 31. Ruby e Rails - Links • Site oficial do Ruby http://www.ruby-lang.org • Bom lugar para aprender Ruby (Satish Talim) http://rubylearning.com • Site oficial do Rails http://rubyonrails.org • Excelentes guias sobre Rails http://guides.rubyonrails.org e http://guias.rubyonrails.pro.br • Screencasts de alta qualidade sobre Rails http://railscasts.com • O repositório de código open source http://github.com • Getting Real http://gettingreal.37signals.com sábado, 26 de Fevereiro/02 de 2011
  • 32. Perguntas? email: lcosta.job@gmail.com - http://twitter.com/lcosta sábado, 26 de Fevereiro/02 de 2011