CRUDing Open Source - WhyDay - 19aug2010

  • 2,045 views
Uploaded 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.

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.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
2,045
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
5
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

























































Transcript

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