ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
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
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
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
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
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