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.6k
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
My KaigiEffect at RubyKaigi 2025, part 1
okuramasafumi
1
38
Writing documentation can be fun with plugin system
okuramasafumi
0
180
Alba: Why, How and What's So Interesting
okuramasafumi
0
370
Why did my proposals get rejected?
okuramasafumi
1
660
A suggestion for the future of RDoc
okuramasafumi
1
300
15 JSON serializers for Ruby
okuramasafumi
2
360
Tech Events, Should We See Them from the Outside or the Inside?
okuramasafumi
1
69
Creating gems 101
okuramasafumi
2
130
How NOT to make your DSL terrible
okuramasafumi
0
550
Other Decks in Programming
See All in Programming
FormFlow - Build Stunning Multistep Forms
yceruto
1
190
Systèmes distribués, pour le meilleur et pour le pire - BreizhCamp 2025 - Conférence
slecache
0
100
『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分
akitotsukahara
1
470
設計やレビューに悩んでいるPHPerに贈る、クリーンなオブジェクト設計の指針たち
panda_program
6
1.2k
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
210
地方に住むエンジニアの残酷な現実とキャリア論
ichimichi
5
1.3k
GitHub Copilot and GitHub Codespaces Hands-on
ymd65536
1
110
deno-redisの紹介とJSRパッケージの運用について (toranoana.deno #21)
uki00a
0
140
XSLTで作るBrainfuck処理系
makki_d
0
210
C++20 射影変換
faithandbrave
0
520
関数型まつりレポート for JuliaTokai #22
antimon2
0
150
A comprehensive view of refactoring
marabesi
0
970
Featured
See All Featured
Making Projects Easy
brettharned
116
6.3k
BBQ
matthewcrist
89
9.7k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
53k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
Faster Mobile Websites
deanohume
307
31k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
228
22k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Statistics for Hackers
jakevdp
799
220k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.1k
VelocityConf: Rendering Performance Case Studies
addyosmani
330
24k
It's Worth the Effort
3n
185
28k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
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