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
高度なUI/UXこそHotwireで作ろう Kaigi on Rails 2025
Search
Naofumi Kagami
September 26, 2025
Programming
4
9.4k
高度なUI/UXこそHotwireで作ろう Kaigi on Rails 2025
Naofumi Kagami
September 26, 2025
Tweet
Share
Other Decks in Programming
See All in Programming
0→1 フロントエンド開発 Tips🚀 #レバテックMeetup
bengo4com
0
480
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
360
20251212 AI 時代的 Legacy Code 營救術 2025 WebConf
mouson
0
240
.NET Conf 2025 の興味のあるセッ ションを復習した / dotnet conf 2025 quick recap for backend engineer
tomohisa
0
110
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
1.4k
Claude Codeの「Compacting Conversation」を体感50%減! CLAUDE.md + 8 Skills で挑むコンテキスト管理術
kmurahama
1
720
re:Invent 2025 トレンドからみる製品開発への AI Agent 活用
yoskoh
0
620
ゆくKotlin くるRust
exoego
1
200
大規模Cloud Native環境におけるFalcoの運用
owlinux1000
0
250
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
260
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.3k
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
160
Featured
See All Featured
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
140
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
790
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
410
The SEO identity crisis: Don't let AI make you average
varn
0
47
So, you think you're a good person
axbom
PRO
1
1.9k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Bash Introduction
62gerente
615
210k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
4 Signs Your Business is Dying
shpigford
187
22k
Un-Boring Meetings
codingconduct
0
180
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
180
Transcript
Ճʑඒ࢙!OBPGVNJ ,BJHJPO3BJMT ߴͳ6*69ͦ͜ )PUXJSFͰ࡞Ζ͏
(JUIVCOBPGVNJ ༀاۀͰόΠΦܥݚڀऀ όΠΦؔ࿈ϚʔέςΟϯά ʹόΠΦܥϝσΟΞ 3BJMT Ͱىۀ ΦϨΦϨ41"ϑϨʔϜϫʔΫ ,BNJTIJCBJKT όΠΦؔ࿈ηʔϧε όΠΦༀཧ
͔ΒϑϦʔϥϯε 3BJMT !OBPGVNJ
K2VFSZͰ;FOOͷ τοϓΛऔͬͨΓ ͍ͪૣ͘,BNBMΛਪͨ͠Γ
3FBDUΛ3BJMTʹ౷߹͢Δํ๏Λ HFNʹͨ͠Γ ϑϩϯτΤϯυϦϓϨΠεͷ ϓϩδΣΫτʹ͍ͭͯޠͬͨΓ
ϑϩϯτΤϯυ 3BJMT ΤϯδχΞ )PUXJSFਪ͠ͷ
/FYUKTΞϓϦΛ ,BNBMͰσϓϩΠ "1*SPVUFT্ͷ&+4Ͱ )PUXJSFΛՔಇ /FYUKT3FBDUͱ)PUXJSFͰ ಉ͡6*Λ࡞͠ɺσϞͱղઆ /FYUKTWT)PUXJSF IUUQTIPUXJSFOOFYUDBTUMFDPN
3BJMTΞϓϦΛ ,BNBMͰσϓϩΠ )PUXJSFʹ͍ͭͯࢥͬͨ͜ͱ ίʔυྫͱσϞ ߟ͑ํ )PUXJSFΑ· IUUQTIPUXJSFBOFDEPUBDBTUMFDPN
ͦͦ)PUXJSFͬͯͳʹʁ
ೆేཚΕΔ࣌ ేݱΔ 3FBDU )PUXJSF
None
)PUXJSF 4UJNVMVTΠϕϯτॲཧΛఆܕԽɾ؆ུԽ K2VFSZϕετϓϥΫςΟε ϥΠϑαΠΫϧΈ͍ͨͳײ͡ 5VSCPαʔό௨৴Λ؆ུԽɾ࠷దԽ
3FBDU ͑ͯεςʔτҰຊʹߜΔ 0OFXBZEBUBqPXΛڧ੍ εςʔτ%0.Λ࠷దԽ IUUQTKBSFBDUEFWMFBSOUIJOLJOHJOSFBDU 3FBDUͷྲّྀ
3FBDU ͑ͯεςʔτҰຊʹߜΔ 0OFXBZEBUBqPXΛڧ੍ εςʔτ%0.Λ࠷దԽ IUUQTKBSFBDUEFWMFBSOUIJOLJOHJOSFBDU 3FBDUͷྲّྀ ଞͷબࢶΛࣺͯͨ ͷ͕ಛ
)PUXJSF εςʔτΛ͍͍ͨ࣌ 4UJNVMVTͷWBMVFTUBUF͕ศར εςʔτߋ৽ εςʔτߋ৽ εςʔτߋ৽
IUUQTTUJNVMVTIPUXJSFEEFWSFGFSFODFWBMVFT
)PUXJSFϞʔμϧ +4ͳ͠ɺͦΕͱ͋Γ )PUXJSF5VSCP 4UJNVMVT ແཧʹ+BWB4DSJQUΛলུͤͣɺΉ͠Ζੵۃతʹ+BWB4DSJQUΛ׆༻͢Δ ͬ ͞ Γ ײ
ࠓͷຊ
ʮཧը໘)PUXJSFͰ࡞Γɺ ɹϢʔβը໘3FBDUͰ࡞Ζ͏ʯ ͳ ͥ ʁ Α͘ฉ͘ݴ༿
)PUXJSFߴ։ൃͰ͖Δ͔Β ཧը໘͖ ͰෳࡶͰߴͳ6*693FBDU ͡Όͳ͚Ε࡞Εͳ͍ ຊ ʁ +40/"1*͍ Β ͳ
͍ ͠ ͦ Γ Ό ͦ ͏ ͩ Ͷ
ࠓͷ * )PUXJSF༗໊αΠτͷϢʔβը໘Ͱ༻͞Ε͍ͯΔ ͱ͍͏ࣄ࣮ ** /FYUKTΑΓ)PUXJSFͷํ͕ྑ͍6*69͕࡞Γ͍͢ ͱ͍͏ࣄ࣮ *** )PUXJSFͰෳࡶͳ6*͕࡞ΕΔͱ͍͏ࣄ࣮ ࡞Γํͷίπ
3VCZPO3BJMTͷੜՈ w ΠϯϥΠϯฤूͳͲΛ༻ w ߴͳը໘ભҠ #BTFDBNQ
ແ ྉ ϓ ϥ ϯ ʂ IUUQTCBTFDBN QDPN
IUUQTUFDIMJGFDPPLQBEDPN FOUSZ )PUXJSF
ࠓͷ * )PUXJSF༗໊αΠτͷϢʔβը໘Ͱ༻͞Ε͍ͯΔ ͱ͍͏ࣄ࣮ ** /FYUKTΑΓ)PUXJSFͷํ͕ྑ͍6*69͕࡞Γ͍͢ ͱ͍͏ࣄ࣮ *** )PUXJSFͰෳࡶͳ6*͕࡞ΕΔͱ͍͏ࣄ࣮ ࡞Γํͷίπ
3FBDUͱ&3# K2VFSZͷݟ͚ͬͯͭ͘ʁ ϨΨγʔϑϩϯτΤϯυΛ/FYUKTʹϦϓϨΠε ʮ։ൃੜ࢈ੑͷ্ʯΛײͤͯ͘͡͞Εͨͭͷ͜ͱ IUUQTMPHNJKQNBJOUFDIOPMPHZ ͘ࡏ੶͍ͯ͠ΔਓͰ ʮͬͯ͜͜3FBDUͩͬͨΜͩʯ ʮͬͯ͜͜3BJMTͩͬͨΜͩʯ Έ͍ͨͳձ͕ग़ͯ͘Δ ݟ͚͔ͭͳ͍Β͍͠ʂ
3FBDUͷϖʔδͱ3BJMTͷϖʔδ ͷݟ͚ํ
ҙ⚠ ͔͜͜ΒϑϩϯτΤϯυ༻ޠ͕ ͨ͘͞Μग़͖ͯ·͢
/FYUKTQBHFTSPVUFSͷ443͕ ͬ͞Γ͢ΔͷΑ͋͘Δ՝ )PUXJSF5VSCP%SJWF σϑΥϧτͰରࡦࡁΈ σϑΥϧτͷϩʔσΟϯά6* 483ܕͷΩϟογϡ ϖʔδભҠ IUUQTIPUXJSFOOFYUDBTUMFDPNBQJIPUXJSFVTFST
None
483 4UBMF8IJMF3FWBMJEBUF ܕΩϟογϡ ΩϟογϡͷΛղফ͠ɺ ྑ͍ͱ͜औΓΛͯ͘͠ΕΔ
෦తͳը໘ͷॻ͖͑ 1SFGFUDIޮ͍ͯψϧαΫ 5VSCP'SBNFT λϒϝχϡʔ IUUQTIPUXJSFOOFYUDBTUMFDPNBQJIPUXJSFUBCCFE@TFHNFOUT@UVSCPGSBNFT
/FYUKT1BSBMMFM3PVUFTͰλϒΛ࣮
)PUXJSF5VSCP'SBNFTͰλϒΛ࣮
)PUXJSF5VSCP'SBNFTͰλϒΛ࣮ λϒΛඇಉظͰ ࠩ͠ସ͑ 63-Λಉظͯ͠ ϒοΫϚʔΫՄೳ
සൟʹ͏6*69Ͱ )PUXJSFͷํ͕༏Ε͍ͯΔ
࡞Γࠐ·ͳ͍ݶΓ )PUXJSFͷํ͕6*69͕ྑ͍
ຊʹ6*69ͷͨΊʹ 3FBDUΛ͍ͬͯΔͷʁ
ຊʹ6*69ͷͨΊʹ 3FBDUΛ͍ͬͯΔͷʁ ϑϩϯτΤϯυͷϦϓϨΠεʹɺ͍ͭ·Ͱ͔͚ΔΜͩʁ %9 ࠾༻ͷ͜ͱ͔Γݴͬͯͳ͍ʁ
3BJMTϑϩϯτΤϯυͷ%9ͱݴ͑ .BSDP3PUI͞Μ IUUQTLBJHJPOSBJMTPSHUBMLTNBSDPSPUIEBZ
ࠓͷ * )PUXJSF༗໊αΠτͷϢʔβը໘Ͱ༻͞Ε͍ͯΔ ͱ͍͏ࣄ࣮ ** /FYUKTΑΓ)PUXJSFͷํ͕ྑ͍6*69͕࡞Γ͍͢ ͱ͍͏ࣄ࣮ *** )PUXJSFͰෳࡶͳ6*͕࡞ΕΔͱ͍͏ࣄ࣮ ࡞Γํͷίπ
3FBDUʹ͔͠Ͱ͖ͳ͍ෳࡶͳ6*ͳΒ )PUXJSFʹຒΊࠐΊྑ͍ ͍͟ͱͳͬͨΒ
w DPOOFDU EJTDPOOFDU w AEBUB WBMVFATUBUF w 7BMVF$IBOHFE
DBMMCBDLT ຒΊࠐΈ4UJNVMVTͷΦϋί طଘ%0.ͱ+BWB4DSJQUίϯϙʔωϯτΛ ಉظͤ͞Δͷಘҙதͷಘҙ IUUQTIPUXJSFBOFDEPUBDBTUMFDPNPUIFS@MJCSBSJFTDIBSUKTTUJNVMVT
3FBDUຒΊࠐΈ༻ϥΠϒϥϦΛͬͯྑ͍ IUUQTHJUIVCDPNTLSZVLPWUVSCPNPVOU
%BJDIJ,6%0͞Μ 8FC$PNQPOFOUTͰ࣮ݱ͢Δ)PUXJSFͱ ϑϩϯτΤϯυϑϨʔϜϫʔΫͷڮ͠ IUUQTLBJHJPOSBJMTPSHUBMLTLVEPBTEBZ
Ͱ࣮ࡍɺ)PUXJSF͚ͩͰ ෳࡶͳ6*69શવ࡞ΕΔ
ͦͦෳࡶͳ6*ͱʁ
ʮ)PUXJSFͰ ɹ͜͜·ͰͰ͖ΔΑʂʯ
"3FBDUؔͳ͍͡ΌΜʂ جຊ͡ΌΜͦΕͬʂ
ෳࡶͬΆ͍͚Ͳ؆୯ʹ࡞ΕΔ6* %BUFQJDLFS DPMPSQJDLFS EJBMPH QPQPWFS➜ϒϥβσϑΥϧτ͋Γ υϥοάˍυϩοϓ➜7BOJMMB+4ͷϥΠϒϥϦ͋Γ ϝχϡʔɺυϩοϓμϯɺίϯϘϘοΫεɺπʔϧνοϓͳͲ ➜7BOJMMB+4ͷϥΠϒϥϦ͋Γ όϦσʔγϣϯ➜ϒϥβωΠςΟϒ͋Γ ෳࡶͳ6*Λ୳͢ͷ݁ߏେม
7BOJMMB+4)FBEMFTT6*ϥΠϒϥϦ 5BJMXJOE1MVT&MFNFOUT IUUQTUBJMXJOEDTTDPNCMPHWBOJMMBKTTVQQPSUGPSUBJMXJOEQMVT
7BOJMMB+4ʹΑΔ )FBEMFTT6*ϥΠϒϥϦ ͷ৽ைྲྀ
3FBDU͕ಘҙͱ͢Δෳࡶͳ 6*69ͱԿʁ
IUUQTXXXZPVUVCFDPNXBUDI WQ%R+7E/B
3FBDUϦΞϧλΠϜ μογϡϘʔυ༻ʹ ੜ·Εͨ
(P'.FEJBUPSύλʔϯ 3FBDUTUBUFͱPOFXBZEBUB qPXʹΑΔNFEJBUPSΛڧ੍ +49ʹΑΓɺTUBUF͔ΒྲྀΕΔ એݴత6*Λఏڙ 3FBDUͷڧΈ
IUUQTSFGBDUPSJOHHVSVEFTJHOQBUUFSOTNFEJBUPS # εύήοςΟ (P'.FEJBUPS1BUUFSO 0OFXBZEBUBqPX
3FBDUόʔδϣϯ εςʔτϑϩϯτͰཧ )PUXJSF5VSCPόʔδϣϯ εςʔταʔόͰཧ 4UJNVMVTόʔδϣϯ εςʔτϑϩϯτͰཧ "QQMF4UPSFࣸ IUUQTIPUXJSFBOFDEPUBDBTUMFDPNFYBNQMFTTUPSF
None
εύήοςΟԽ ͍͢͠
3FBDU POFXBZ EBUBqPX
αʔόαΠυ Σϒ.7$ αʔόαΠυ.7$ POFXBZEBUBqPXʹ ͳΔ͔͠ͳ͍ 5VSCPNPSQIJOH༻ 3FBDUͷࠩݕग़ॲཧͬΆ͍
4UJNVMVT POFXBZ EBUBqPX
Πϕϯτϋϯυϥ ࠶ϨϯμϦϯά એݴత6*ߋ৽
None
)PUXJSFͰTUBUF͓Αͼ POFXBZEBUBqPXΛ͏ͱ ෳࡶͳ6*͕࡞Γ͍͢
)PUXJSFͰάϩʔόϧεςʔτཧ ;VTUBOEΛͬͯΈΔ
7BOJMMB+4Ͱ͑Δ άϩʔόϧεςʔτཧ 1VC4VCػೳ ;VTUBOE
IUUQTIPUXJSFBOFDEPUBDBTUMFDPNFYBNQMFTESBXFS
None
;VTUBOEͷTUPSF TMJEF%SBXFS4UPSF
4UJNVMVT$POUSPMMFS 4MJEF%SBXFS$POUSPMMFS
άϩʔόϧεςʔτͰͰ͖Δ͜ͱ ΫϥΠΞϯταΠυ͚ͩͰʮԼॻ͖ʯʮอଘʯػೳ
άϩʔόϧεςʔτͰͰ͖Δ͜ͱ ΫϥΠΞϯταΠυ͚ͩͰϚϧνεςοϓͷϑΥʔϜ
ࠓͷ * )PUXJSF༗໊αΠτͷϢʔβը໘Ͱ༻͞Ε͍ͯΔ ͱ͍͏ࣄ࣮ ** /FYUKTΑΓ)PUXJSFͷํ͕ྑ͍6*69͕࡞Γ͍͢ ͱ͍͏ࣄ࣮ *** গͳ͘ͱ3FBDUఔʹ ෳࡶͳ6*͕࡞ΕΔͱ͍͏ࣄ࣮
࡞Γํͷίπ
)PUXJSFͷ·ͱΊ ༗໊αΠτͷϢʔβ͚ը໘ʹ༻͞Ε͍ͯΔ සൟʹ༻͢Δ6*69Ͱͱͯ༏Ε͍ͯΔ 3FBDUͳΒͰͷෳࡶͳ6*69Λ୳ͯ͠Έ͕ͨʜ )PUXJSF$IBSUKT3FBDUΛ؆୯ʹຒΊࠐΊΔ )PUXJSFͰTUBUFΛҙࣝ͠ɺPOFXBZEBUBqPXΛ͏ͱྑ͍ 4UJNVMVTͷWBMVFTUBUFศརʂ ;VTUBOE͑Δʂ
+40/ جૅࣄ $ ࣮͕͜͜ ݁ߏෳࡶ
ʮཧը໘)PUXJSFͰ࡞Γɺ ɹϢʔβը໘)PUXJSFͰ࡞Ζ͏ʯ