Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ruby on Ruby on Rails

Ruby on Ruby on Rails

プログラミング言語Ruby 25周年記念イベントの記念講演「Rubyの今」のWEB編の発表スライド http://25.ruby.or.jp/

Akira Matsuda

February 24, 2018
Tweet

More Decks by Akira Matsuda

Other Decks in Programming

Transcript

  1. Ruby on
    Ruby on Rails
    Akira Matsuda

    View Slide

  2. Ruby25प೥

    View Slide

  3. 25ࡀ͓ΊͰͱ͏ʂ

    View Slide

  4. Rubyͷࠓ

    ʮRubyͱWEBʯͱ͍͏

    ͓୊Ͱɻ

    View Slide

  5. RubyͰWEBͱ͍͑͹ʁ

    View Slide

  6. Ruby on Rails

    Ͱ͢ΑͶɻ

    View Slide

  7. whoami

    দా ໌

    Rubyίϛολʔ

    Ruby on Railsίϛολʔ

    View Slide

  8. RubyKaigi 2018

    View Slide

  9. RubyKaigi 2018

    CFPࠓ݄͍ͬͺ͍ʂ

    View Slide

  10. Asakusa.rb

    View Slide

  11. Asakusa.rb

    10प೥ʂ

    View Slide

  12. Asakusa.rb

    10प೥ʂ

    ϝϯόʔ͸Ұචॻ͘͜ͱʂ

    View Slide

  13. Ruby on Railsͱ͸

    ͍·ੈքͰҰ൪࢖ΘΕ͍ͯΔWEB
    ΞϓϦέʔγϣϯɾϑϨʔϜϫʔΫ

    (ͩΖ͏ͱࢥ͏͚Ͳཁग़య)

    ΞϓϦέʔγϣϯΛRubyͰॻ͚Δ

    ຊମ΋pure RubyͰॻ͔Ε͍ͯΔ

    View Slide

  14. RubyͱRailsͷҧ͍

    Ruby: p "Hello, World" ͬͯॻ͘ͱࠇ͍ը໘
    ʹ "Hello, World" ͬͯग़ྗͰ͖Δ஍ຯͳ΍
    ͭɻRailsΛಈ͔ͨ͢Ίͷಓ۩ͱͯ͠஌ΒΕ
    Δɻ

    Rails: Կ΋ͳ͍ͱ͜Ζ͔Β15෼͙Β͍Ͱ͍͖
    ͳΓόʔϯͱϒϩάͷΞϓϦ͕࡞Εͯ͠·͏
    ࠷ߴʹศརͰΫʔϧͳຐ๏Έ͍ͨͳ΍ͭɻ

    View Slide

  15. Rails͸RubyΛϝδϟʔݴޠʹ

    ԡ্͛ͨ͠ݪಈྗ

    Ruby before Rails: ୭΋஌Βͳ͍
    ௒ϚΠφʔݴޠ

    Ruby after Rails: Ruby͍ͬͯ͏
    ݴޠʹ͍ͭͯશ͘ฉ͍ͨ͜ͱ͕

    ແ͍ϓϩάϥϚʔ͸ډͳ͍ΑͶʁ

    View Slide

  16. ͱ͜ΖͰɺRuby on Railsͬͯ

    ԿࡀͳΜ͚ͩͬʁ

    2004೥ʹ։ൃελʔτ

    ݱࡏ14೥໨

    View Slide

  17. RubyʹͱͬͯɺRails͸

    ൒ੜҎ্࿈Εఴͬͨ஥

    ΋͸΍੾ͬͯ΋੾Εͳ͍

    ؔ܎ʹ͋Δ

    View Slide

  18. Railsͷಛ௃

    ݱ৔ͷϦΞϧͳ໰୊Λղܾ͢Δ

    πʔϧ

    ৗʹมԽ͠ଓ͚Δ

    ͨͷ͍͠

    Ṷ͔Δ

    View Slide

  19. ݱ৔ͷϦΞϧͳ໰୊Λ

    ղܾ͢Δಓ۩

    Basecampͱ͍͏ݱ࣮ͷελʔτ
    ΞοϓͷϓϩμΫτ͔Β੾Γग़͞Ε
    ͯOSSԽ͞Εͨ΋ͷ

    ϑϨʔϜϫʔΫ͔͠࡞ͬͯͳ͍Α͏
    ͳݚڀॴͷϓϩϑϨʔϜϫʔΫ࡞Ո
    ͕࡞ͬͨΑ͏ͳ୅෺Ͱ͸ͳ͍

    View Slide

  20. ৗʹมԽ͠ଓ͚Δ

    5,000ਓͷʮίϯτϦϏϡʔλʔʯ

    ͨͪʹΑΔઈ͑ؒͳ͍վྑ

    ܾͯ҆͠ॅ͠ͳ͍

    ͣͬͱ૸Γଓ͚ͯΔ͔Β͍ͭ·Ͱ΋ݹ͘ͳΒͳ
    ͍

    ৗʹ࠷৽WEBϑϨʔϜϫʔΫͰ͋Γଓ͚͍ͯΔ

    View Slide

  21. ͣͬͱࢭ·Βͣʹ૸Γଓ͚Δ
    ιϑτ΢ΣΞ

    ʮઢ࿏ʯͱ͍͏ϝλϑΝʔ
    ʹࠐΊΒΕ͍ͯΔ

    View Slide

  22. Railsͷʮ৽͠͞ʯ

    WEBΞϓϦ։ൃγʔϯશମΛมֵ

    CoCɺີ݁߹ϑϧελοΫMVCɺδΣωϨʔλʔɺTDDɺ
    AJAXɺRESTͷ࠶ൃݟɺalt JSɺassetͷunificationɺPJAX
    తͳΞϓϩʔνɺϓϥάΠϯػߏɺbundlerͷύοέʔδ
    ϚωʔδϝϯτɺͳͲͳͲͳͲͳͲ

    ෦෼తʹ͸ྑ͠ѱ͠Λ࿦͡Δ༨஍͸͋Δ͔΋͠Εͳ͍͕ɺ
    ओுͷ͋Διϑτ΢ΣΞΛੈʹग़͢͜ͱʹΑͬͯɺΈΜͳ
    ͷߟ͑ํʹେ͖͘ӨڹΛ༩͑ଓ͚͖ͯͨ

    View Slide

  23. ͨͷ͍͠

    Railsͨͷ͍͠ΑͶ

    10೥Ҏ্ͣͬͱ࢓ࣄͰRails
    Λ΍ͬͯΔ͚Ͳɺ͍·ͩʹ
    ຖ೔ͷ࢓ࣄָ͕͍͠Ͱ͢

    View Slide

  24. ʮRubyΛΩϝΔͱ͖΋͍͍ͪʯ
    (by Rubyͷύύ)

    Rails͸Rubyͷָ͠͞ΛWEB
    ͷੈքʹ·Ͱ޿͛ͯ͘ΕΔ࿮
    ૊Έ

    ؾ࣋ͪΑʙ͘WEBΞϓϦ͕࡞
    ΕͪΌ͏

    View Slide

  25. Ṷ͔Δ

    ਺ଟ͘ͷιϑτ΢ΣΞΛ

    ੜΈग़͠ɺϏδωεΛճ͢
    ݪಈྗʹ

    View Slide

  26. RailsͰ࡞ΒΕͨϓϩμΫτͨͪ

    Twitter, GitHub,
    Basecamp, Airbnb, Uber,
    etc.

    ΫοΫύουɺ৯΂ϩάɺ
    MoneyforwardɺͳͲͳͲ

    View Slide

  27. ಛʹςΫϊϩδʔελʔτΞο
    ϓʹͱͯ΋ॏๅ͞ΕΔ

    ϓϩάϥϚʔ1ਓ͔2ਓ͙Β͍
    Ͱ࢝ΊΒΕͨΓ͢Δ

    ·͞ʹRuby/Rails͸

    ελʔτΞοϓʹ͏͚ͬͯͭ

    View Slide

  28. Rails͸ੈքΛม͑ͨ

    Ruby / RailsͰ࡞ΒΕͨιϑτ΢Σ
    Ξʹ͸஌Βͣ஌Βͣͷ͏ͪʹ୭΋͕
    ຖ೔৮͍ͬͯΔ͸ͣ

    ͜͏ͯ͠ɺϓϩάϥϚʔ͚ͩͰͳ
    ͘ɺੈͷதશମʹେ͖ͳมֵΛ΋ͨ
    Β͍ͯ͠Δ

    View Slide

  29. ౰વɺձ͕ࣾṶ͔Ε͹

    ϓϩάϥϚʔ΋Ṷ͔Δ

    View Slide

  30. ϓϩάϥϚʔʹͱͬͯ͸ɺ

    Rubyͷͤ͘ʹ࢓ࣄʹͳΔ

    ͳΜͱɺன͔ؒΒRubyΛΩϝͳ͕Β͓
    ۚ·Ͱ΋Β͑Δͱ͍͏ఱࠃͷΑ͏ͳঢ়
    گ͕౸དྷ

    ࿑ಇ == ͭΒ͍ɺͱ͍͏ط੒֓೦ͷഁյ
    ͕΋ͨΒ͞Εͨ

    ͜Ε͸Ϡό͍

    View Slide

  31. ͱ͜ΖͰɺ"Ruby on Rails"ͬͯ
    Α͘ߟ͑Δͱมͳ໊લͩΑͶʁ

    View Slide

  32. ٯͰ͸ʁͬͯࢥ͍·͢ΑͶʁ

    RubyͰ࡞ͬͨʮRailsʯͬ
    ͍ͯ͏໊લͷιϑτ΢ΣΞ
    ͳΜ͔ͩΒ "Rails on
    Ruby" ͳΜ͡Όͳ͍ͷʁ

    View Slide

  33. "Ruby on Rails"ʹ

    ࠐΊΒΕͨҙຯ

    DHH͕ෑ͍ͨϨʔϧʹ৐
    ͤͯΈΜͳͷݩʹRubyͷ
    ָ͠͞ɾੜ࢈ੑΛӡΜͰ͘
    ΕΔΠϯϑϥ

    View Slide

  34. Rails͸͜ͷઌͲ͏ͳΔͷ͔ʁ

    ઌि͙Β͍͔Βόʔδϣϯ6.0Λ։ൃத

    ৗʹ࠷৽ͷϑϨʔϜϫʔΫͰ͋Δ͜ͱΛࢤ޲͍ͯ͠
    ΔͷͰɺݹ͘ͳΒͳ͍

    ࠓͷͱ͜ΖRailsʹऔͬͯ୅ΘΔଘࡏ͸ݟ౰ͨΒͳ͍

    Webͦͷ΋ͷ͕׬શʹഇΕΔ·Ͱ͸WEBͷੈքͰ
    ͸͜ͷ··ઈରউऀͰ͋Γଓ͚ΔͷͰ͸

    ͋ͱ25೥͸͍͚ΔΜ͡Όͳ͍͔

    View Slide

  35. ࠓޙͱ΋ϤϩγΫʂ

    ͜Ε͔Β΋ɺRails͸มΘΓଓ
    ͚·͢ɻ

    Rails͸ੈͷதΛม͑ଓ͚·
    ͢ɻ

    Ҿ͖ଓ͖͝ظ଴͍ͩ͘͞ʂ

    View Slide