o que é o ruby on rails?

32
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

Upload: leonardo-costa

Post on 19-May-2015

629 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: 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

Page 2: O que é o ruby on rails?

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

Page 3: O que é o ruby on rails?

Ruby

sábado, 26 de Fevereiro/02 de 2011

Page 4: O que é o ruby on rails?

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

Page 5: O que é o ruby on rails?

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

Page 6: O que é o ruby on rails?

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

Page 7: O que é o ruby on rails?

Rails

sábado, 26 de Fevereiro/02 de 2011

Page 8: O que é o ruby on rails?

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

Page 9: O que é o ruby on rails?

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

Page 10: O que é o ruby on rails?

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

Page 11: O que é o ruby on rails?

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

Page 12: O que é o ruby on rails?

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

Page 13: O que é o ruby on rails?

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

Page 14: O que é o ruby on rails?

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

Page 15: O que é o ruby on rails?

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

Page 16: O que é o ruby on rails?

sábado, 26 de Fevereiro/02 de 2011

Page 17: O que é o ruby on rails?

• $ 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

Page 18: O que é o ruby on rails?

• $ 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

Page 19: O que é o ruby on rails?

• $ 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

Page 20: O que é o ruby on rails?

http://0.0.0.0:3000/posts

sábado, 26 de Fevereiro/02 de 2011

Page 21: O que é o ruby on rails?

http://0.0.0.0:3000/posts/new

sábado, 26 de Fevereiro/02 de 2011

Page 22: O que é o ruby on rails?

sábado, 26 de Fevereiro/02 de 2011

Page 23: O que é o ruby on rails?

sábado, 26 de Fevereiro/02 de 2011

Page 24: O que é o ruby on rails?

sábado, 26 de Fevereiro/02 de 2011

Page 25: O que é o ruby on rails?

sábado, 26 de Fevereiro/02 de 2011

Page 26: O que é o ruby on rails?

http://0.0.0.0:3000/posts.xml

sábado, 26 de Fevereiro/02 de 2011

Page 27: O que é o ruby on rails?

sábado, 26 de Fevereiro/02 de 2011

Page 28: O que é o ruby on rails?

sábado, 26 de Fevereiro/02 de 2011

Page 29: O que é o ruby on rails?

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

Page 30: O que é o ruby on rails?

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

Page 31: O que é o ruby on rails?

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

Page 32: O que é o ruby on rails?

Perguntas?

email: [email protected] - http://twitter.com/lcostasábado, 26 de Fevereiro/02 de 2011