2009, ano do Ruby
       on Rails no Brasil

Sunday, November 8, 2009
Cauê Guerra
   caue.guerra@caelum.com.br

  @caueguerra




Sunday, November 8, 2009
Sunday, November 8, 2009
Ruby



Sunday, November 8, 2009
Yukihiro Matsumoto (Matz)

    “Often people, especially
    computer engineers, focus on the
    machines. But in fact we...
Características




Sunday, November 8, 2009
Características

               Orientada a Objetos    2.times { puts “Olá” }




Sunday, November 8, 2009
Características

               Orientada a Objetos    2.times { puts “Olá” }

               Tipagem dinâmica       @nome...
Características

               Orientada a Objetos    2.times { puts “Olá” }

               Tipagem dinâmica       @nome...
Características

               Orientada a Objetos      2.times { puts “Olá” }

               Tipagem dinâmica         @...
Exemplo




Sunday, November 8, 2009
Java
                           class CalculadorDeMDC {
                             public int calcula(int a, int b) {
  ...
Ruby
                           class CalculadorDeMDC
                            def calcula(a, b)
                      ...
Um outro exemplo




Sunday, November 8, 2009
Java

                  public String[] paraMaiuscula(String[] palavras) {
                    String[] resposta = new Str...
Ruby

      def paraMaiuscula(palavras)
       palavras.map { |palavra| palavra.upcase }
      end




Sunday, November 8,...
“Tornar as coisas
                     simples, fáceis;
                     e as complexas,
                        possí...
1995
Sunday, November 8, 2009
2001




                           Dave Thomas




Sunday, November 8, 2009
RubyConf 2001


Sunday, November 8, 2009
http://www.ruby-lang.org




Sunday, November 8, 2009
Thomas Enebo   2006




Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
WTF?!?



Sunday, November 8, 2009
WTF?!?



Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
- Busca textual
                           - Autenticação
                           - Autorização
                       ...
http://rubyonrails.org/




Sunday, November 8, 2009
Pilares




Sunday, November 8, 2009
CoC
                           Convention over Configuration




Sunday, November 8, 2009
DRY
                           Don’t Repeat Yourself




Sunday, November 8, 2009
MVC
Sunday, November 8, 2009
Browser




Sunday, November 8, 2009
Browser


                           ApplicationController




Sunday, November 8, 2009
Browser


                           ApplicationController


                                Controller




Sunday, Novemb...
Browser


                           ApplicationController


                                Controller         Model




...
Browser


                           ApplicationController


                                Controller         Model   DB...
Browser


                           ApplicationController


                                Controller         Model   DB...
Browser


                           ApplicationController


                                Controller         Model   DB...
Browser


                           ApplicationController


              View              Controller         Model   DB...
Sunday, November 8, 2009
Aplicação
                           Configurações
                           Schema evolution




                        ...
Controller




                           Model

                           View




Sunday, November 8, 2009
Testes
Sunday, November 8, 2009
Test All The Fucking Time!




              Testes
Sunday, November 8, 2009
TDD
                           Test Driven Development




                           BDD
                           Behav...
RSpec
           it "should require acceptance of terms of service" do
               @job.attributes = valid_job_attribut...
Cucumber
       Feature: Job listing
        In order to see the job offers in my area and start working
        As a user...
Rails 3 =   +




Sunday, November 8, 2009
Yehuda Katz




Sunday, November 8, 2009
José Valim




Sunday, November 8, 2009
Por que não aprender Rails?




Sunday, November 8, 2009
Rails não escala!



Sunday, November 8, 2009
Hoje o Redeparede.com
                           serve 7,5 milhões de
                           acessos por mês
         ...
“Basecamp is now handling
                            more than 50 million Rails
                            requests per ...
Não conheço ninguém que use Rails




Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
http://www.workingwithrails.com/high-profile-organisations




Sunday, November 8, 2009
Sunday, November 8, 2009
Martin Fowler


          41 projetos Ruby
          de 2006 a 2008 -
          a maioria usando
                Rails



...
Ruby é mais produtivo?


                                                13




                                          ...
Ruby foi a escolha certa?


                                          não
                                           5



...
Sunday, November 8, 2009
“As empresas estão
       cheias de guardas,
         impedindo as
      pessoas de mudar!”




Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Regis Pires




                           IFPI - Piauí




Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
2
Sunday, November 8, 2009
3
Sunday, November 8, 2009
Formação Rails




            RR-71: Desenvolvimento Ágil para     RR-75: Ruby e Rails avançados:
              Web 2.0 c...
150



               113                        113




                 75
                                   72



    ...
E daí?

Sunday, November 8, 2009
http://ondetrabalhar.com/ruby+ou+rails




Sunday, November 8, 2009
Sunday, November 8, 2009
Sunday, November 8, 2009
http://slideshare.net/caueguerra




Sunday, November 8, 2009
Upcoming SlideShare
Loading in …5
×

2009, o ano do Ruby on Rails no Brasil - CaelumDay 2009

1,237 views

Published on

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,237
On SlideShare
0
From Embeds
0
Number of Embeds
12
Actions
Shares
0
Downloads
27
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

2009, o ano do Ruby on Rails no Brasil - CaelumDay 2009

  1. 1. 2009, ano do Ruby on Rails no Brasil Sunday, November 8, 2009
  2. 2. Cauê Guerra caue.guerra@caelum.com.br @caueguerra Sunday, November 8, 2009
  3. 3. Sunday, November 8, 2009
  4. 4. Ruby Sunday, November 8, 2009
  5. 5. Yukihiro Matsumoto (Matz) “Often people, especially computer engineers, focus on the machines. But in fact we need to focus on humans, on how humans care about doing programming or operating the application of the machines. We are the masters. They are the slaves.” Sunday, November 8, 2009
  6. 6. Características Sunday, November 8, 2009
  7. 7. Características Orientada a Objetos 2.times { puts “Olá” } Sunday, November 8, 2009
  8. 8. Características Orientada a Objetos 2.times { puts “Olá” } Tipagem dinâmica @nome = “Cauê Guerra” Sunday, November 8, 2009
  9. 9. Características Orientada a Objetos 2.times { puts “Olá” } Tipagem dinâmica @nome = “Cauê Guerra” Meta-programação Código que gera código Sunday, November 8, 2009
  10. 10. Características Orientada a Objetos 2.times { puts “Olá” } Tipagem dinâmica @nome = “Cauê Guerra” Meta-programação Código que gera código Programação funcional Sunday, November 8, 2009
  11. 11. Exemplo Sunday, November 8, 2009
  12. 12. Java class CalculadorDeMDC { public int calcula(int a, int b) { if (b == 0) return a; else return calcula(b, a % b); } } CalculadorDeMDC calculador = new CalculadorDeMDC(); System.out.println(calculador.calcula(28, 7)); Sunday, November 8, 2009
  13. 13. Ruby class CalculadorDeMDC def calcula(a, b) if b == 0 a else calcula(b, a % b) end end end calculador = CalculadorDeMDC.new puts calculador.calcula(28, 7) Sunday, November 8, 2009
  14. 14. Um outro exemplo Sunday, November 8, 2009
  15. 15. Java public String[] paraMaiuscula(String[] palavras) { String[] resposta = new String[palavras.length]; for (int i = 0; i < palavras.length; i++) resposta[i] = palavras[i].toUpperCase(); return resposta; } Sunday, November 8, 2009
  16. 16. Ruby def paraMaiuscula(palavras) palavras.map { |palavra| palavra.upcase } end Sunday, November 8, 2009
  17. 17. “Tornar as coisas simples, fáceis; e as complexas, possíveis” Filosofia Ruby Sunday, November 8, 2009
  18. 18. 1995 Sunday, November 8, 2009
  19. 19. 2001 Dave Thomas Sunday, November 8, 2009
  20. 20. RubyConf 2001 Sunday, November 8, 2009
  21. 21. http://www.ruby-lang.org Sunday, November 8, 2009
  22. 22. Thomas Enebo 2006 Sunday, November 8, 2009
  23. 23. Sunday, November 8, 2009
  24. 24. Sunday, November 8, 2009
  25. 25. Sunday, November 8, 2009
  26. 26. Sunday, November 8, 2009
  27. 27. WTF?!? Sunday, November 8, 2009
  28. 28. WTF?!? Sunday, November 8, 2009
  29. 29. Sunday, November 8, 2009
  30. 30. Sunday, November 8, 2009
  31. 31. Sunday, November 8, 2009
  32. 32. Sunday, November 8, 2009
  33. 33. Sunday, November 8, 2009
  34. 34. Sunday, November 8, 2009
  35. 35. - Busca textual - Autenticação - Autorização - Processamento assíncrono - Mensageria - WebServices ... Sunday, November 8, 2009
  36. 36. http://rubyonrails.org/ Sunday, November 8, 2009
  37. 37. Pilares Sunday, November 8, 2009
  38. 38. CoC Convention over Configuration Sunday, November 8, 2009
  39. 39. DRY Don’t Repeat Yourself Sunday, November 8, 2009
  40. 40. MVC Sunday, November 8, 2009
  41. 41. Browser Sunday, November 8, 2009
  42. 42. Browser ApplicationController Sunday, November 8, 2009
  43. 43. Browser ApplicationController Controller Sunday, November 8, 2009
  44. 44. Browser ApplicationController Controller Model Sunday, November 8, 2009
  45. 45. Browser ApplicationController Controller Model DB Sunday, November 8, 2009
  46. 46. Browser ApplicationController Controller Model DB Sunday, November 8, 2009
  47. 47. Browser ApplicationController Controller Model DB Sunday, November 8, 2009
  48. 48. Browser ApplicationController View Controller Model DB Sunday, November 8, 2009
  49. 49. Sunday, November 8, 2009
  50. 50. Aplicação Configurações Schema evolution Testes Sunday, November 8, 2009
  51. 51. Controller Model View Sunday, November 8, 2009
  52. 52. Testes Sunday, November 8, 2009
  53. 53. Test All The Fucking Time! Testes Sunday, November 8, 2009
  54. 54. TDD Test Driven Development BDD Behavior Driven Development Sunday, November 8, 2009
  55. 55. RSpec it "should require acceptance of terms of service" do @job.attributes = valid_job_attributes.except(:terms_accepted) @job.should_not be_valid @job.terms_accepted = false @job.should_not be_valid @job.terms_accepted = true @job.should be_valid end Sunday, November 8, 2009
  56. 56. Cucumber Feature: Job listing In order to see the job offers in my area and start working As a user I want to see a list of jobs filtered by type and location Scenario: Listing when there is no jobs Given there is no jobs When I go to "java" Then I should see "Desculpe, não existem vagas disponíveis." And the "OndeTrabalhar.com" field should contain "java" Sunday, November 8, 2009
  57. 57. Rails 3 = + Sunday, November 8, 2009
  58. 58. Yehuda Katz Sunday, November 8, 2009
  59. 59. José Valim Sunday, November 8, 2009
  60. 60. Por que não aprender Rails? Sunday, November 8, 2009
  61. 61. Rails não escala! Sunday, November 8, 2009
  62. 62. Hoje o Redeparede.com serve 7,5 milhões de acessos por mês usando Ruby on Rails. Rails escala, depende de você! Sunday, November 8, 2009
  63. 63. “Basecamp is now handling more than 50 million Rails requests per week. We're peaking out at around 200 req/sec. Damn!” “Basecamp's average response time is 90ms and 87% of all requests finish in less than 200ms.” Sunday, November 8, 2009
  64. 64. Não conheço ninguém que use Rails Sunday, November 8, 2009
  65. 65. Sunday, November 8, 2009
  66. 66. Sunday, November 8, 2009
  67. 67. Sunday, November 8, 2009
  68. 68. Sunday, November 8, 2009
  69. 69. Sunday, November 8, 2009
  70. 70. Sunday, November 8, 2009
  71. 71. Sunday, November 8, 2009
  72. 72. Sunday, November 8, 2009
  73. 73. http://www.workingwithrails.com/high-profile-organisations Sunday, November 8, 2009
  74. 74. Sunday, November 8, 2009
  75. 75. Martin Fowler 41 projetos Ruby de 2006 a 2008 - a maioria usando Rails Sunday, November 8, 2009
  76. 76. Ruby é mais produtivo? 13 5 5 3 2 1 1 Negativo 0 20% 50% 2X 5X 10X Sunday, November 8, 2009
  77. 77. Ruby foi a escolha certa? não 5 sim 36 Sunday, November 8, 2009
  78. 78. Sunday, November 8, 2009
  79. 79. “As empresas estão cheias de guardas, impedindo as pessoas de mudar!” Sunday, November 8, 2009
  80. 80. Sunday, November 8, 2009
  81. 81. Sunday, November 8, 2009
  82. 82. Sunday, November 8, 2009
  83. 83. Sunday, November 8, 2009
  84. 84. Sunday, November 8, 2009
  85. 85. Sunday, November 8, 2009
  86. 86. Sunday, November 8, 2009
  87. 87. Sunday, November 8, 2009
  88. 88. Sunday, November 8, 2009
  89. 89. Regis Pires IFPI - Piauí Sunday, November 8, 2009
  90. 90. Sunday, November 8, 2009
  91. 91. Sunday, November 8, 2009
  92. 92. Sunday, November 8, 2009
  93. 93. 2 Sunday, November 8, 2009
  94. 94. 3 Sunday, November 8, 2009
  95. 95. Formação Rails RR-71: Desenvolvimento Ágil para RR-75: Ruby e Rails avançados: Web 2.0 com Ruby on Rails lidando com problemas do dia a dia Sunday, November 8, 2009
  96. 96. 150 113 113 75 72 38 2009 0 2008 10 2007 Sunday, November 8, 2009
  97. 97. E daí? Sunday, November 8, 2009
  98. 98. http://ondetrabalhar.com/ruby+ou+rails Sunday, November 8, 2009
  99. 99. Sunday, November 8, 2009
  100. 100. Sunday, November 8, 2009
  101. 101. http://slideshare.net/caueguerra Sunday, November 8, 2009

×