Desenvolvimento ágil
            Com Ruby on Rails




a apresentação já vai começar...
Quem somos nozes?
• Rogério Chaves
 • twitter.com/_rchaves_
 • facebook.com/rogerio.chaves
•   Victor Hugo

•   facebook.com/viictoor.huugo
Quem usa Rails?
O que é Ruby?
 • Linguagem de programação de alto nível
Olá Mundo em Java        Olá Mundo em Ruby
Tornar as coisas simples
   fáceis e as coisas
 complexas possíveis
        Filosofia Ruby
Se um código em Ruby está
feio é porque está errado
    Yukihiro “Matz” - Criador do Ruby
O que é Rails?

• Framework para a web construído sobre o
  Ruby, que utiliza conceitos como
  Convention Over Configuration, MVC,
  DRY, KISS e REST.
ahm?
O que é Rails?

• Um conjunto de códigos, técnicas e
  padrões para se desenvolver aplicações
  para a web utilizando a linguagem Ruby
• Utiliza vários conceitos de
  desenvolvimento ágil e de Web 2.0
E o que eu ganho com isso?

• Agilidade
• Facilidade
• Testabilidade
• Manutenibilidade
• Diversão
Você vai precisar de:

• Qualquer sistema operacional
• Ruby 1.8.7 ou superior
• Rubygems
• Executar o comando “gem install rails”
Conceitos
Convention over
         Configuration



• Pressupõe as configurações, ganhando
  simplicidade sem perder flexibilidade
MVC


• Modelo, Visualização e
  Controlador
  (Entidade, Fronteira, Persistência)
DRY


• Don’t Repeat Yourself
• Cada porção do sistema deve ter uma
  representação única, livre de ambiguidades
KISS


• Keep It Simple Stupid
• Nada de gambiarras
REST
• Técnica de Engenharia de Software para
  sistemas hipermídia distribuídos como a
  World Wide Web (fonte: wikipedia)
Layouts

• Facilidade para criar vários layouts para um
  mesmo projeto
• Pouquíssimo HTML em todas as outras
  páginas
Migrações


• O código de criação de banco é em Ruby,
  não em SQL
• Adaptável com qualquer banco de dados
Gems e Plugins
•   Plugins para tudo
•   Facílima Instalação
•   Exemplos:
    •   paperclip
    •   will_paginate
    •   brazilian-rails
    •   nested_form
    •   rails_admin
    •   pdfkit
Escalabilidade?
Escalabilidade!



                                  node     822   req/s
                                  nginx    708
concurrent clients1 megabyte response
                                 apache    531
                                   thin     85
                                 mongrel     4
Escalabilidade!
Hospedagem




 R$ 0,00
JRuby

• Implementação de Java em Ruby
Se interessou?

• O Guia Comovente do Ruby do Why -
  http://why.nomedojogo.com
• Caelum - http://www.caelum.com.br/
• Railscasts - http://railscasts.com/
• Google - http://www.google.com.br
Grandes Rubystas
   _why


 Fábio Akita (Akita on Rails)
 @akitaonrails


 José Valim
 @josevalim
Grandes Rubystas
  Yehuda Katz
  @wycats

  Aaron Patterson
  @tenderlove


 Pedro Franceschi (PH)
 @pedroh96
Grandes Rubystas




    Jim Weirich
    @jimweirich
Obrigado!
Let’s Develop!

Desenvolvimento Ágil com Ruby on Rails

  • 1.
    Desenvolvimento ágil Com Ruby on Rails a apresentação já vai começar...
  • 2.
    Quem somos nozes? •Rogério Chaves • twitter.com/_rchaves_ • facebook.com/rogerio.chaves • Victor Hugo • facebook.com/viictoor.huugo
  • 3.
  • 4.
    O que éRuby? • Linguagem de programação de alto nível Olá Mundo em Java Olá Mundo em Ruby
  • 5.
    Tornar as coisassimples fáceis e as coisas complexas possíveis Filosofia Ruby
  • 6.
    Se um códigoem Ruby está feio é porque está errado Yukihiro “Matz” - Criador do Ruby
  • 7.
    O que éRails? • Framework para a web construído sobre o Ruby, que utiliza conceitos como Convention Over Configuration, MVC, DRY, KISS e REST.
  • 8.
  • 9.
    O que éRails? • Um conjunto de códigos, técnicas e padrões para se desenvolver aplicações para a web utilizando a linguagem Ruby • Utiliza vários conceitos de desenvolvimento ágil e de Web 2.0
  • 10.
    E o queeu ganho com isso? • Agilidade • Facilidade • Testabilidade • Manutenibilidade • Diversão
  • 11.
    Você vai precisarde: • Qualquer sistema operacional • Ruby 1.8.7 ou superior • Rubygems • Executar o comando “gem install rails”
  • 12.
  • 13.
    Convention over Configuration • Pressupõe as configurações, ganhando simplicidade sem perder flexibilidade
  • 14.
    MVC • Modelo, Visualizaçãoe Controlador (Entidade, Fronteira, Persistência)
  • 15.
    DRY • Don’t RepeatYourself • Cada porção do sistema deve ter uma representação única, livre de ambiguidades
  • 16.
    KISS • Keep ItSimple Stupid • Nada de gambiarras
  • 17.
    REST • Técnica deEngenharia de Software para sistemas hipermídia distribuídos como a World Wide Web (fonte: wikipedia)
  • 18.
    Layouts • Facilidade paracriar vários layouts para um mesmo projeto • Pouquíssimo HTML em todas as outras páginas
  • 19.
    Migrações • O códigode criação de banco é em Ruby, não em SQL • Adaptável com qualquer banco de dados
  • 20.
    Gems e Plugins • Plugins para tudo • Facílima Instalação • Exemplos: • paperclip • will_paginate • brazilian-rails • nested_form • rails_admin • pdfkit
  • 21.
  • 22.
    Escalabilidade! node 822 req/s nginx 708 concurrent clients1 megabyte response apache 531 thin 85 mongrel 4
  • 23.
  • 24.
  • 25.
  • 26.
    Se interessou? • OGuia Comovente do Ruby do Why - http://why.nomedojogo.com • Caelum - http://www.caelum.com.br/ • Railscasts - http://railscasts.com/ • Google - http://www.google.com.br
  • 27.
    Grandes Rubystas _why Fábio Akita (Akita on Rails) @akitaonrails José Valim @josevalim
  • 28.
    Grandes Rubystas Yehuda Katz @wycats Aaron Patterson @tenderlove Pedro Franceschi (PH) @pedroh96
  • 29.
    Grandes Rubystas Jim Weirich @jimweirich
  • 30.
  • 31.