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
Why doesn't Ruby have Boolean class - final version
okuramasafumi
0
230
Reading Rails 1.0 Source Code
okuramasafumi
0
250
RDoc meets YARD
okuramasafumi
4
170
Why doesn't Ruby have Boolean class?
okuramasafumi
0
20
My KaigiEffect at RubyKaigi 2025, part 1
okuramasafumi
1
52
Writing documentation can be fun with plugin system
okuramasafumi
0
210
Alba: Why, How and What's So Interesting
okuramasafumi
0
400
Why did my proposals get rejected?
okuramasafumi
1
730
A suggestion for the future of RDoc
okuramasafumi
1
400
Other Decks in Programming
See All in Programming
AIを活用し、今後に備えるための技術知識 / Basic Knowledge to Utilize AI
kishida
22
5.9k
OSS開発者という働き方
andpad
5
1.7k
テストコードはもう書かない:JetBrains AI Assistantに委ねる非同期処理のテスト自動設計・生成
makun
0
520
print("Hello, World")
eddie
2
530
Introducing ReActionView: A new ActionView-compatible ERB Engine @ Rails World 2025, Amsterdam
marcoroth
0
710
Navigating Dependency Injection with Metro
zacsweers
3
2.5k
MCPとデザインシステムに立脚したデザインと実装の融合
yukukotani
4
1.5k
「手軽で便利」に潜む罠。 Popover API を WCAG 2.2の視点で安全に使うには
taitotnk
0
870
go test -json そして testing.T.Attr / Kyoto.go #63
utgwkk
3
310
1から理解するWeb Push
dora1998
7
1.9k
Android 16 × Jetpack Composeで縦書きテキストエディタを作ろう / Vertical Text Editor with Compose on Android 16
cc4966
2
260
AIでLINEスタンプを作ってみた
eycjur
1
230
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
Scaling GitHub
holman
463
140k
Side Projects
sachag
455
43k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
GraphQLとの向き合い方2022年版
quramy
49
14k
Making Projects Easy
brettharned
117
6.4k
Music & Morning Musume
bryan
46
6.8k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.1k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
We Have a Design System, Now What?
morganepeng
53
7.8k
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ͬΆ͍ΞϓϦΛ࣮ݱ͢ΔͨΊ ͷπʔϧ • ࠓޙɺ྆ํ͕ྲྀߦΔͷ͔ɺͲͪΒ͔͕γΣΞΛऔΔͷ͔ɺͲͪΒ ΘΕͳ͍ͷ͔ɺ·ͩ୭ʹΘ͔Βͳ͍ • ؾʹͳΔਓཁνΣοΫͩʂ