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.

Octocatは技術的負債の夢を見るか?

2,000 views

Published on

2018/07/13
Rails Developers Meetup 2018 Day 3 Extreme
https://techplay.jp/event/679666

Published in: Technology
  • Be the first to comment

Octocatは技術的負債の夢を見るか?

  1. 1. Octocat ? 2018/07/13 @treby006 Rails Developers Meetup Day3
  2. 2. • treby (@treby006) Shinjuku.rb • Repro Dev2 • Rails • Rails, Vue.js, AWS(ECS, EMR), Go
  3. 3. Repro • Rails • • •
  4. 4. Repro • Rails • • •
  5. 5. Commit 2
  6. 6. Additions/Deletions 1 ( )
  7. 7. Repro • Rails • • • • CTO Contribute
  8. 8. Repro
  9. 9. We are hiring!! • • / B to B • • • • Conference
  10. 10. :
  11. 11. : Technical debt (design debt) ---- Wikipedia
  12. 12. • • • •
  13. 13. • •
  14. 14. • • • => •
  15. 15. • • • ( ) • • •
  16. 16. • • • • •
  17. 17. (Rails )
  18. 18. 1 DSL/ class SomeDSL def self.configulation(*args) end module Definition def provide(&definition) end end : : end
  19. 19. DSL/ • 0 → 1 • • ……
  20. 20. DSL/ • • • DSL/
  21. 21. DSL/ • Ruby • • gem OSS
  22. 22. 2 class SomeController < ApplicationController : : def create @presenter = SomePresenter.new(@some_model) if @presenter.save redirect_to :some_path else render :new end end end
  23. 23. 2 class SomePresenter < PresenterBase attr_reader :form delegate :save, to: :form def initialize(some_model) @form = SomeForm.new(some_model.attributes, self) end : : end
  24. 24. 2 class SomeForm < FormBase validate :something : : def initialize(params) : : end end
  25. 25. • • Rails • • ……
  26. 26. SomeForm : Before class SomeForm < FormBase validate :something : : def initialize(params) : : end end
  27. 27. SomeForm : After class SomeForm < FormBase validate :something : : attr_reader :presenter def initialize(params, presenter) : @presenter = presenter : end def validate presenter.some_methods super end end
  28. 28. Presenter : Before class SomePresenter < PresenterBase attr_reader :form delegate :save, to: :form def initialize(some_model) @form = SomeForm.new(some_model.attributes, self) end : : end
  29. 29. Presenter : After class SomePresenter < PresenterBase attr_reader :form def initialize(some_model) @form = SomeForm.new(some_model.attributes, self) end def save : @form.save : end : : end
  30. 30. • • • •
  31. 31. • • • •
  32. 32. • CI •
  33. 33. • • • • •
  34. 34. • • → • → • → •
  35. 35. • • • => • •
  36. 36. • • ( ) •
  37. 37. :
  38. 38. • • ( ) • •
  39. 39. • • • •
  40. 40. • ( ) • • • ( )
  41. 41. • ( ) • • • ( ) •
  42. 42. https://speakerdeck.com/joker1007/realworld- domain-model-on-rails
  43. 43. https://speakerdeck.com/joker1007/realworld- domain-model-on-rails
  44. 44. • • • •
  45. 45. • Rails • • CoC (Convention over Configuration) • Rails Rails ( ) •
  46. 46. • • • • : • :
  47. 47. !
  48. 48. !
  49. 49. • • • • ( ) •
  50. 50. • • • • ……
  51. 51. We are hiring!! • • / B to B • • • • Conference
  52. 52. Repro Tech Meetup https://repro-tech.connpass.com/event/94282/
  53. 53. Happy Hacking!!
  54. 54. :

×