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

1.563 visualizações

Publicada em

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.

Publicada em: Educação
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.563
No SlideShare
0
A partir de incorporações
0
Número de incorporações
10
Ações
Compartilhamentos
0
Downloads
61
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

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

×