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

Guessing the future of Rails from what DHH said

Guessing the future of Rails from what DHH said

Masafumi Okura

August 28, 2021
Tweet

More Decks by Masafumi Okura

Other Decks in Technology

Transcript

  1. #rg_gathering_jp
    DHHͷൃݴ͔ΒݟΔRailsͷকདྷ
    େ૔խ࢙ʢOKURA Masafumiʣ

    View Slide

  2. #rg_gathering_jp
    ࣗݾ঺հ
    🌟໊લɿେ૔խ࢙


    🌟ॴଐɿϑϦʔϥϯε


    🌟RailsGirlsͱͷؔΘΓɿίʔνΛ10ճͪΐͬͱʢ౦ژɾઋ୆ɾѪ
    ඤɾԭೄʣ


    🌟՝֎׆ಈɿOSSʢAlbaͳͲʣɺΧϯϑΝϨϯεͰͷొஃ
    ʢRubyConfͳͲʣɺίϛϡχςΟӡӦʢGrow.rbͱ
    Entaku.rbʣɺΧϯϑΝϨϯεʢKaigi on RailsʣӡӦͳͲ

    View Slide

  3. #rg_gathering_jp
    ͓஌Βͤ
    🌟Kaigi on Rails͸10݄22೔,23೔ʹ։࠵͞Ε·͢ʂ


    🌟ࢀՃඅ͸ແྉͳͷͰ͓ؾܰʹࢀՃͯ͠Ͷʂ


    🌟ϓϩϙʔβϧ͕ͳ͍ͱΠϕϯτ͕੒ཱ͠ͳ͍ͷͰདྷ೥΋ΑΖ͘͠ʂ

    View Slide

  4. #rg_gathering_jp
    ࠓ೔࿩͢͜ͱ
    🌟ʮDHHͷൃݴ͔ΒݟΔRailsͷকདྷʯ


    🌟ઌ೔ͷΠϕϯτͰDHHͱ௚ʹ࿩͢ػձ͕͋ͬͨͷͰɺࣗ෼ͳΓ
    ʹDHHͷൃݴΛߟ࡯ͯ͠ΈΔ


    🌟ʮFireside Chat with DHH - The Global Dev Study #3ʯ

    View Slide

  5. #rg_gathering_jp
    ஫ҙ఺
    🌟ӳޠͰͷձ࿩ͩͬͨͷͰɺ୯ޠ୯ҐͰਖ਼֬ͳҾ༻Ͱ͸ͳ͍Ͱ͢


    🌟ग़యΛ໌ࣔͰ͖ͳ͍΋ͷ͕͋Γ·͢

    View Slide

  6. #rg_gathering_jp

    View Slide

  7. #rg_gathering_jp
    Conceptual compression

    View Slide

  8. #rg_gathering_jp
    ֓೦ͷѹॖ
    🌟https://m.signalvnoise.com/conceptual-compression-means-
    beginners-dont-need-to-know-sql-hallelujah/


    🌟ྫ͑͹ActiveRecord͕SQLΛந৅Խ͢Δ͜ͱͰ։ൃऀ͸SQLΛ஌
    Βͳͯ͘΋։ൃ͕Ͱ͖Δ


    🌟ϝʔϧૹ৴ʹ͍ͭͯ஌Βͳͯ͘΋ActionMailerͰϝʔϧૹ৴͕
    Ͱ͖Δ


    🌟WebSocketʹ͍ͭͯ஌Βͳͯ͘΋ActionCableͰ…

    View Slide

  9. #rg_gathering_jp
    ʮ֓೦ͷѹॖͷ࠷ۙͷλʔήοτ
    ͸ϑϩϯτΤϯυ։ൃʯ

    View Slide

  10. #rg_gathering_jp
    ෳࡶԽ͢ΔϑϩϯτΤϯυ։ൃ΁ͷ൷൑
    🌟https://twitter.com/dhh/status/1258074299337826304?s=20


    🌟“We truly are living through the dark ages.”


    🌟ந৅౓ͷ௿͞


    🌟https://twitter.com/dhh/status/1334428951180173313?s=20


    🌟“A return to JavaScript that doesn’t require a horrendously
    complex tool chain and build tools is 😍”


    🌟πʔϧνΣΠϯͷෳࡶ͞

    View Slide

  11. #rg_gathering_jp
    ͞ΑͳΒWebpacker
    🌟Webpacker


    🌟Webpackͱ͍͏JavaScriptόϯυϥͷϥούʔ


    🌟Rails 6.0͔ΒσϑΥϧτ


    🌟https://github.com/rails/rails/pull/42999


    🌟Replace Webpacker with importmapped Hotwire as
    default JavaScript setup


    🌟Rails 7.0͔ΒWebpacker͸σϑΥϧτͰ͸ͳ͘ͳΔ

    View Slide

  12. #rg_gathering_jp
    importmap-railsͱ
    Hotwire

    View Slide

  13. #rg_gathering_jp
    importmap-rails
    🌟https://github.com/rails/importmap-rails


    🌟“you can build advanced Rails applications without
    Webpack, Yarn, NPM, or any other part of the JavaScript
    toolchain”

    View Slide

  14. #rg_gathering_jp
    hotwire-rails
    🌟https://github.com/hotwired/hotwire-rails


    🌟https://github.com/hotwired/turbo-rails


    🌟JavaScriptΛॻ͔ͳͯ͘΋SPAʢSingle Page
    ApplicationʣͬΆ͍΋ͷ͕࡞ΕΔ


    🌟https://github.com/hotwired/stimulus-rails


    🌟JavaScriptʹMVCͬΆ͍ΞϓϩʔνΛ࣋ͪࠐΉ

    View Slide

  15. #rg_gathering_jp
    Rails͸ݸਓ΍খ͞ͳνʔϜͷͨΊͷ
    ΋ͷ

    View Slide

  16. #rg_gathering_jp
    RailsυΫτϦϯ
    🌟https://rubyonrails.org/doctrine/


    🌟Majestic Monolith


    🌟Value integrated systems


    🌟Rails specifically seeks to equip generalist individuals to
    make these full systems.


    🌟RailsΛ࢖͑͹ݸਓͰϑϧػೳͷWebΞϓϦέʔγϣϯ͕࡞ΕΔʂ

    View Slide

  17. #rg_gathering_jp
    ·ͱΊ
    🌟࠷ۙͷRails͸ϑϩϯτΤϯυʹूதతʹऔΓ૊ΜͰ͍Δ


    🌟Importmap΍HotwireΛ௨ͯ͡ϑϩϯτΤϯυʹ͓͚Δʮ֓೦
    ͷѹॖʯΛࢼΈ͍ͯΔ


    🌟ʮ֓೦ͷѹॖʯͷ݁Ռɺݸਓ։ൃऀ͕ϑϩϯτΤϯυ΋ؚΊͨ
    WebΞϓϦέʔγϣϯͷશͯͷଆ໘ΛΧόʔͰ͖ΔΑ͏ʹͳΔ
    ʢ͜ͱ͕ظ଴͞ΕΔʣ

    View Slide