Ruby On Rails (Unisul)
-
Upload
joelson-abreu -
Category
Education
-
view
738 -
download
2
description
Transcript of Ruby On Rails (Unisul)
RUBY ON RAILSUma cultura de boas práticas
O QUE É ?
O QUE É UM FRAMEWORK ?
“Um framework provê uma solução para uma família de problemas semelhantes”.
“Um framework captura a funcionalidade comum a várias aplicações. As aplicações devem ter algo razoavelmente grande em comum: pertencem a um mesmo domínio de problema”.
“São projetados com para facilitar o desenvolvimento de software, habilitando designers e programadores a gastarem mais tempo determinando as exigências do software do que com detalhes
tediosos de baixo nível do sistema”.
O QUE É UM FRAMEWORK ?
POR QUE USAR ???
* Padronização de projetos
* Disposição de recursos
* Re-uso de código
* Flexibilidade e extensibilidade dos projetos
* Fácil manutenção
* Produtividade
Yukihiro Matsumoto “Matz”
Ada
DylanEiffel
Perl Python
SchemeSmalltalkLisp
Linguagem dinâmica e reflexiva
Linguagem humana
Simplicidade
Extensibilidade
Produtividade
PARA O PROGRAMADOR
JAVA
public void imprime_impares(int limite){ for (int i = 1; i <= limite; i++) { if (i%2 == 1) { System.out.println(i); } }}
RUBY
def imprime_impares(limite) 1.upto(limite){ |i| puts i if i%2 == 1 }end
JAVA
public class Pessoa {
private String nome;
public Pessoa(String nome) { this.nome = nome; }
public String getNome() { return nome; }
public void setNome(String nome) { this.nome = nome; }
}
RUBY
class Pessoa attr_accessor :nome end
LEGÍVEL E HUMANA
10.times { print "Ruby!"}# => Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!
print "Ruby é muito legal".split.reverse# => legalmuitoéRuby
Ocidente (2000)
David Heinemeier Hansson
BASECAMP
Convenção sobre configuração
DRY (Don’t Repeat Yourself)
Código bonito
CONVENÇÃO SOBRE CONFIGURAÇÃO
controllers people_controller.rb countries_controller.rb data_banks_controller.rbmodels person.rb country.rb data_bank.rbviews people _form.html.erb edit.html.erb index.html.erb new.html.erb
Nomes das tabelas no banco de dados
Nomes dos arquivos
Mapeamentos
Chaves do DB
Nomes das classes
Ambientes
CONVENÇÃO SOBRE CONFIGURAÇÃO
Tabelas
people countries data_banks
Nomes das tabelas no banco de dados
Nomes dos arquivos
Mapeamentos
Chaves do DB
Nomes das classes
Ambientes
CONVENÇÃO SOBRE CONFIGURAÇÃO
People id country_id
DataBanks id person_id
Countries id
Nomes das tabelas no banco de dados
Nomes dos arquivos
Mapeamentos
Chaves do DB
Nomes das classes
Ambientes
CONVENÇÃO SOBRE CONFIGURAÇÃO
class Personend
class Countryend
class DataBankend
Nomes das tabelas no banco de dados
Nomes dos arquivos
Mapeamentos
Chaves do DB
Nomes das classes
Ambientes
CONVENÇÃO SOBRE CONFIGURAÇÃO
Nomes das tabelas no banco de dados
Nomes dos arquivos
Mapeamentos
Chaves do DB
Nomes das classes
Ambientes
CONVENÇÃO SOBRE CONFIGURAÇÃO
Development
Test
Production
Nomes das tabelas no banco de dados
Nomes dos arquivos
Mapeamentos
Chaves do DB
Nomes das classes
Ambientes
DRY (DON’T REPEAT YOURSELF)
Gems Plugins
CÓDIGO BONITO
class Person < ActiveRecord::Base belongs_to :state has_one :user, :dependent => :destroy has_many :contacts, :dependent => :destroy has_many :data_banks, :dependent => :destroy has_many :alternate_addresses, :dependent => :destroy validates_length_of :name, :maximum => 120 validates_length_of :cep, :maximum => 9 validates_presence_of :type_person, :name, :city validates_associated :state validates_uniqueness_of :cpf default_scope :order => "created_at DESC"
before_save { self.name = name.titleize } before_save { self.city = city.titleize } end
E na prática ???
INSTALAÇÃO DO RUBY
• Windows: Cygwin é a melhor opção. One-click installer.
• Linux: apt-get install ruby rdoc irb
• Mac OS: 10.5 já instalado. Macport
LINKS DE RUBY
Documentação http://apidock.com/ruby
Tutoriais http://rubylearning.com/satishtalim/tutorial.html http://www.ruby-lang.org/pt http://www.ruby-doc.org/docs/ProgrammingRuby
Fóruns http://ruby-br.org http://www.rubyinside.com http://groups.google.com/group/rails-br
Gens e plugins http://rubygems.org http://ruby-toolbox.com
Projetos http://rubyforge.org
LINKS DE RAILS
Documentação http://api.rubyonrails.org http://apidock.com/rails
Tutoriais http://guias.rubyonrails.pro.br http://akitaonrails.com/ http://rubyonrails.org http://edgerails.info
http://ruby.railstutorial.org http://www.railsplugins.org
Screencasts http://railscasts.com
Projetos http://www.opensourcerails.com
www.github.com/joelsondeabreu/blog
EXPERIMENTE ...
@joelsondeabreu
http://www.slideshare.net/joelsondeabreu
PERGUNTAS ???