Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Recent Rails movements in 15 minutes
Search
Masafumi Okura
February 24, 2021
Programming
0
110
Recent Rails movements in 15 minutes
Ruby on Rails及びその周辺技術は2021年になっても進化を続けています。特に近年は複数DB周りとフロントエンド関係で変化が顕著です。この発表ではそれらをまとめてご紹介します。
Masafumi Okura
February 24, 2021
Tweet
Share
More Decks by Masafumi Okura
See All by Masafumi Okura
Developing static sites with Ruby
okuramasafumi
0
330
Why doesn't Ruby have Boolean class - final version
okuramasafumi
0
350
Reading Rails 1.0 Source Code
okuramasafumi
0
320
RDoc meets YARD
okuramasafumi
4
200
Why doesn't Ruby have Boolean class?
okuramasafumi
0
37
My KaigiEffect at RubyKaigi 2025, part 1
okuramasafumi
1
84
Writing documentation can be fun with plugin system
okuramasafumi
0
230
Alba: Why, How and What's So Interesting
okuramasafumi
0
460
Why did my proposals get rejected?
okuramasafumi
1
800
Other Decks in Programming
See All in Programming
まだ間に合う!Claude Code元年をふりかえる
nogu66
5
900
「コードは上から下へ読むのが一番」と思った時に、思い出してほしい話
panda728
PRO
39
26k
PC-6001でPSG曲を鳴らすまでを全部NetBSD上の Makefile に押し込んでみた / osc2025hiroshima
tsutsui
0
190
20251212 AI 時代的 Legacy Code 營救術 2025 WebConf
mouson
0
220
ローカルLLMを⽤いてコード補完を⾏う VSCode拡張機能を作ってみた
nearme_tech
PRO
0
190
The Art of Re-Architecture - Droidcon India 2025
siddroid
0
140
ゲームの物理 剛体編
fadis
0
380
AIエンジニアリングのご紹介 / Introduction to AI Engineering
rkaga
8
3.4k
クラウドに依存しないS3を使った開発術
simesaba80
0
180
Go コードベースの構成と AI コンテキスト定義
andpad
0
140
re:Invent 2025 トレンドからみる製品開発への AI Agent 活用
yoskoh
0
480
Navigating Dependency Injection with Metro
l2hyunwoo
1
190
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
RailsConf 2023
tenderlove
30
1.3k
The browser strikes back
jonoalderson
0
220
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
0
67
Building Applications with DynamoDB
mza
96
6.9k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
57
40k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
120
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
0
200
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
Making Projects Easy
brettharned
120
6.5k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
340
Transcript
࠷ۙͷRailsࣄΛ15Ͱ͓͞ Β͍ ୈ28ճΏΔͪ.it OKURA Masafumi, 2021-02-24
ࣗݾհ • ໊લɿେխ࢙ʢ͓͓͘Β·͞;Έʣ • ॴଐɿϑϦʔϥϯε • ಘҙɿRubyͱRuby on Railsɺͪΐͬ͜ͱVim •
՝֎׆ಈɿ֤छొஃɺίϛϡχςΟӡӦʢܭ4ͭʣɺΧϯϑΝϨϯε ӡӦʢKaigi on RailsʣɺOSSʢgemΛܭ8ͭʣ
15
ࠓ͢͜ͱ • Rails 6.1Ͱೖͬͨػೳ • ߋʹਐΜͩෳDBରԠ • ActiveModel::ErrorͷΦϒδΣΫτԽ • etc.
• HotwireͱTurbo • StimulusReflexपล
ࠓͷτʔΫ୭͚ʁ • ࠷ۙRailsΛ͋·Γ৮͍ͬͯͳ͍ਓ • RailsΛ৽نҊ݅Ͱ࠾༻͠Α͏͔໎͍ͬͯΔਓ • RailsͱϑϩϯτΤϯυͷؔੑʹ͍ͭͯΓ͍ͨਓ
Rails 6.1
Rails 6.1 • 202012݄ϦϦʔε • ۄػೳਫฏγϟʔσΟϯάͳͲͷෳDBରԠ • ActiveModel::Errorؔͷඇޓͳมߋ • ࡉ͔ͳվྑ
Rails 6.1ʹ͓͚ΔෳDBରԠ • 6.0ͰύʔςΟγϣχϯά͕αϙʔτ͞Εͨ • 6.1ͰਫฏγϟʔσΟϯάαϙʔτ͞Εɺ͞Βʹศརʹ • Ϟσϧ͝ͱʹҟͳΔDBʹଓ͢Δ͜ͱՄೳʹ
ActiveModel::ErrorͷՃ • ैདྷ@model.errorsϝιουΤϥʔใؚ͕·ΕͨϋογϡΛฦ ͍͕ͯͨ͠ɺϋογϡͩͱѻ͍ͮΒ͞σʔλഁଛͷݒ೦͋ͬͨ • 6.1͔Βɺ@model.errorsϝιουActiveModel::ErrorΦϒδΣΫ τͷྻΛฦ͢Α͏ʹͳͬͨ • ৄࡉ https://youtu.be/FGhZR4ns_tc
ʢKaigi on RailsͰͷ࣮ऀͷ ൃදʣΛࢀর
࣍7.0ʹͳͬͨ • https://github.com/rails/rails/commit/ 1b455e2e9d6937d4107e19cb32e2f98aa08886b9 • ͳΜ͔Ͱ͔͍มߋ͕ೖΔΒ͍͠ʂ
Hotwire
Hotwire • https://hotwire.dev/ • RailsͷΦϦδφϧαʔϏεͰ͋ΔBasecampͷਓ͕ͨͪ࡞ͬͨɺ HTML Over The WireͷΦʔϓϯιʔε࣮ •
Heyͱ͍͏ϝʔϧαʔϏεͰ࣮ઓೖࡁΈ • TurboɺStimulusɺStradaͷ3ͭͷίϯϙʔωϯτͰߏ͞ΕΔ • ଞݴޠͩͱLivewireLiveviewͱݺΕΔͷ͕ࣅ͍ͯΔΒ͍͠
Turbo • JavaScriptͷهड़ྔΛ࠷খݶʹͭͭ͠ϢʔβʔମݧΛ্ͤ͞ΔͨΊ ͷϥΠϒϥϦ • DriveɺFramesɺStreamsɺNativeͷ4ͭͷίϯϙʔωϯτͰߏ͞Ε Δ • ͋Μ·ΓͪΌΜͱ৮Εͯͳ͍ͷͰղઆͰ͖ͳ͍…
Stimulus • ܰྔͳJavaScriptϑϨʔϜϫʔΫ • TurboͰΓͳ͍ͱ͖ʹStimulusͰJSΛॻ͘ɺͱ͍͏ΠϝʔδΒ͠ ͍ • CoCʢઃఆΑΓنʣͷΑ͏ͳRailsͬΆ͍Ξϓϩʔν͕ಛ
Strada • ະϦϦʔε • ϞόΠϧΞϓϦʹؔΘΔͷΒ͍͠
StimulusReflex
StimulusReflexʢҎԼ”SR”ʣ • https://docs.stimulusreflex.com/ • Hopsoftͱ͍͏ਓ͕ϝΠϯͰ։ൃ͍ͯ͠ΔΦʔϓϯιʔεͷRails͚ ϥΠϒϥϦ • WebSocketΛ׆༻ͯ͠HTMLΛॻ͖͑Δ • SPAͬΆ͍ΞϓϦΛJSΛॻ͔ͣʹ࡞ΕΔ͕ɺStimulusʹґଘ͍ͯ͠Δ
• Djangoͱ͔Ͱಈ͔͍ͯ͠Δਓ͍ΔΒ͍͠…ʁ
༨ஊ • SRΛ͍20ͰTwitterͬΆ͍ΞϓϦΛ࡞ΔϥΠϒίʔσΟϯά͕ۜ ࠲Rails#27ͰߦΘΕͨʢhttps://ginza-rails.connpass.com/event/ 193008/ʣ • ؆୯ͳը໘ಉظΛ࣮͍͚ͨͩ͠ͳΒ͜ΕͰेͰͱ͍͏࣮ײ • SRίϛϡχςΟ͕׆ൃʢDiscord1000ਓ͑ʂʣ •
࡞ऀ͔Βαϙʔτͯ͠Β͑Δ͔ʁ
पลٕज़ • CableReadyɿSRͷج൫ɺWebSocketʹσʔλΛྲྀ͠ࠐΉ • FuturismɿRailsͷύʔγϟϧΛActionCableͰඇಉظͰϨϯμʔ͢Δ • OptimismɿRailsͷόϦσʔγϣϯͱΤϥʔͷϨϯμϦϯάΛϦΞϧ λΠϜͰߦ͏ • ViewComponentReflexɿViewComponentͱ͍͏GitHubࣾʹΑΔ
ϏϡʔίϯϙʔωϯτϑϨʔϜϫʔΫͱSRΛΈ߹ΘͤͨϥΠϒϥϦ
HotwireͱSR͔Ϳͬͯͳ͍ʁ
͔ͿͬͯΔʂ
HotwireͱSRͷকདྷͲ͏ͳΔͷ͔ • Θ͔ΒΜʂ • HotwireActiveRecordͷCRUDίʔϧόοΫͱͷ૬ੑ͕ྑ͍ͷͱγ ϯϓϧͳͷ͕ڧΈͬΆ͍ • SRMorphͱ͍͏֓೦ʹΑΓԠ༻ൣғΛ͍͛ͯΔҹ • ͕ͬͭΓ͍ൺͯΈͨΘ͚Ͱͳ͍ͷͰݟ͕΄͍͠ͱ͜Ζ
·ͱΊ
Rails 6.1 • ෳDBରԠ͔ͳΓਐΜͩ • ErrorपΓͷඇޓʹҙ • ࣍Rails 7!
HotwireͱSR • ͲͪΒRailsϝΠϯʢগͳ͍JSʣͰSPAͬΆ͍ΞϓϦΛ࣮ݱ͢ΔͨΊ ͷπʔϧ • ࠓޙɺ྆ํ͕ྲྀߦΔͷ͔ɺͲͪΒ͔͕γΣΞΛऔΔͷ͔ɺͲͪΒ ΘΕͳ͍ͷ͔ɺ·ͩ୭ʹΘ͔Βͳ͍ • ؾʹͳΔਓཁνΣοΫͩʂ