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,118

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.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,118
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

























































  • 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/
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×