Rails - EXATEC2009

591 views

Published on

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

  • Be the first to like this

No Downloads
Views
Total views
591
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Rails - EXATEC2009

  1. 1. 2009, ano do Ruby on Rails no Brasil
  2. 2. Cauê Guerra caue.guerra@caelum.com.br @caueguerra OndeTrabalhar.com
  3. 3. Ruby
  4. 4. 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.”
  5. 5. Características
  6. 6. Características Orientada a Objetos 2.times { puts “Olá” }
  7. 7. Características Orientada a Objetos 2.times { puts “Olá” } Tipagem dinâmica @nome = “Cauê Guerra”
  8. 8. Características Orientada a Objetos 2.times { puts “Olá” } Tipagem dinâmica @nome = “Cauê Guerra” Meta-programação Código que gera código
  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 Programação funcional
  10. 10. Exemplo
  11. 11. 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));
  12. 12. Scala class CalculadorDeMDC { def calcula(a: Int, b: Int): Int = { if (b == 0) a else calcula(b, a % b) } } val calculador = new CalculadorDeMDC println(calculador.calcula(28, 7))
  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)
  14. 14. Um outro exemplo
  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; }
  16. 16. Ruby def paraMaiuscula(palavras) palavras.map { |palavra| palavra.upcase } end
  17. 17. “Tornar as coisas simples, fáceis; e as complexas, possíveis” Filosofia Ruby
  18. 18. 1995
  19. 19. Dave Thomas 2001
  20. 20. http://www.ruby-lang.org
  21. 21. Thomas Enebo 2006 JRuby Ruby escrito 100% em Java
  22. 22. WTF?!?
  23. 23. WTF?!?
  24. 24. http://rubyonrails.org/
  25. 25. Pilares
  26. 26. CoC Convention over Configuration
  27. 27. DRY Don’t Repeat Yourself
  28. 28. MVC
  29. 29. Browser
  30. 30. Browser ApplicationController
  31. 31. Browser ApplicationController Controller
  32. 32. Browser ApplicationController Controller Model
  33. 33. Browser ApplicationController Controller Model DB
  34. 34. Browser ApplicationController Controller Model DB
  35. 35. Browser ApplicationController Controller Model DB
  36. 36. Browser ApplicationController Controller Model View DB
  37. 37. Aplicação Configurações Schema evolution Testes
  38. 38. Controller Model View
  39. 39. Testes
  40. 40. Testes Test All The Fucking Time!
  41. 41. TDD Test Driven Development BDD Behavior Driven Development
  42. 42. 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
  43. 43. 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"
  44. 44. Rails não escala!
  45. 45. Hoje o Redeparede.com serve 7,5 milhões de acessos por mês usando Ruby on Rails. Rails escala, depende de você!
  46. 46. “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.”
  47. 47. Não conheço ninguém que use Rails
  48. 48. Rails 3 = +
  49. 49. Yehuda Katz
  50. 50. José Valim
  51. 51. Regis Pires IFPI - Piauí
  52. 52. 2
  53. 53. 3
  54. 54. 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
  55. 55. 150 113 113 75 72 38 2009 0 2008 10 2007
  56. 56. E daí?
  57. 57. http://ondetrabalhar.com/ruby+ou+rails
  58. 58. http://slideshare.net/caueguerra

×