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.
CRUDING OPEN SOURCE
    @josevalim - blog.plataformatec.com.br
Desenvolvedor Ruby
    há 3,5 anos
Autor de diversos projetos
      Open Source
READ
CREATE
Eu sou preguiçoso
Preguiça é uma virtude
PROVA #1
Eu trabalho na PlataformaTec
Eu desenvolvo aplicações
       em Rails
# app/models/comment.rb
class Comment < ActiveRecord::Base
  belongs_to :post
end
#1
    rails g scaffold
comment post:references
#2
Mudar o modelo
#3
Mudar o controller
#4
Mudar as views
Vamos consertar o passo #3
  “Mudar o controller”
INHERITED RESOURCES
# app/controllers/comments_controller.rb
class CommentsController < InheritedResources::Base
  belongs_to :post
end
É o fim do copy and paste!
PROVA #2
Aplicações tem formulários
        de contato
Fácil
...porém entediante!
#1
Criar um “fake” model
#2
Criar um mailer
#3
Criar a view para o mailer
E se tudo isso fosse
apenas um passo?
MAIL FORM
class ContactForm < MailForm
  append :request_ip, :user_agent

  attribute   :name,   :validate => true
  attribute   :em...
Preguiça #win
UPDATE
Eu sou preguiçoso
Promoção => Contribuição
TDD
Pense primeiro na API,
  depois no código!
Excelente API
         ==
Excelente Propaganda
FORMTASTIC
Não sejam tímidos
Enviem e-mails para Ruby 5,
  RailsEnvy, Rafael Rosa,
       Fabio Akita...
Usuários & Contribuidores
Usuários &   Contribuidores
acts_as_dhh



class JoseValim < Person
  acts_as_dhh
end
Bug reporter:
 O README está errado

            Eu:
Por favor, envie um patch!
Bug reporter:
 Algo está errado!

        Eu:
Please do investigate
Cordas
Isso parece uma boa idéia,
   mas ainda está errado
“Anybody can say yes, someone
      needs to say no”

               Linus Torvalds
Envolva os seus colegas de
        trabalho
DEVISE
DELETE
Deleguem!
RAILS-FOOTNOTES
“when you don’t create things,
  you become defined by your
tastes rather than ability. your
 tastes only narrow & exclude...
Thanks!


     @plataformatec
blog.plataformatec.com.br
http://edgeguides.rubyonrails.org/
CRUDing Open Source - WhyDay - 19aug2010
CRUDing Open Source - WhyDay - 19aug2010
Upcoming SlideShare
Loading in …5
×

CRUDing Open Source - WhyDay - 19aug2010

2,342 views

Published on

Palestra realizada por José Valim (@josevalim) no evento Why Day organizado pelo GURU-SP, em 19 de Agosto de 2010 na cidade de São Paulo.

  • Be the first to comment

  • Be the first to like this

CRUDing Open Source - WhyDay - 19aug2010

  1. 1. CRUDING OPEN SOURCE @josevalim - blog.plataformatec.com.br
  2. 2. Desenvolvedor Ruby há 3,5 anos
  3. 3. Autor de diversos projetos Open Source
  4. 4. READ
  5. 5. CREATE
  6. 6. Eu sou preguiçoso
  7. 7. Preguiça é uma virtude
  8. 8. PROVA #1
  9. 9. Eu trabalho na PlataformaTec
  10. 10. Eu desenvolvo aplicações em Rails
  11. 11. # app/models/comment.rb class Comment < ActiveRecord::Base belongs_to :post end
  12. 12. #1 rails g scaffold comment post:references
  13. 13. #2 Mudar o modelo
  14. 14. #3 Mudar o controller
  15. 15. #4 Mudar as views
  16. 16. Vamos consertar o passo #3 “Mudar o controller”
  17. 17. INHERITED RESOURCES
  18. 18. # app/controllers/comments_controller.rb class CommentsController < InheritedResources::Base belongs_to :post end
  19. 19. É o fim do copy and paste!
  20. 20. PROVA #2
  21. 21. Aplicações tem formulários de contato
  22. 22. Fácil
  23. 23. ...porém entediante!
  24. 24. #1 Criar um “fake” model
  25. 25. #2 Criar um mailer
  26. 26. #3 Criar a view para o mailer
  27. 27. E se tudo isso fosse apenas um passo?
  28. 28. MAIL FORM
  29. 29. class ContactForm < MailForm append :request_ip, :user_agent attribute :name, :validate => true attribute :email, :validate => /[^@]+@[^.]+.[w.-]+/ attribute :file, :attachment => true attribute :message def headers { :subject => "My Contact Form", :from => "your.email@your.domain.com" } end end
  30. 30. Preguiça #win
  31. 31. UPDATE
  32. 32. Eu sou preguiçoso
  33. 33. Promoção => Contribuição
  34. 34. TDD
  35. 35. Pense primeiro na API, depois no código!
  36. 36. Excelente API == Excelente Propaganda
  37. 37. FORMTASTIC
  38. 38. Não sejam tímidos
  39. 39. Enviem e-mails para Ruby 5, RailsEnvy, Rafael Rosa, Fabio Akita...
  40. 40. Usuários & Contribuidores
  41. 41. Usuários & Contribuidores
  42. 42. acts_as_dhh class JoseValim < Person acts_as_dhh end
  43. 43. Bug reporter: O README está errado Eu: Por favor, envie um patch!
  44. 44. Bug reporter: Algo está errado! Eu: Please do investigate
  45. 45. Cordas
  46. 46. Isso parece uma boa idéia, mas ainda está errado
  47. 47. “Anybody can say yes, someone needs to say no” Linus Torvalds
  48. 48. Envolva os seus colegas de trabalho
  49. 49. DEVISE
  50. 50. DELETE
  51. 51. Deleguem!
  52. 52. RAILS-FOOTNOTES
  53. 53. “when you don’t create things, you become defined by your tastes rather than ability. your tastes only narrow & exclude people. so create.” _why
  54. 54. Thanks! @plataformatec blog.plataformatec.com.br
  55. 55. http://edgeguides.rubyonrails.org/

×