https://icare.connpass.com/event/261601/
【iCARE Dev Meetup #36】Rejected CFP 供養会 2022 での発表資料です。
ಈ࡞͠ͳ͍ίϝϯτͨͩͷίϝϯτͳͷͰಈ࡞͢ΔίϝϯτΛ࡞ͬͨʲiCARE Dev Meetup #36ʳRejected CFP ڙཆձ 2022OKURA Masafumi, 2022-11-16
View Slide
RubyKaigi
ϓϩϙʔβϧ
མͪͨʘ(^o^)ʗ
༨ஊ
ϓϩϙʔβϧબͿଆେม
མͪΔʹѱ͍Ͱͳ͍
ؓٳ
ࣗݾհ• ໊લɿେխ࢙ʢ͓͓͘Β·͞;Έʣ• ॴଐɿϑϦʔϥϯε• ՝֎׆ಈɿKaigi on RailsɺAlbaɺGrow.rbͳͲ• झຯɿᘖᘣɺOSSɺొஃɺίϛϡχςΟࢀՃͳͲ
͓ɿಈ࡞͢ΔίϝϯτΛ࡞ͬͨ1.ͳͥ࡞Ζ͏ͱࢥͬͨͷ͔ʁ2.ͲͷΑ͏ʹ࣮ͨ͠ͷ͔ʁ3.ΞΠσΞΛࢥ͍͖ͭɺ࣮ݱ͢Δ·Ͱ
ಈ࡞͢Δίϝϯτ
Xahttps://github.com/okuramasafumi/xa
eXecutableannotation
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!