Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Comment that actually works
Masafumi Okura
November 16, 2022
Programming
1
48
Comment that actually works
https://icare.connpass.com/event/261601/
【iCARE Dev Meetup #36】Rejected CFP 供養会 2022
での発表資料です。
Masafumi Okura
November 16, 2022
Tweet
Share
More Decks by Masafumi Okura
See All by Masafumi Okura
Next decade of Rails Girls and the community
okuramasafumi
2
180
Porting ruby gem to mgem
okuramasafumi
1
46
For no-rush career
okuramasafumi
3
140
A technique to implement DSL in Ruby
okuramasafumi
0
1.1k
Neovim hearts Ruby
okuramasafumi
0
230
Writing simple and easy DSL with Ruby
okuramasafumi
1
85
Control methods like a pro
okuramasafumi
1
440
Guessing the future of Rails from what DHH said
okuramasafumi
3
1.2k
Recent Neovim
okuramasafumi
0
100
Other Decks in Programming
See All in Programming
domain層のモジュール化 / MoT TechTalk #15
mot_techtalk
0
100
監視せなあかんし、五大紙だけにオオカミってな🐺🐺🐺🐺🐺
sadnessojisan
2
1.3k
LIFFで動く割り勘アプリTATEKAをリリースしてみた話
inoue2002
0
220
Writing Greener Java Applications
hollycummins
0
330
新卒2年目がデータ分析API開発に挑戦【Stapy#88】/data-science-api-begginer
matsuik
0
330
AWSにおける標的型Bot対策
hacomono
0
390
Form実装基本を学び直してみた
hyugatsukui
0
230
Use KMM to call the API of the National Tax Agency
akkeylab
0
290
Spring BootとKubernetesで実現する今どきのDevOps入門
xblood
0
340
SHOWROOMの分析目的を意識した伝え方・コミュニケーション
hatapu
0
230
Cloudflare WorkersでGoを動かすライブラリを作っている話
syumai
1
300
Refactor with using `available` and `deprecated`
417_72ki
3
380
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
44
14k
Building Your Own Lightsaber
phodgson
96
4.9k
Statistics for Hackers
jakevdp
785
210k
Side Projects
sachag
451
37k
Fireside Chat
paigeccino
16
1.8k
Learning to Love Humans: Emotional Interface Design
aarron
263
38k
The Invisible Side of Design
smashingmag
292
48k
Intergalactic Javascript Robots from Outer Space
tanoku
261
26k
Web Components: a chance to create the future
zenorocha
304
40k
Build The Right Thing And Hit Your Dates
maggiecrowley
22
1.4k
Designing the Hi-DPI Web
ddemaree
273
32k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
38
3.6k
Transcript
ಈ࡞͠ͳ͍ίϝϯτ ͨͩͷίϝϯτͳͷͰ ಈ࡞͢ΔίϝϯτΛ࡞ͬͨ ʲiCARE Dev Meetup #36ʳRejected CFP ڙཆձ 2022
OKURA Masafumi, 2022-11-16
RubyKaigi
ϓϩϙʔβϧ
མͪͨʘ(^o^)ʗ
༨ஊ
ϓϩϙʔβϧ બͿଆେม
མͪΔʹѱ͍ Ͱͳ͍
ؓٳ
ࣗݾհ • ໊લɿେխ࢙ʢ͓͓͘Β·͞;Έʣ • ॴଐɿϑϦʔϥϯε • ՝֎׆ಈɿKaigi on RailsɺAlbaɺGrow.rbͳͲ •
झຯɿᘖᘣɺOSSɺొஃɺίϛϡχςΟࢀՃͳͲ
͓ɿಈ࡞͢ΔίϝϯτΛ࡞ͬͨ 1.ͳͥ࡞Ζ͏ͱࢥͬͨͷ͔ʁ 2.ͲͷΑ͏ʹ࣮ͨ͠ͷ͔ʁ 3.ΞΠσΞΛࢥ͍͖ͭɺ࣮ݱ͢Δ·Ͱ
ಈ࡞͢Δίϝϯτ
Xa https://github.com/ okuramasafumi/xa
eXecutable annotation
1. ͳͥ࡞Ζ͏ͱ ࢥͬͨͷ͔
ͦΕɺίϝϯτ ͡Όͳͯ͘ Α͘ͳ͍ʁ
ྫɿ ʮ͜ͷΫϥεΛܧঝͨ͠ αϒΫϥεfooϝιουΛ ΦʔόʔϥΠυ͢Δ͜ͱʯ
ίϝϯτ͕ ͋ͬͯ ಡ·ΕΔͱ ݶΒͳ͍
ίϝϯτͷࢦࣔ ಈ࡞͠ͳ͍
ಈ࡞͢Δίϝϯτ ͱʁ
DSLͱͯ͠ͷ ίϝϯτ
Rubyͷදݱྗ ͳΒՄೳͰʁ
2. ͲͷΑ͏ʹ ࣮ͨ͠ͷ͔
ΤσΟλ
3. ΞΠσΞΛ ࢥ͍͖ͭɺ ࣮ݱ͢Δ·Ͱ
ΞΠσΞΛ࣮ݱ͢ΔͨΊͷώϯτ I.ࠣࡉͳಈػΛେʹ͢Δ II.ݴޠΛΑ͘ཧղ͢Δ III.࡞Γଓ͚Δ
ⅰ. ࠣࡉͳಈػΛ େʹ͢Δ
ࢥ͍͖ͭ
ཱͪ
ࣗҰਓͰ ͳ͍ͷ͔ʁ
PoC (Proof of Concept)
࣌ؒͰ ࡞ͬͯΈΔ
ⅱ. ݴޠΛΑ͘ ཧղ͢Δ
ݴޠ࠷ جຊతͳπʔϧ
XaʹඞཁͩͬͨRubyͷࣝ • ϒϩοΫͷதΛઐ༻ͷධՁΦϒδΣΫτͰinstance_eval͢Δ͜ͱ ͰɺͦͷΦϒδΣΫτͷதʹཁૉΛด͡ࠐΊΔ͜ͱ͕Ͱ͖Δ • ϝιουݺͼग़ׅ͠ހ͕লུͰ͖Δ • ฏจͬΆ͍ݟ࣮ͨݱͰ͖Δ • TracePointΛ͑DSLͷ༰Λޙ͔ΒݕূͰ͖Δ
Ruby͍͢͝
ݴޠΛΑ͘ཧղ ͍ͯ͠ͳ͍ͱ ࡞Εͳ͍ͷ͋Δ
ⅲ. ࡞Γଓ͚Δ
Xa͕ࣗ࡞ͬͨ ͍͍ͩͨ7ݸ ͘Β͍ͷgem
࡞͖ͬͯͨgemͷҰ෦ • YusoɿӡૹྉۚσʔλϕʔεɺॳΊͯ࡞͕ͬͨϝϯς͞Εͯͳ͍ • AlbaɿJSONγϦΞϥΠβɺද࡞ • rubocop-sensibleɿRuboCopͷطఆͷઃఆΛஔ͖͑Δ • necoɿίϚϯυύλʔϯͷ࣮ɺվमத •
tiny_hooksɿίʔϧόοΫ࣮ɺActiveSupportΑΓ͔ͳΓ͍
౷Ұੑͳ͍
͋Ε͜Εࢼ͢
ද࡞ͷAlba ଟ4ͭ ͘Β͍ͷgem
࡞Γଓ͚Δ
·ͱΊ
ΞΠσΞΛܗʹ ͢ΔͨΊʹඞཁͳ ͷ
ΞΠσΞͦͷͷ
ٕज़
ҙࢥ
ͬͯΈΑ͏ʂ
Happy hacking!