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
A technique to implement DSL in Ruby
Search
Masafumi Okura
May 14, 2022
Programming
0
1.5k
A technique to implement DSL in Ruby
https://techfeed.io/events/techfeed-conference-2022
Masafumi Okura
May 14, 2022
Tweet
Share
More Decks by Masafumi Okura
See All by Masafumi Okura
Why did my proposals get rejected?
okuramasafumi
1
470
A suggestion for the future of RDoc
okuramasafumi
1
69
15 JSON serializers for Ruby
okuramasafumi
2
120
Tech Events, Should We See Them from the Outside or the Inside?
okuramasafumi
1
44
Creating gems 101
okuramasafumi
1
84
How NOT to make your DSL terrible
okuramasafumi
0
310
オブジェクトしこう
okuramasafumi
2
220
Debugging Alba
okuramasafumi
1
200
Learning Ruby
okuramasafumi
5
570
Other Decks in Programming
See All in Programming
17年周年のWebアプリケーションにTanStack Queryを導入する / Implementing TanStack Query in a 17th Anniversary Web Application
saitolume
0
250
Fibonacci Function Gallery - Part 1
philipschwarz
PRO
0
210
複雑な仕様に立ち向かうアーキテクチャ
myohei
0
170
「とりあえず動く」コードはよい、「読みやすい」コードはもっとよい / Code that 'just works' is good, but code that is 'readable' is even better.
mkmk884
3
230
20年もののレガシープロダクトに 0からPHPStanを入れるまで / phpcon2024
hirobe1999
0
460
PSR-15 はあなたのための ものではない? - phpcon2024
myamagishi
0
110
創造的活動から切り拓く新たなキャリア 好きから始めてみる夜勤オペレーターからSREへの転身
yjszk
1
130
競技プログラミングへのお誘い@阪大BOOSTセミナー
kotamanegi
0
360
Cloudflare MCP ServerでClaude Desktop からWeb APIを構築
kutakutat
1
540
Refactor your code - refactor yourself
xosofox
1
260
モバイルアプリにおける自動テストの導入戦略
ostk0069
0
110
rails stats で紐解く ANDPAD のイマを支える技術たち
andpad
1
290
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Code Review Best Practice
trishagee
65
17k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Navigating Team Friction
lara
183
15k
Into the Great Unknown - MozCon
thekraken
33
1.5k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Faster Mobile Websites
deanohume
305
30k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
32
2.7k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
Transcript
0,63".BTBGVNJ %4-Λ࡞Δͱ͖ʹศརͳςΫχ οΫ!3VCZ 3VCZͷ্ڃςΫχοΫ
ҙɿૣޱͰ͢ɻ εϥΠυޙͰ্͛·͢ɻ ͝ҙݟ͝ײνϟοτ͔5XJUUFSͰɻ
ࣗݾհ !PLVSBNBTBGVNJ w ໊લɿେխ࢙ w ॴଐɿϑϦʔϥϯε w ׆ಈɿ,BJHJPO3BJMTͱ͍͏ΧϯϑΝϨϯεͷνʔϑΦʔΨφΠβʔͳͲ w 044ɿ"MCBʢ+40/γϦΞϥΠβ࣮ʣͳͲ
w ৄࡉIUUQTUFDIGFFEJPQFPQMF!PLVSBNBTBGVNJ
3VCZͱ͍͑ɺ%4-
3BLF 34QFD 4JOBUSB FUD
%4-Λศརʹॻ͘ํ๏Λ͝հ
ࠓճऔΓ্͛Δͷͪ͜Β
ࣗ࡞ͷΫϥεʹϚΫϩͬΆ͘ॻ ͍͍ͯ͘λΠϓʢΫϥεϚΫϩʣ
͍ํ
ಈ͖ͷ֓ཁ Ϣʔβʔઢ w Ϟδϡʔϧʢ͜͜ͰA"MCB3FTPVSDFAʣΛJODMVEF͢ΔͱΫϥε ϝιουʢΫϥεϚΫϩʣ͕Ճ͞ΕΔ w Ճ͞ΕͨΫϥεϝιουʢ͜͜ͰABUUSJCVUFTAͳͲʣΛݺͿ͜ ͱͰΫϥε෦ʹใ͕ੵ͞ΕΔ w Πϯελϯεϝιουʢ͜͜ͰATFSJBMJ[FAʣΛݺͿ͜ͱͰɺੵ
͞ΕͨใͱҾͷΦϒδΣΫτʢ͜͜ͰAVTFSAʣ͔ΒಘΒΕ ͨใͱ߹Θͤͯతͷ+40/Λऔಘ͢Δ
෦ͷಈ࡞ ࣮ࡍͷίʔυޙͰڞ༗͢ΔࢀߟࢿྉΛݟͯͶ w ϞδϡʔϧAJODMVEFEAϑοΫΛఆٛ͠ɺͦͷதͰΠϯελϯεϝιο υͱΫϥεϝιουΛಉ࣌ʹՃ͠͞ΒʹԼهͷΫϥεΠϯελϯεม ͷॳظΛઃఆ͢Δ w Ճ͞ΕͨΫϥεϝιουΛݺͿͱΫϥεΠϯελϯεมʢ3VCZͰ ΫϥεΦϒδΣΫτͳͷͰΠϯελϯεมΛ࣋ͯΔʣ͕ઃఆ͞ΕΔ w
ΫϥεͷAJOJUJBMJ[FAϝιουͰࣗͷΫϥεʹઃఆ͞Ε͍ͯΔΫϥε ΠϯελϯεมΛऔΓग़͠ɺΠϯελϯεͷΠϯελϯεมʹઃఆ ͢Δ
՝
ઃఆ͢Δ͖ΫϥεΠϯελϯε มͷ߲ͱॳظ͕ࢄΒΔ
ΫϥεͷܧঝΛߟ͑Δͱ͞Βʹ ͍͜͠
ΫϥεΠϯελϯεม͕ؔΘΔՕॴ w "MCB3FTPVSDF͕JODMVEF͞Εͨͱ͖ʹݩΫϥεʹΫϥεΠϯελ ϯεมΛॳظͱͱʹઃఆ w "MCB3FTPVSDFΛJODMVEFͨ͠Ϋϥε͕ΠϯελϯεԽ͞Εͨͱ͖ ʹΫϥεͷΫϥεΠϯελϯεมΛΠϯελϯεͷΠϯελϯε มʹઃఆ w "MCB3FTPVSDFΛJODMVEFͨ͠ΫϥεΛܧঝͨ͠ͱ͖ɺΫϥεͷ
ΫϥεΠϯελϯεมΛࢠΫϥεʹίϐʔ
ղܾࡦ
ࠓͷςΫχοΫ ఆΛ͓͏ฤ w ࢄΒͬͨใΛू͢ΔͷʹఆΛ͏ w 3VCZͷఆൣғ͔ΒࢀরՄೳͰɺωετͨ͠ϋογϡͷΑ͏ͳ ෳࡶͳߏΛอ࣋Ͱ͖ΔͷͰศར w ఆʹ֨ೲ͞ΕͨॳظΛઃఆ͍ͨ͠߹ɺADMPOFA·ͨAEVQAΛ Θͳ͍ͱෳͷΦϒδΣΫτ͕ಉҰͷϝϞϦྖҬΛࢀরͨ͠Γมߋ
ͨ͠Γͯ͠όάʹͳΔͷͰؾΛ͚ͭΑ͏ w
ࠓͷςΫχοΫʢʣ ϝλϓϩάϥϛϯάฤ w େྔͷΠϯελϯεมΛઃఆ͍ͨ͠ͱ͖ϧʔϓͷதͰ AJOTUBODF@WBSJBCMF@TFUA͢Δͱศར w AJODMVEFEAͱAJOIFSJUFEAϑοΫΛΈ߹ΘͤΔ͜ͱͰ͍উखͷ ྑ͍%4-ΛఏڙͰ͖Δ
3VCZͰָ͍͠%4-ϥΠϑΛʂ
ࢀߟࢿྉ w IUUQTHJUIVCDPNPLVSBNBTBGVNJBMCB