Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Ruby, Rails e Diversão (Campus Party Brasil 2009)

1,672 views

Published on

Palestra ministrada dia 23 de janeiro de 2009 (2009-01-23) na Campus Party Brasil 2009, na área de Desenvolvimento, em São Paulo/SP.

Published in: Education
  • Be the first to comment

Ruby, Rails e Diversão (Campus Party Brasil 2009)

  1. 1. Ruby, Rails e Diversão Júlio Monteiro <julio@monteiro.eti.br> 23 de Janeiro de 2009 - Campus Party Brasil 2009
  2. 2. @jmonteiro /jmonteiro www.monteiro.eti.br Júlio Monteiro
  3. 3. http://www.akitaonrails.com/2009/1/20/palestra-na-campus-party
  4. 4. Linguagem de Script
  5. 5. Interpretada* * Dependendo do ambiente de execução.
  6. 6. Orientada a Objeto
  7. 7. Programação:
  8. 8. General* Purpose * General como em non-specific, ao invés de universal
  9. 9. Tarefas Rápidas
  10. 10. Influências
  11. 11. Linguagem Prática
  12. 12. Orientação a Objetos
  13. 13. Metaprogramação
  14. 14. Sintaxe
  15. 15. Tratamento de Exceções (similar, não baseado)
  16. 16. Características
  17. 17. Não existem “procedimentos” nem “funções”
  18. 18. Tudo é um objeto
  19. 19. Métodos são mensagens
  20. 20. 1
  21. 21. 1
  22. 22. 1 Fixnum
  23. 23. 1.class
  24. 24. 1.class => “Fixnum”
  25. 25. 1.send(“class”)
  26. 26. 1.send(“class”) => “Fixnum”
  27. 27. Até operadores matemáticos são métodos
  28. 28. “Beleza leva a felicidade. Felicidade leva a produtividade. Logo, beleza leva a produtividade.” (David Heinemeier Hansson)
  29. 29. “Você pode reconhecer a verdade por sua beleza e simplicidade.” (Richard Feynman)
  30. 30. Observações • Ruby não é perfeita • Ruby não é a única linguagem linda • Gosto varia com frequência
  31. 31. Blocos
  32. 32. Blocos • Closures - Funções anônimas - Lambdas • Sintaxe concisa (similar a Smalltalk) • Duas sintaxes do |a, b| # código com a, b end {|a, b| # código com a, b }
  33. 33. Blocos do |a, b| # código com a, b end {|a, b| # código com a, b }
  34. 34. Blocos obj.each do |e| e.save! end (quot;aquot;..quot;zquot;).each do |char| puts char end array.group_by {|a| a.type}
  35. 35. Blocos File.open(quot;config.txtquot;) do |in| in.each_line do |line| process_config_line(line) end end (0..100).collect {|n| User.find(n).destroy }
  36. 36. Sintaxe para Servir
  37. 37. Código simples: ;
  38. 38. Código complexo: ;
  39. 39. Ruby suporta: ; ;
  40. 40. Parênteses opcionais ( )
  41. 41. Classes são abertas
  42. 42. Classes são abertas • Toda classe pode ser alterada • Liberdade total • Flexibilidade no código • “Ruby Way”
  43. 43. Exemplos class NilClass class String def blank? def blank? true self == quot;quot; end end end end
  44. 44. Qual a utilidade disso tudo?
  45. 45. Código simples
  46. 46. Pouco código
  47. 47. É mais fácil achar e corrigir um bug em: a) 100 LOC b) 10.000 LOC c) 10^42 LOC
  48. 48. Facilidade de correção
  49. 49. Facilidade para extensão
  50. 50. Menos tempo de desenvolvimento
  51. 51. Menos tempo para entregar um produto
  52. 52. Direto ao ponto:
  53. 53. No Rails, você se preocupa mais com a “Lógica de Negócio”
  54. 54. No Rails, você se preocupa mais com a “Lógica de Negócio”
  55. 55. Classe Livro: Pertence a um Autor Tem várias Tags Tem um Upload O título tem no máximo 300 caracteres Tem uma máquina de estados
  56. 56. class Book < ActiveRecord::Base # Relacionamentos belongs_to :author has_and_belongs_to_many :tags has_one :upload # Validação validates_length_of :subtitle, :maximum => 300
  57. 57. acts_as_state_machine :initial => :registred state :passive state :registred state :waiting_processing state :in_processing state :preview state :published state :unpublished event :register do transitions :from => :passive, :to => :registred end # ... end
  58. 58. Hey, mas o framework ______ também faz isso!
  59. 59. Rails usa Ruby :)
  60. 60. Ruby não é melhor que _______, mas tem muita coisa interessante!
  61. 61. 10 anos 12 funcionários muito sucesso (e alguns milhões)
  62. 62. 12 meses 20+ projetos entregues todos de sucesso
  63. 63. E muitas outras empresas!
  64. 64. Observações:
  65. 65. Ruby é difícil
  66. 66. Ruby é difícil porque é diferente.
  67. 67. Ruby on Rails é difícil
  68. 68. Ruby on Rails é difícil porque é um framework
  69. 69. Ruby on Rails é difícil porque é um framework e usa Ruby.
  70. 70. Mas vale apena :)
  71. 71. www.rubyonrails.com.br
  72. 72. www.rubyonrails.pro.br
  73. 73. Perguntas? Júlio Monteiro <julio@monteiro.eti.br> @jmonteiro /jmonteiro www.monteiro.eti.br
  74. 74. Obrigado! Júlio Monteiro <julio@monteiro.eti.br> @jmonteiro /jmonteiro www.monteiro.eti.br

×