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
What's a well-behaved Rails extension gem?
Search
Shinichi Maeshima
September 06, 2025
Technology
0
600
What's a well-behaved Rails extension gem?
ながらRuby会議01
https://regional.rubykaigi.org/nagara01/
でのスポンサーLT資料です
Shinichi Maeshima
September 06, 2025
Tweet
Share
More Decks by Shinichi Maeshima
See All by Shinichi Maeshima
メタプログラミングRuby問題集の活用
willnet
2
790
rails g authenticationから学ぶRails8.0時代の認証
willnet
5
3.7k
Sidekiq vs Solid Queue
willnet
14
13k
どうしてこうなった?から理解するActive Recordの関連の裏側
willnet
6
1.6k
Exceptional Rails
willnet
6
7.9k
Breaking the Flaky Test Cycle
willnet
2
2.3k
mrskで広がるインフラの選択肢
willnet
1
1.1k
アプリケーションを長期にわたって無理なく運用するためのたったひとつの方法
willnet
2
2.2k
HotwireからDHHが考えるこれからのRailsとJSの付き合い方を知る
willnet
14
14k
Other Decks in Technology
See All in Technology
探求の技術
azukiazusa1
7
1.9k
エンジニアにとってコードと並んで重要な「データ」のお話 - データが動くとコードが見える:関数型=データフロー入門
ismk
0
510
ステートレスなLLMでステートフルなAI agentを作る - YAPC::Fukuoka 2025
gfx
8
1.2k
[CV勉強会@関東 ICCV2025 読み会] World4Drive: End-to-End Autonomous Driving via Intention-aware Physical Latent World Model (Zheng+, ICCV 2025)
abemii
0
140
Introducing RFC9111 / YAPC::Fukuoka 2025
k1low
1
230
「データ無い! 腹立つ! 推論する!」から 「データ無い! 腹立つ! データを作る」へ チームでデータを作り、育てられるようにするまで / How can we create, use, and maintain data ourselves?
moznion
7
4.1k
AIでテストプロセスを自動化しよう251113.pdf
sakatakazunori
0
130
これからアウトプットする人たちへ - アウトプットを支える技術 / that support output
soudai
PRO
18
5.4k
嗚呼、当時の本番環境の状態で AI Agentを再評価したいなぁ...
po3rin
0
410
エンジニア採用と 技術広報の取り組みと注力点/techpr1112
nishiuma
0
140
Amazon ECS デプロイツール ecspresso の開発を支える「正しい抽象化」の探求 / YAPC::Fukuoka 2025
fujiwara3
12
2.4k
仕様は“書く”より“語る” - 分断を超えたチーム開発の実践 / 20251115 Naoki Takahashi
shift_evolve
PRO
1
640
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
76
5.1k
Visualization
eitanlees
150
16k
RailsConf 2023
tenderlove
30
1.3k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
Git: the NoSQL Database
bkeepers
PRO
432
66k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.2k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
192
56k
Facilitating Awesome Meetings
lara
57
6.6k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
Why You Should Never Use an ORM
jnunemaker
PRO
60
9.6k
Music & Morning Musume
bryan
46
6.9k
Transcript
© SmartHR, Inc. 1 8IBUTBXFMMCFIBWFE3BJMTFYUFOTJPOHFN ͳ͕Β3VCZձٞεϙϯαʔ-5 લౡਅҰ !XJMMOFU 4NBSU)3ٕज़ސ
2025/09/06
͜ͷൃදͷ༰ w ͳ͕Β3VCZձٞͷϓϩϙʔβϧʹग़ ͨ͠ͷͷ͋͑ͳ͘མબͨ͠༰Ͱ͢ w 4NBSU)3ࣾͷεϙϯαʔ-5ΛΘͤ ͍͍ͯͨͩͯॖ൛Λ͠·͢ 2
લౡਅҰ !XJMMOFU ࣗݾհ גࣜձࣾ4NBSU)3Λ͡Ίͱͯ͠ෳࣾͰ ٕज़ސΛͯ͠·͢ ࠓ4NBSU)3ͷࢠΛඃ͍ͬͯ·͢ύʔ ΧʔΛண͍ͯ·͢
4NBSU)3ͰΤϯ δχΞΛืू͍ͯ͠ ·͢ʂʂʂʂʂʂ 4
ϑϧϦϞʔτϫʔΫ ͳͷͰذෞ͔ΒͰ ࣄͰ͖·͢ʂʂʂ 5
4NBSU)3ͷݸਓతͳΦε εϝϙΠϯτͪΌΜͱ͠ ͯΔͱ͜ΖͰ͢ ྫࣾ -5ձΛۀ࣌ؒதʹΔ 6
ͪΐͬͱฉ͍ͯΈ͍ͨͳʙ ͱ͍͏ͻͱ4NBSU)3ύʔ Χʔண͍ͯΔͻͱʹؾܰʹ ͔͚͍ͯͩ͘͠͞ʂʂʂ 7
None
ࠓ3BJMTΛ֦ு͢ΔHFN͕कΔ ͖͓࡞๏ʹ͍ͭͯ͠·͢
͓࡞๏ͬͯͳʹʁ ʮ3BJMTͷίϯϙʔωϯτ FY "DUJPO$POUSPMMFS#BTF Λ֦ு͢Δ ͱ͖ʹ"DUJWF4VQQPSUPO@MPBEΛ ར༻ͯ͠Ԇ࣮ߦ͢͠ʯ 10
ͭ·Γ 11
"DUJWF4VQQPSUPO@MPBEͱ w Ҿͷίϯϙʔωϯτ FY "DUJPO$POUSPMMFS#BTF ͕ϩʔυ͞ΕΔλΠ ϛϯά·ͰॲཧΛԆͤ͞Δϝιου w ରίϯϙʔωϯτ͕ಡΈࠐ·ΕͨޙͰ "DUJWF4VQQPSUPO@MPBEΛ࣮ߦͨ͠Βϒϩο
Ϋଈ࣮ߦ͞ΕΔ 12
ͳͥ"DUJWF4VQQPSUPO@MPBEΛ࣮ߦ͠ͳ ͚Ε͍͚ͳ͍ͷ͔ʁ ͓࡞๏௨Γॻ͔ͳ͍ͱద༻ͨͭ͠ Γͷઃఆ͕༗ޮʹͳΒͳ͍͔͠Ε ͳ͍ 13
લఏ3BJMTBQQMJDBUJPODPOGJHͷઃఆ ΰʔϧ͡Όͳ͍ w 3BJMTBQQMJDBUJPODPOGJHͷઃఆΛ֤ίϯϙʔω ϯτͷઃఆʹө͢Δ͜ͱͰॳΊͯద༻͞ΕΔ w 3BJMT SBJMUJFT ͋͘·Ͱ֤ίϯϙʔωϯτΛͭ ͳ͛ΔׂͰ͋Γɺίϯϙʔωϯτࣗମಠཱ
͍ͯ͠Δ w 3BJMTͷॳظԽ࣌ʹઃఆͷөͷొ͕ߦΘΕΔ 14
ίʔυྫ 15
ॳظԽॲཧͷॱ൪ DPOGJHBQQMJDBUJPOSC ֤ίϯϙʔωϯτͷઃఆө DPOGJHJOJUJBMJ[FST SC 16
લఏઃఆͷө֤ίϯϙʔωϯτ ΛԆϩʔυ͢ΔલఏͰ࡞ΒΕ͍ͯΔ w "DUJWF4VQQPSUPO@MPBEͰίϯϙʔωϯτ͕ ϩʔυ͞ΕͨλΠϛϯάʹҰؾʹઃఆΛద ༻͢Δߏʹͳ͍ͬͯΔ w ίϯϙʔωϯτͷϩʔυλΠϛϯά3BJMT ॳظԽ͕Ұ௨ΓऴΘͬͨޙΛఆ͍ͯ͠Δ 17
͜͜Ͱ͕Δ 3BJMTΛ֦ு͢ΔHFN͕࣍ͷΑ͏ʹ "DUJPO$POUSPMMFS#BTF ΛԆϩʔυ͠ͳ͍ͱʜʁ 18
DPOGJHJOJUJBMJ[FST SC࣮ߦલʹ֤ ίϯϙʔωϯτͷઃఆ͕ө͞ΕΔ DPOGJHBQQMJDBUJPOSC ֤ίϯϙʔωϯτͷઃఆө DPOGJHJOJUJBMJ[FST SC
͜͜Ͱ DPOGJHBDUJPO@DPOUSPMMFSBMMPX@EFQSFDBUFE@ QBSBNFUFST@IBTI@FRVBMJUZͳͲΛઃఆͯ͠ ৼΔ͍มΘΒͳ͍ 19
DPOGJHJOJUJBMJ[FST SCSBJMTΛΞοϓάϨʔ υ͢Δͱ͖ʹΑ͘ΘΕΔ CJOSBJMTBQQVQEBUFͱ͢Δͱ DPOGJHJOJUJBMJ[FST OFX@GSBNFXPSL@EFGBVMUT@9@:SCͳϑΝΠ ϧ͕࡞ΒΕͯɺஈ֊తʹ৽͍͠3BJMTͷσ ϑΥϧτઃఆʹΓସ͑ͯ͘͘͢͠ΕΔ 20
͔͓͠͠࡞๏ʹଇ͍ͬͯͳ͍HFNΛ͍ͬͯΔͱ ઃఆ͕ͨͣ͠Ͱ͖ͯͳ͍ɺͳΜ ͰʁͱͳΔ 21
͕͍ࣗͬͯΔ3BJMTΞϓϦέʔγϣϯʹ͓࡞๏ʹ ଇ͍ͬͯͳ͍HFN͕͋Δ͔Ͳ͏͔Λผ͢Δͷ͍͠ (FNGJMFMPDLΛݟΔͱݸҎ্ͷ HFNΛ͍ͬͯΔͳΜͯβϥ 22
ͦ͜Ͱࣗಈݕग़Ͱ͖ΔHFNΛ࡞Γ·ͨ͠ XJMMOFUBOUJ@NBOOFS@LJDL@DPVSTF 23
͍ํ w (FNGJMFͷҰ൪্ʹHFNlB OUJ@NBOOFS@LJDL@DPVSTFzΛՃ w SVCPDPQͷ#VOEMFS0SEFSFE(FNTDPQ͕ ༗ޮͳͱ͖ʹҰ൪্ʹདྷΔΑ͏ʹ໊લ Λ͍ͯ͠·͢ w "/5*@."//&3SBJMTCPPUΛ࣮ߦ͢Δ
24
3BJMTΛ֦ு͢ΔHFN։ൃऀ͕͓࡞๏ʹ४͡ ͍ͯΔ͔ςετ͢Δํ๏༻ҙ͍ͯ͠·͢ 25
͓࡞๏ʹ४͍ͯ͡ͳ͍HFNΛݟ͚ͭ ͨΒ0,Ͱͳ͍ HFNଆΛ͞ͳ͍ͱ͍͚ͳ͍ 26
ݸਓతʹͰ͖ΔൣғͰͬͯ·͢ w 13ҰൃͰͲ͏ʹ͔ͳΒͳ͍͜ͱଟ͍ͷͰಓʹͬͯ·͢ w TFFEGVHFNެࣜͤͳ͔ͬͨͷͰGPSLͨ͠IUUQT HJUIVCDPNXJMMOFUTFFEEP w IFBMUI@DIFDLHFN$*Λ͍ͯ͠·͢IUUQTHJUIVCDPN 1VSQMF%FWTIFBMUI@DIFDLQVMM w
TPSDFSZHFNϝϯςφʹͳͬͯվળதIUUQTHJUIVCDPN 4PSDFSZTPSDFSZ 27
ؒΛืू͍ͯ͠·͢ ࣗͷ୲ϓϩδΣΫτͰB OUJNBOOFS@LJDL@DPVSTFΛ࣮ߦ͢Δ ͓࡞๏ʹଇ͍ͬͯͳ͍HFN͕͋ͬͨΒί ϯτϦϏϡʔτ͢Δʂ 28
None