Advertisement

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

Software Engineer
Jan. 21, 2009
Advertisement

More Related Content

Advertisement

Recently uploaded(20)

Advertisement

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

  1. Ruby, Rails e Diversão Júlio Monteiro <julio@monteiro.eti.br> 23 de Janeiro de 2009 - Campus Party Brasil 2009
  2. @jmonteiro /jmonteiro www.monteiro.eti.br Júlio Monteiro
  3. http://www.akitaonrails.com/2009/1/20/palestra-na-campus-party
  4. Linguagem de Script
  5. Interpretada* * Dependendo do ambiente de execução.
  6. Orientada a Objeto
  7. Programação:
  8. General* Purpose * General como em non-specific, ao invés de universal
  9. Tarefas Rápidas
  10. Influências
  11. Linguagem Prática
  12. Orientação a Objetos
  13. Metaprogramação
  14. Sintaxe
  15. Tratamento de Exceções (similar, não baseado)
  16. Características
  17. Não existem “procedimentos” nem “funções”
  18. Tudo é um objeto
  19. Métodos são mensagens
  20. 1
  21. 1
  22. 1 Fixnum
  23. 1.class
  24. 1.class => “Fixnum”
  25. 1.send(“class”)
  26. 1.send(“class”) => “Fixnum”
  27. Até operadores matemáticos são métodos
  28. “Beleza leva a felicidade. Felicidade leva a produtividade. Logo, beleza leva a produtividade.” (David Heinemeier Hansson)
  29. “Você pode reconhecer a verdade por sua beleza e simplicidade.” (Richard Feynman)
  30. Observações • Ruby não é perfeita • Ruby não é a única linguagem linda • Gosto varia com frequência
  31. Blocos
  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. Blocos do |a, b| # código com a, b end {|a, b| # código com a, b }
  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. 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. Sintaxe para Servir
  37. Código simples: ;
  38. Código complexo: ;
  39. Ruby suporta: ; ;
  40. Parênteses opcionais ( )
  41. Classes são abertas
  42. Classes são abertas • Toda classe pode ser alterada • Liberdade total • Flexibilidade no código • “Ruby Way”
  43. Exemplos class NilClass class String def blank? def blank? true self == quot;quot; end end end end
  44. Qual a utilidade disso tudo?
  45. Código simples
  46. Pouco código
  47. É mais fácil achar e corrigir um bug em: a) 100 LOC b) 10.000 LOC c) 10^42 LOC
  48. Facilidade de correção
  49. Facilidade para extensão
  50. Menos tempo de desenvolvimento
  51. Menos tempo para entregar um produto
  52. Direto ao ponto:
  53. No Rails, você se preocupa mais com a “Lógica de Negócio”
  54. No Rails, você se preocupa mais com a “Lógica de Negócio”
  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. 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. 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. Hey, mas o framework ______ também faz isso!
  59. Rails usa Ruby :)
  60. Ruby não é melhor que _______, mas tem muita coisa interessante!
  61. 10 anos 12 funcionários muito sucesso (e alguns milhões)
  62. 12 meses 20+ projetos entregues todos de sucesso
  63. E muitas outras empresas!
  64. Observações:
  65. Ruby é difícil
  66. Ruby é difícil porque é diferente.
  67. Ruby on Rails é difícil
  68. Ruby on Rails é difícil porque é um framework
  69. Ruby on Rails é difícil porque é um framework e usa Ruby.
  70. Mas vale apena :)
  71. www.rubyonrails.com.br
  72. www.rubyonrails.pro.br
  73. Perguntas? Júlio Monteiro <julio@monteiro.eti.br> @jmonteiro /jmonteiro www.monteiro.eti.br
  74. Obrigado! Júlio Monteiro <julio@monteiro.eti.br> @jmonteiro /jmonteiro www.monteiro.eti.br
Advertisement