O que é o ruby on rails?
-
Upload
leonardo-costa -
Category
Technology
-
view
629 -
download
3
Transcript of O que é o ruby on rails?
O que é Ruby on Rails?
Braga Geek Nights - Fevereiro 2010
Leonardo Costaemail: 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 tituloProgramming 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 - enviar e-mails baseados em templates e receber e processar um e-mail
• 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 SQLiteou$ rails blog -d mysqlou$ rails blog -d postgresql
• Começar uma aplicação via template$ rails blog -m http://compass-style.org/rails/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 endend
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/console
• script/dbconsole
• script/destroy
• script/generate
• script/plugin
• script/runner
• script/server
• e não menos o Rake
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 Railshttp://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 Realhttp://gettingreal.37signals.com
sábado, 26 de Fevereiro/02 de 2011
Perguntas?
email: [email protected] - http://twitter.com/lcostasábado, 26 de Fevereiro/02 de 2011