関西Ruby会議2017 で行ったトーク
ίϛϡχςΟจԽͷऔΓࠐΈͱͦͷػձͰಘͨݟؔ3VCZձٞNVSZPJNQM
View Slide
ఏɹڙࢲͨͪͷΓํͰಉ͡ࢤΛ࣋ͭؒͱ͓٬͞·ͷڞײΛͬͯιϑτΣΞ։ൃΛଓ͚͍ͯ͘
$POUFOUTw$PNNVOJUZ wࣾͷίϛϡχςΟײwݸਓతՌͷհ
ࣗݾհw ແྔҪ݈ !NVSZPJNQMw ̏લ·ͰؔͰ׆ಈͯ͠·ͨ͠w લճ-5Ͱ͓͡Ό·͠·ͨ͠ɻw ࡞HFNCVPZTΛΑΖ͘͠ʂ
$POUFOUTwࣗݾհw$PNNVOJUZ wࣾͷίϛϡχςΟײwݸਓతՌͷհ
$PNNVOJUZͱ
ͦͦ$PNNVOJUZͬͯʁBMMUIFQFPQMFXIPMJWFJOBQBSUJDVMBSBSFB PSBHSPVQPGQFPQMFXIPBSFDPOTJEFSFEBTBVOJUCFDBVTFPGUIFJSTIBSFEJOUFSFTUTPSCBDLHSPVOEIUUQEJDUJPOBSZDBNCSJEHFPSHEJDUJPOBSZFOHMJTIDPNNVOJUZ
ͦͦ$PNNVOJUZͬͯʁlډॅҬΛಉ͘͡͠ɺརΛͱʹ͢ΔڞಉࣾձɻொଜɾࢢɾํͳͲɺੜ࢈ɾ࣏ࣗɾ෩ଏɾश׳ͳͲͰਂ͍݁ͼ͖ͭΛͭڞಉମɻҬࣾձɻzIUUQTEJDUJPOBSZHPPOFKQKONFBOJOHNVίϛϡχςΟʔ
ͭ·Γ
Ͱ͜ͷҙຯͰݴ͏ͱ
ҰॹʹࣄΛ͢Δؒͨͪ
ίϛϡχςΟͷͭ
ࠓճଆʹ͋Δ ίϛϡχςΟʹ Λ͚ͯΈ·͢
ࣄۀ෦Λ Έͨ߹
ίϛϡχςΟͱͷίϛϡχςΟ ࢀՃɾൃද։࠵εϙϯαʔυձఏڙਓ຺ݟܦݧධ ࣄۀ෦
ίϛϡχςΟͱͷίϛϡχςΟ ࢀՃɾൃද։࠵εϙϯαʔυձఏڙਓ຺ݟܦݧධ ฐࣾwݸਓ͕উखʹࢀՃwίϛϡχςΟ͔Βͷ ґཔͰࢀՃ͢Δw༗ࢤͰू·ͬͯ༰ܾΊͯ։࠵͢ΔwQBUDIΛॻ͍ͯ13
ίϛϡχςΟͱͷίϛϡχςΟ ࢀՃɾൃද։࠵εϙϯαʔυձఏڙਓ຺ݟܦݧධ ฐࣾwSC ֤छNFFUVQw"HJMF+BQBOw3VCZ,BJHJ%SJOLVQ4QPOTPS ΦϒϥϒΧϨϯμʔձ ଞࣾͱͷ߹ಉΠϕϯτ ύονձw(JU)VC্ͷ׆ಈ
ίϛϡχςΟͱͷίϛϡχςΟ ࢀՃɾൃද։࠵εϙϯαʔυձఏڙਓ຺ݟܦݧධ ฐࣾw୭͔͕Ԡԉ͍ͨ͠ͱJTTVF͕ڍ͕Δwϝϯόʔ͕ओ࠵ऀwεϖʔεΛआΓ͍ͨͱͷ࿈བྷ͕དྷͨ߹
ίϛϡχςΟͱͷίϛϡχςΟ ࢀՃɾൃද։࠵εϙϯαʔυձఏڙਓ຺ݟܦݧධ ฐࣾw3VCZ,BJHJ 3BJMT(JSMT Ҭ3VCZձٞwΦϑϥΠϯͲ͏ॻ͘ ཬSC ΑͪΑͪ ͷ৺ΛͣͬͱΕͳ͍SCwBTBLVTBSC 5PLZP3VCZJTU.FFUVQ FUD
ίϛϡχςΟͱͷίϛϡχςΟ ࢀՃɾൃද։࠵εϙϯαʔυձఏڙਓ຺ݟܦݧධ ฐࣾwਓͱͷग़ձ͍wൃදͷܦݧwҙݟަʹΑΔݟͷڞ༗wΠϕϯτӡӦʹؔ͢ΔݟwӡӦɾࢀՃऀɾൃදऀͱͯ͠ͷࢹͰΠϕϯτΛݟΔwݸਓ ձࣾ αʔϏεͷ্໊ɺ͓ࣄͷհ
ίϛϡχςΟฐࣾͦͷଞࣾίϛϡχςΟӡӦͷ࣮ફwࣗൃతʹࣾษڧձΛ։࠵͢ΔwӡӦձٞΛϝϯόʔࢀՃͰ։࠵͢ΔwFTBΛͬͯใڞ༗
ίϛϡχςΟฐࣾࢲͷײ͍ͯ͡Δྑۙ͘͞ʹzίϛϡχςΟzΛ ײ͡Δɾ৮ΕΒΕΔ͜ͱಉ͚ͩ͡Ͳlҧ͍zΛײ͡ΒΕΔ͜ͱ ϑΟʔυόοΫ͕͋Δ
ݸਓతʹࢥ͍ͬͯΔ͔͜͜ΒઌίϛϡχςΟฐࣾίϛϡχςΟͱίϛϡχςΟͷڥΛᐆດʹ͍ͯ͘͠ଟछଟ༷ͳίϛϡχςΟΛ ମײͯ͠ΈΔ࣮ફʂ
ձࣾશମΛΈͨ߹
IUUQTOPEFTDIPPMJPGVLVJ
IUUQOQPTXPSH Q
ࣾಉ࢜ʁ
˞ݸਓͷײଞࣄۀ෦ͷਓʹͲΜͳਓ͕͍Δͷ͔ʁ ຊࣾࢧࣾৗறݱଞ෦ॺͷٕज़ελοΫ͕Θ͔Βͳ͍ࣄྫͱ͔Ξϯνύλʔϯͱ͔ڞ༗͞ΕͯΑͦ͞͏
ӬΧϯϑΝϨϯε ৫ݟͷൃ৴ڞ༗Λతͱͨ͠ɺΧϯϑΝϨϯεΛ։࠵͢Δ͜ͱΛඪͱͯ͠ू·ͬͨ෦ॺΛԣஅͨ͠৫ɻ·ͣࣾͷͭͳ͕ΓΛॏࢹͨ͠ΠϕϯτΛ։࠵ɺࣾࢽΛൃߦ͍ͯ͠Δɻ
ೝ͍ࣝͯ͠Δଞࣄۀ෦ͷਓͱަྲྀ͢Δػձ͕গͳ͍ʜࣾͷݟ͕ڞ༗͞Ε͍ͯͳ͍ ͦͷ͖͔͚ͬগͳ͍·ͣ֎ͱͭͳ͕ΔલʹதͷਓͨͪΛͭͳ͛Δ΄͏͕ઌͳͷͰʁ
ೝ͍ࣝͯ͠Δଞͷࣄۀ෦ͷਓͱަྲྀ͢Δػձ͕গͳ͍ࣾͷݟ͕ڞ༗͞Ε͍ͯͳ͍ ͦͷ͖͔͚ͬগͳ͍·ͣ֎ͱͭͳ͕ΔલʹதͷਓͨͪΛͭͳ͛Δ΄͏͕ઌͳͷͰʁ
ͯ͞Ͳ͏͢Δʁ
Ͳ͏͢Δ͔ʁwࣾΛͭͷίϛϡχςΟͱ͢Δʹʁ zίϛϡχςΟzͷงғؾΛͬͯΈΔwࣾ֎ͷίϛϡχςΟΛࢀߟʹͳʹ͔͖͔͚ͬʹͳΓͦ͏ͳΠϕϯτΛ։࠵ͯ͠ΈΑ͏wࣄۀ෦Ͱ͍ͬͯΔ͜ͱ͕શવҧ͏ͷͰɺ Ͳͷࣄۀ෦ࢀՃͰ͖ΔΑ͏ͳͷʹ͍ͨ͠
ίϛϡχςΟࢀՃwࢀՃະܦݧͷਓʹίϛϡχςΟΠϕϯτʹࢀՃͯ͠Βͬͯମײͯ͠Β͓͏w3VCZ,BJHJw91ࡇΓw"HJMF+BQBO
Πϕϯτ։࠵ଆͷ͍wࢀՃͯ͠΄͍͕͠ɺܾͯ͠ڧ੍͠ͳ͍wྫ͑ࢀՃ͠ͳͯ͘ɺίϛϡχςΟʹࢀՃͰ͖Δɺͱ͍͏બࢶΛۙ͘ʹͭ͘ΔwࢀՃ͢Δଆʹ͏·͘׆༻ͯ͠Β͑Ε͍͍͠ɺͦ͏͍͏ʹͰ͖Εͱࢥ͍ͬͯΔ
ࣾͰ։࠵ͯ͠ΈͨΠϕϯτ
ࣾͰ։࠵ͨ͠Πϕϯτw&(3"/%13*9ςʔϚΛ࡞͠ɺࢥ͍ࢥ͍ͷͷΛ࡞ͯ͠Βͬͯࣾһ͕ථͯ͠༏উΛڝ͏։ൃίϯςετɻwFTN@-5༗ࢤͰू·ͬͯςʔϚࣗ༝ͰΓ͍ͨ͜ͱΛΔ-5େձɻ 5PLZV3VCZձٞΛࢀߟʹ
աڈೋճ։࠵ࡁΈ ୈࡾճۙ։࠵༧ఆ
ΠϕϯτΛ։࠵ͯ͠ΈͯwͲͪΒෳͷ෦ॺ͔ΒࢀՃऀ͕ܧଓͯ͠ू·͍ͬͯΔwීஈࣄͰ͑ͳ͍ٕज़Λ͏ɺࣄͰབྷΜͰ͍ͳ͍ਓͱҰॹʹ࡞ۀ͢ΔνʔϜ͕ग़͖͍ͯͯΔw։࠵ଆͱͯ͠ɺॳࢥͬͨΑΓΓ্͕͍ͬͯΔΑ͏ʹײ͍ͯ͡Δ ථͷ૿Ճ͔Β
՝wࣄۀ෦͝ͱʹଟͳ࣌ظ͕ҟͳΓɺௐͷ͚ͭʹ͍͘ݱ͋ΔͨΊɺ࣌ظසɺࢀՃํ๏ͷ͕ඞཁwࣾ֎ͷίϛϡχςΟͷࢀՃͷ͖͔͚ͬΈ͍ͨͳͷఏڙͰ͖ΔͱΑͦ͞͏wϑΟʔυόοΫΛಘΔػձ͕গͳ͍ͷͰɺࢀՃऀͷຊԻΛௌ͚ΔػձΛ࡞Δ
ίϛϡχςΟͱͷΛͭ͘Δձࣾશମ ࢀՃɾൃද։࠵εϙϯαʔυձఏڙਓ຺ݟܦݧධ ݸਓ
ࠓޙͷඪlίϛϡχςΟzʹ৮ΕΒΕΔڥΛ࡞Γɺܧଓͯ͠ΠϕϯτΛ։࠵͍ͯ͘͠༧ఆɻͨͩ͠՝͍ͬͯΔͷͰ͜ΕΛղফ͍͖͍ͯͨ͠ɻ ͚ࣾͩͰͳ͘ɺࣾ֎ͷํͱΧδϡΞϧʹܨ͕ΕΔʹͭͳ͍͛ͨɻ
ࣾͷΠϕϯτΛར༻ͯ͠
ݱࡏӡӦΞϓϦΛ ࡞த IUUQTUBMLFSTJHOVQQFSIFSPLVBQQDPN
XFCQBDLFSw3BJMTͷ4QSPDLFUTͱXFCQBDLΛͭͳ͙HFNwSBJMTXFCQBDLFSJOTUBMMͰ 3BJMT͕͋ΔఔͷσϑΥϧτઃఆΛग़ྗͯ͘͠ΕΔw"OHVMBS+4 7VFKT 3FBDU &MN͕αϙʔτ͞Ε͍ͯΔ
BQQKBWBTDSJQUQBDLTҎԼʹFOUSZpMFΛஔ͢Δ˞͜͜ࢲ͕উखʹՃ͍ͯ͠Δ
XFCQBDLͷઃఆϑΝΠϧ͕͜͜ʹஔ͞ΕΔඞཁͰ͋Ε͜ΕΒͷϑΝΠϧΛมߋ͢Δ
XFCQBDLFSͷϝϦοτwFOUSZͷઃఆΛॻ͔ͳͯ͘Α͍wBQQKBWBTDSJQUQBDLTʹஔ͢Δ͚ͩwը໘͝ͱʹFOUSZ༻ҙ͢Δ߹खؒ⤵wSBJMTBTTFUTQSFDPNQJMFʹXFCQBDLFSDPNQJMFؚ͕·Ε͍ͯΔͷͰࣄલʹϏϧυ͠ͳͯ͘Α͍
FOUSZpMFΛग़ྗ͢ΔIFMQFSΛ ݺͼग़͚ͩ͢
ҙ
XFCQBDLFSͷҙwͰBTTFUTQSFDPNQJMFޙͷग़ྗઌ͕ ޡ͍ͬͯΔ͕͋ͬͨͰमਖ਼wCVOEMFVQEBUFͨ͠ΒSBJMTXFCQBDLFSJOTUBMM͢Δ͜ͱΛΕͳ͍ :OBREI͕໘wCBCFMSD͕มߋʹͳΔ͜ͱ͕͋ΔͷͰϏϧυ͕յΕΔՄೳੑ͕͋Δʜ
XFCQBDLFS Ͱͳ͍ͷҙwBWB ςετπʔϧΛ͍ͬͯΔͱɺCBCFMSDʹ͋Δ \lNPEVMFTzGBMTF^Λ ফ͞ͳ͍ͱΤϥʔʹͳͬͯϋϚΔ IUUQTHJUIVCDPNBWBKTBWBJTTVFTJTTVFDPNNFOU
࢝ΊͯΈΔͳΒ
։࢝ͷࢀߟʹͳΓͦ͏ͳιʔεXFCQBDLFSϝΠϯϝϯςφͷํ͕࡞ͬͨαϯϓϧIUUQTHJUIVCDPNHBVSBWUJXBSJSBJMTXFCQBDLFSIUUQTSBJMTXFCQBDLFSIFSPLVBQQDPN
ࢀߟʹͳΔιʔε͕૿͑Δͱ͍͍ͳ
·ͱΊwࣾΛίϛϡχςΟͱͱΒ͑ͯͭͳ͕ΓΛ࡞Ζ͏ͱߦಈͯ͠ΈͨwίϛϡχςΟӡӦ͍͠wӡӦଆ͏·͘׆༻ͯ͠Β͑Ε͍͍ͱࢥ͍ͬͯΔͷͰ׆༻͍ͯͩ͘͠͞