Escolar Documentos
Profissional Documentos
Cultura Documentos
ndice Linguagem Ruby Conceito de framework Ruby on Rails: conceitos bsicos Rails e o banco de dados Controllers e views Mais Rails Rails no dia-a-dia Links
II Forum de Tecnologia em Software Livre - Serpro - Porto Alegre
Sobre o palestrante
Formando em Engenharia de Computao FURG Zetaflops Computao de Alto Desempenho Desenvolvedor web desde 2005 Era uma vez no FISL 6.0 (? de 2005) Desenvolvedor Rails desde 2006 Diversos sistemas desenvolvidos Dois mini-cursos Dois cursos de longa durao (40 horas)
Sobre a platia
Hello World
Ruby: A linguagem
Criada em 95 Smalltalk+Perl+Python = Ruby? Ruby is designed to make programmers happy Interpretada
Irb (Interpretador)
Tudo um objeto
> 1.class => FixNum
Ruby: A linguagem
Linguagem dinmica Fcil de aprender mas poderosa Metaprogramao Herana simples Zero verdadeiro! RubyGems Expresses regulares, Big Numbers, Hashs, Arrays Foco no programador (princpio da mnima surpresa)
10
Framework?
???
II Forum de Tecnologia em Software Livre - Serpro - Porto Alegre
11
Framework
Wikipedia: Em desenvolvimento de software, um framework ou arcabouo uma abstrao que une cdigos comuns entre vrios projetos de software provendo uma funcionalidade genrica.
12
Construir seu prprio framework? Como ensinar novas pessoas a usar? Como atualizar? Como corrigir bugs?
13
14
15
16
Estrutura de diretrios I
app
controllers helpers models views
17
Estrutura de diretrios II
script
generate destroy console server -> WEBrick (SOMENTE DESENVOLVIMENTO!)
test
fixtures functional integration unit
vendor/plugins
18
Scaffold
Scaffold = base Te d a base para a construo das views Aes CRUD Blog em quinze minutos ? http://rubyonrails.org/screencasts
19
20
Models
SGBS's disponveis: http://wiki.rubyonrails.org/#database_support Tabelas tem por padro o nome do modelo no plural Cada entidade uma classe (mais comum) Mtodos getters e setters com os nomes dos atributos Relacionamentos has_one :car belongs_to :imoble has_many :houses
II Forum de Tecnologia em Software Livre - Serpro - Porto Alegre
21
Mais Models
Validators validates_uniqueness_of :username validates_presence_of :username migrations find, new, create, destroy config/database.yml
22
Controllers
Realizam operaes na base de dados e mostram a viem correspondente. URLs: http://dominio/controlador/metodo/parametros Para cada mtodo do controlador existe uma view Views enxergam as variveis de instncia (comeam com @) $ script/generate controller toads $ script/destroy controller toads params[:sender_name] ou params[:model_name]
23
Views
HTML com cdigo Ruby embutido Partials <%= render :partial => 'nome' %> app/views/layouts Application.? Helpers <%= javascript_include_tag :defaults %> <%= stylesheet_link_tag 'application' %>
24
25
Testes de integrao
26
Plugins
attachment_fu (Upload de imagens) acl_system2 (Controle de acesso) tiny_mce (Editor WYSIWYG) brazilian-rails (Padres para o portugus) flashobject-helper act_as_state_machine restfull_authentication (Autenticao) validates_as_cpf validates_as_cnpj act_as_taggable_on_steroids
27
Ajax
<p id="data"> </p> <%= link_to_remote "atualiza", :url =>{ :controller => :users, :action => :show_date}, :update => "data" %> def show_date render :text => DateTime.now.to_s end
28
29
Links I
Basecamp: http://basecamphq.com/ Apresentao FISL 6.0 http://media.rubyonrails.org/presentations/fisl6.pdf Site oficial da linguagem: http://www.rubylang.org/pt/ Site oficial do framework: http://rubyonrails.org/ Meus favoritos: http://delicious.com/vinicius_ah/rubyonrails Guide To Testing Rails:http://guides.rubyonrails.org/testing.html
30
Links II
Como comear (pt): http://groups.google.com/group/railsbr/web/lugares-para-aprender-ruby-on-railsror Grupo Rails-RS: http://groups.google.com/group/rails-rs API Rails: http://api.rubyonrails.org Matz falando sobre Ruby http://www.informit.com/articles/article.aspx ?p=18225
II Forum de Tecnologia em Software Livre - Serpro - Porto Alegre
31
Recomendaes finais
No Silver Bullets
32
33
Perguntas e contato
Dvidas? Sugestes? Doaes de grandes quantias?
34