SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
RUBY ON RAILS
 Uma 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”
Dylan
        Eiffel
                           Ada



 Perl                       Python



Smalltalk                Scheme
                  Lisp
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


Nomes dos arquivos
Nomes das tabelas no banco de dados
Chaves do DB
                           controllers
Nomes das classes            people_controller.rb
                             countries_controller.rb
Mapeamentos                  data_banks_controller.rb
                               models
Ambientes                        person.rb
                                 country.rb
                                 data_bank.rb
                               views
                                 people
                                   _form.html.erb
                                   edit.html.erb
                                   index.html.erb
                                   new.html.erb
CONVENÇÃO SOBRE CONFIGURAÇÃO


Nomes dos arquivos
Nomes das tabelas no banco de dados
Chaves do DB
Nomes das classes
Mapeamentos                      Tabelas
Ambientes
                                  people
                                  countries
                                  data_banks
CONVENÇÃO SOBRE CONFIGURAÇÃO


Nomes dos arquivos
Nomes das tabelas no banco de dados
Chaves do DB                 People
Nomes das classes              id
                               country_id
Mapeamentos
                             DataBanks
Ambientes                      id
                               person_id

                             Countries
                               id
CONVENÇÃO SOBRE CONFIGURAÇÃO


Nomes dos arquivos
Nomes das tabelas no banco de dados
Chaves do DB
Nomes das classes           class Person
Mapeamentos                 end

Ambientes                  class Country
                           end

                           class DataBank
                           end
CONVENÇÃO SOBRE CONFIGURAÇÃO


Nomes dos arquivos
Nomes das tabelas no banco de dados
Chaves do DB
Nomes das classes
Mapeamentos
Ambientes
CONVENÇÃO SOBRE CONFIGURAÇÃO


Nomes dos arquivos
Nomes das tabelas no banco de dados
Chaves do DB
Nomes das classes
Mapeamentos                    Development
Ambientes
                                 Test

                              Production
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

       PERGUNTAS ???




http://www.slideshare.net/joelsondeabreu

Mais conteúdo relacionado

Semelhante a Ruby On Rails (Unisul)

Aula8.pptx
Aula8.pptxAula8.pptx
Aula8.pptxacsme
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento ORNécio de Lima Veras
 
Bancos de Dados Relacionais e NoSQL na Nuvem da AWS
Bancos de Dados Relacionais e NoSQL na Nuvem da AWSBancos de Dados Relacionais e NoSQL na Nuvem da AWS
Bancos de Dados Relacionais e NoSQL na Nuvem da AWSAmazon Web Services LATAM
 
Esta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com RailsEsta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com Railsismaelstahelin
 
Gerência de Redes - 9.Gerenciamento LDAP
Gerência de Redes - 9.Gerenciamento LDAPGerência de Redes - 9.Gerenciamento LDAP
Gerência de Redes - 9.Gerenciamento LDAPMauro Tapajós
 
Curso mongo db com php
Curso mongo db com phpCurso mongo db com php
Curso mongo db com phpSuissa
 
Banco de dados
Banco de dadosBanco de dados
Banco de dadosM Serafim
 
Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopDiego Sana
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmGuilherme Blanco
 
Desenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBDesenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBAri Stopassola Junior
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAThiago Cifani
 

Semelhante a Ruby On Rails (Unisul) (20)

Aula8.pptx
Aula8.pptxAula8.pptx
Aula8.pptx
 
Grails
GrailsGrails
Grails
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento OR
 
Aula 1 active diretory - 04082012
Aula 1   active diretory - 04082012Aula 1   active diretory - 04082012
Aula 1 active diretory - 04082012
 
Bancos de Dados Relacionais e NoSQL na Nuvem da AWS
Bancos de Dados Relacionais e NoSQL na Nuvem da AWSBancos de Dados Relacionais e NoSQL na Nuvem da AWS
Bancos de Dados Relacionais e NoSQL na Nuvem da AWS
 
MongoDB + PHP
MongoDB + PHPMongoDB + PHP
MongoDB + PHP
 
No sql std
No sql stdNo sql std
No sql std
 
Esta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com RailsEsta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com Rails
 
Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3
 
Oficial
OficialOficial
Oficial
 
Tema3.pptx
Tema3.pptxTema3.pptx
Tema3.pptx
 
Tema3.pptx
Tema3.pptxTema3.pptx
Tema3.pptx
 
Gerência de Redes - 9.Gerenciamento LDAP
Gerência de Redes - 9.Gerenciamento LDAPGerência de Redes - 9.Gerenciamento LDAP
Gerência de Redes - 9.Gerenciamento LDAP
 
Curso mongo db com php
Curso mongo db com phpCurso mongo db com php
Curso mongo db com php
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day Workshop
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine Orm
 
Desenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBDesenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDB
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 
Unidade O5
Unidade O5Unidade O5
Unidade O5
 

Último

Bingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosBingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosAntnyoAllysson
 
Mesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasMesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasRicardo Diniz campos
 
geografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundogeografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundonialb
 
Guia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfGuia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfEyshilaKelly1
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresLilianPiola
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfHenrique Pontes
 
A galinha ruiva sequencia didatica 3 ano
A  galinha ruiva sequencia didatica 3 anoA  galinha ruiva sequencia didatica 3 ano
A galinha ruiva sequencia didatica 3 anoandrealeitetorres
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxLuizHenriquedeAlmeid6
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
Educação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPEducação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPanandatss1
 
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfO Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfPastor Robson Colaço
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
Prática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISPrática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISVitor Vieira Vasconcelos
 
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSO
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSOVALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSO
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSOBiatrizGomes1
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 

Último (20)

Bingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosBingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteiros
 
Mesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasMesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecas
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
Em tempo de Quaresma .
Em tempo de Quaresma                            .Em tempo de Quaresma                            .
Em tempo de Quaresma .
 
geografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundogeografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundo
 
Guia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfGuia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdf
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
 
A galinha ruiva sequencia didatica 3 ano
A  galinha ruiva sequencia didatica 3 anoA  galinha ruiva sequencia didatica 3 ano
A galinha ruiva sequencia didatica 3 ano
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
 
Educação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPEducação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SP
 
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfO Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
Prática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISPrática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGIS
 
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSO
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSOVALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSO
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSO
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 

Ruby On Rails (Unisul)

  • 1. RUBY ON RAILS Uma cultura de boas práticas
  • 3. 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”.
  • 4. O QUE É UM FRAMEWORK ?
  • 5.
  • 6. 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
  • 7.
  • 9. Dylan Eiffel Ada Perl Python Smalltalk Scheme Lisp
  • 10. Linguagem dinâmica e reflexiva Linguagem humana Simplicidade Extensibilidade Produtividade
  • 12. JAVA public void imprime_impares(int limite){ for (int i = 1; i <= limite; i++) { if (i%2 == 1) { System.out.println(i); } } }
  • 13. RUBY def imprime_impares(limite) 1.upto(limite){ |i| puts i if i%2 == 1 } end
  • 14. 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; } }
  • 15. RUBY class Pessoa attr_accessor :nome end
  • 16. 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
  • 20. Convenção sobre configuração DRY (Don’t Repeat Yourself) Código bonito
  • 21. CONVENÇÃO SOBRE CONFIGURAÇÃO Nomes dos arquivos Nomes das tabelas no banco de dados Chaves do DB controllers Nomes das classes people_controller.rb countries_controller.rb Mapeamentos data_banks_controller.rb models Ambientes person.rb country.rb data_bank.rb views people _form.html.erb edit.html.erb index.html.erb new.html.erb
  • 22. CONVENÇÃO SOBRE CONFIGURAÇÃO Nomes dos arquivos Nomes das tabelas no banco de dados Chaves do DB Nomes das classes Mapeamentos Tabelas Ambientes people countries data_banks
  • 23. CONVENÇÃO SOBRE CONFIGURAÇÃO Nomes dos arquivos Nomes das tabelas no banco de dados Chaves do DB People Nomes das classes id country_id Mapeamentos DataBanks Ambientes id person_id Countries id
  • 24. CONVENÇÃO SOBRE CONFIGURAÇÃO Nomes dos arquivos Nomes das tabelas no banco de dados Chaves do DB Nomes das classes class Person Mapeamentos end Ambientes class Country end class DataBank end
  • 25. CONVENÇÃO SOBRE CONFIGURAÇÃO Nomes dos arquivos Nomes das tabelas no banco de dados Chaves do DB Nomes das classes Mapeamentos Ambientes
  • 26. CONVENÇÃO SOBRE CONFIGURAÇÃO Nomes dos arquivos Nomes das tabelas no banco de dados Chaves do DB Nomes das classes Mapeamentos Development Ambientes Test Production
  • 27. DRY (DON’T REPEAT YOURSELF) Gems Plugins
  • 28. 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
  • 30. 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
  • 31. 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
  • 32. 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
  • 35. @joelsondeabreu PERGUNTAS ??? http://www.slideshare.net/joelsondeabreu