はてな・ペパボ技術大会#4で発表した内容です。 https://hatena.connpass.com/event/89520/
ߴ୩༤و(.01FQBCP *ODͯͳɾϖύϘٕज़େձϓϥΠϕʔτΫϥυͰ͡ΊΔ%FW0QT
View Slide
γχΞΤϯδχΞߴ୩༤و!CVUZٕज़෦ϓϥοτϑΥʔϜάϧʔϓ
ࣗݾհw݄ʹϖύϘʹೖࣾwೖ֤ࣾ࣌෦ॺͷΠϯϑϥΛݟ͍ͯͨ‣ &$αʔϏε‣ ϒϩάαʔϏεwલ͘Β͍͔ΒϓϥΠϕʔτΫϥυΛݟΔΑ͏ʹͳͬͨ
%FW0QT
ࠓ͢༰wϓϥΠϕʔτΫϥυΛத৺ʹ%FW0QT͕͕͍ͬͯͬͨ‣ ։ൃνʔϜͱΠϯϑϥνʔϜͷίϥϘϨʔγϣϯwͲͷΑ͏ʹίϥϘϨʔγϣϯ͕ੜ·Ε͍͔ͯͬͨʁ
ࠓ͞ͳ͍͜ͱwϓϥΠϕʔτΫϥυͷߏஙϊϋwϓϥΠϕʔτΫϥυͷӡ༻ۤ࿑
ৄ͘͠Γ͍ͨਓͪ͜Βͷಛूʹৄ͘͠ॻ͍ͯ͋Γ·͢ʂ
ϓϥΠϕʔτΫϥυಋೖલ
ϓϥΠϕʔτΫϥυಋೖલw෦ॺ͝ͱʹαʔόػثΛߪೖ͠ӡ༻͍ͯͨ͠wΠϯϑϥνʔϜ֤෦ॺ͝ͱʹଘࡏ͍ͯͨ͠&$αʔϏε ϒϩάαʔϏεαʔό αʔόΠϯϑϥνʔϜ ΠϯϑϥνʔϜ
ϊϋͷஅw֤෦ॺͷΠϯϑϥνʔϜ͝ͱʹಠࣗͷϊϋΛ͍࣋ͬͯΔwޓ͍ʹ͍࣋ͬͯΔϊϋΛަ͠ͳ͍ɾͰ͖ͳ͍&$αʔϏε ϒϩάαʔϏεαʔό αʔόΠϯϑϥνʔϜ ΠϯϑϥνʔϜϊϋ ϊϋ
ϊϋͷஅͰى͜Δ͜ͱ wಉ͡04ϛυϧΣΞΛ͍ͬͯΔͷʹಉ͡ΛͦΕͧΕͰղܾ͢Δ&$αʔϏε ϒϩάαʔϏεαʔό αʔόΠϯϑϥνʔϜ ΠϯϑϥνʔϜ"QBDIFͷόʔδϣϯΞοϓͰಈ͔ͳ͘ͳͬͨʂʂ"QBDIFͷόʔδϣϯΞοϓͰಈ͔ͳ͘ͳͬͨʂʂ
ϊϋͷஅͰى͜Δ͜ͱ wଐਓԽ͕ڧ͘ΩʔϚϯ͕͍ͳ͍ͱ͕ղܾͰ͖ͳ͍&$αʔϏε ϒϩάαʔϏεαʔό αʔόΠϯϑϥνʔϜ ΠϯϑϥνʔϜ"͞Μ͕͍ͳ͍͔ΒͲ͏͢Ε͍͍͔Θ͔Βͳ͍ʂʂ
ϊϋͷஅͰى͜Δ͜ͱ wଞͷαʔϏε͝ͱʹएׯઃఆ͕ҧ͏ͨΊ֮͑Δ͜ͱ͕ଟ͍&$αʔϏε ϒϩάαʔϏεαʔό αʔόΠϯϑϥνʔϜ ΠϯϑϥνʔϜ&$ͩͱ"ͩͬͨͷʹϒϩάͩͱ"ʹͳ͍ͬͯΔ
ղܾࡦ1VQQFUͷಋೖw1VQQFUΛಋೖ͠αʔόΛίʔυཧ͢Δ͜ͱͰϊϋΛڞ༗͢Δw*OGSBTUSVDUVSFBT$PEFͷ͡·Γࡐ" ࡐ#αʔό αʔόΠϯϑϥνʔϜ ΠϯϑϥνʔϜQVQQFU
͔ͦ͠͠ΕͰɾɾɾw͢Ͱʹಈ͍͍ͯΔαʔόʹ1VQQFUΛಋೖ͢Δͷ͕େมɻɻwࡐ͝ͱʹ༻͍ͯ͠Δ04ϛυϧΣΞϋʔυΣΞ͕ͪ͏ɻɻwαʔόͷઐ͕ࣝෆՄܽͳͨΊ։ൃνʔϜ͕खΛ͚ͭΔ͜ͱ͕Ͱ͖ͳ͍ɻɻ
ͦΜͳ͋Δ
ϓϥΠϕʔτΫϥυಋೖܾఆʂ
ϓϥΠϕʔτΫϥυಋೖͷܦҢwσʔληϯλʔͷٺԽͳͲͷཧ༝ʹΑΓαʔόΛҠઃ͠ͳ͍ͱ͍͚ͳ͍w৽͍͠σʔληϯλʔ୯७ʹαʔόΛҠઃͯ͠໘ന͘ͳ͍ʂwϓϥΠϕʔτΫϥυͩʂʂʂچσʔληϯλʔ ৽σʔληϯλʔαʔό αʔό
/ZBI ʹΌʔwϖύϘͷϓϥΠϕʔτΫϥυڥͷݺͼ໊w0QFO4UBDLͷ)BWBOBόʔδϣϯwϊϋΛ͍࣋ͬͯͨάϧʔϓձࣾͷڠྗͷͱڥΛߏங
/ZBIαʔόͷҠઃΛ։࢝ʂ
0QFO4UBDLͬͯͲ͏͏ͷͩΖ͏ʁʁ
0QFO4UBDLΘ͔Βͳ͍w0QFO4UBDLͷఏڙ͍ͯ͠Δ"1*͕ଟ֮ͯ͑͘Δͷ͕େม‣ $-*͋Δ͕"1*ͷ͚ͩαϒίϚϯυ͕͋Δ‣ 8FC6*͋Δ͕ڥͷͰ͋·ΓʹཱͨͣɻɻɻwΠϯϑϥνʔϜ͕සൟʹ͏ػೳΛπʔϧԽ͠ղܾͨ͠
ศརͳπʔϧwLBOBNF‣ ϢʔβͷཧwLBLJOF‣ 4FDVSJUZ(SPVQͷཧwQFD‣ Πϯελϯεͷཧ
/ZBIʹҠઃͨ͜͠ͱͰىͬͨ͜͜ͱwαʔόڥͷڞ௨ԽʹΑΓϊϋͷڞ༗wҠઃ͢Δͱ͖ʹશαʔόʹ1VQQFUΛಋೖ‣ *OGSBTUSVDUVSFBT$PEFΛਪ͠ਐΊͨ&$αʔϏε ϒϩάαʔϏεαʔό αʔό/ZBI
͔͠͠ɺ։ൃνʔϜ͕ΠϯϑϥΛ৮Δ͜ͱগͳ͔ͬͨ
ཧ༝wϓϥΠϕʔτΫϥυͰ͋Δ͕*BB4ʹ͔ۙͬͨ‣ ߏஙͨ͠άϧʔϓձࣾͷར༻ܗଶʹ͍ۙڥwػೳ͕গͳ͘ඞવతʹΠϯϑϥͷ͕ࣝඞཁʹ‣ ྫ͑7*1Λ͍͍ͨ࣌LFFQBMJWFEΛΘͳ͍ͱ͍͚ͳ͍ͳͲw·ͩ·ͩΠϯϑϥνʔϜͷઐྖҬͰ͋ͬͨ
/ZBIͷΞοϓάϨʔυ
ΞοϓάϨʔυܭը wར༻͍ͯ͠Δ0QFO4UBDLͷόʔδϣϯ͕ݹ͍ͷͰ৽͘͢͠Δ‣ ৽ػೳ‣ όά'JYwϖύϘͷར༻ܗଶʹ͋ͬͨΫϥυڥͷߏங
ΞοϓάϨʔυܭը wར༻͢Δ0QFO4UBDLͷόʔδϣϯ.JUBLBw)BWBOB͔Βੈδϟϯϓʂ‣ )BWBOB*DFIPVTF+VOP,JMP-JCFSUZ.JUBLBwੈδϟϯϓαϙʔτ͞Εͳ͍ͷͰผͷελοΫΛཱͯΔ͜ͱʹͨ͠/ZBI )BWBOB /ZBI .JUBLBαʔό αʔό
/ZBIϚΠάϨʔγϣϯw/ZBI )BWBOB͔Β/ZBI .JUBLBαʔόͷҠઃ͕ඞཁw͕͢͞ʹԿҠઃΛΔͱϞνϕʔγϣϯ͕ɾɾɾ‣ /ZBIϚΠάϨʔγϣϯΛ͢Δ͚ͩͰͯ͘ศརʹͳΔʂ
ڧԽϙΠϯτϋʔυΣΞͷڧԽw؋αʔόͷϋʔυΣΞΛڧԽ࠷৽ͷڧ͍$16େ༰ྔϝϞϦϑϧ44%
ڧԽϙΠϯτωοτϫʔΫػೳͷڧԽw%)$1Λ༗ޮԽ‣ ಛघͳઃఆΛ͠ͳͯ͘Πϯελϯεͷىಈ͕Ͱ͖ΔΑ͏ʹw4/"5ϧʔλʔػೳ
ڧԽϙΠϯτ'MPBUJOH*1ͷಋೖw࣮ߦதͷΠϯελϯεʹಈతʹՃͰ͖Δάϩʔόϧ*1ΞυϨε‣ "84Ͱ͍͏ͱ&MBTUJD*1wάϩʔόϧ*1Λ"1*ܦ༝Ͱ͚ସ͑ΒΕΔΑ͏ʹͳͬͨ‣ ΠϯελϯεͷೖΕସ͕͑؆୯ʹ
ڧԽϙΠϯτ-#BB4ͷಋೖw-PBE#BMBODFSBTB4FSWJDF‣ "84Ͱ͍͏ͱ͜Ζͷ&MBTUJD-PBE#BMBODJOH &-#wߏΛͬͨ-#Λ؆୯ʹར༻Ͱ͖Δ
/ZBIͷΞοϓάϨʔυͰىͬͨ͜͜ͱwύϒϦοΫΫϥυͱಉͷػೳͷఏڙwҰൠతͳΫϥυ͚πʔϧͷར༻͕Մೳʹ
5FSSBGPSNwΠϯϑϥͷߏཧΛίʔυͰߦ͑ΔwαʔόҎ֎ʹωοτϫʔΫͷઃఆͳͲཧͰ͖Δw0QFO4UBDLͪΖΜओཁͳύϒϦοΫΫϥυʹରԠ
5FSSBGPSNʹΑΓಘΒΕΔϝϦοτwίʔυͰཧ͍ͯ͠ΔͷͰαʔόͷ૿ݮ͕༰қ‣ มΛม͑Δ͚ͩwίϚϯυҰൃͳͷͰσϓϩΠ؆୯wΠϯϑϥͷมߋʹରͯ͠ϨϏϡʔ͕Ͱ͖Δw։ൃνʔϜมߋΛ1VMM3FRVFTUͰ͖Δ
5FSSBGPSNಋೖʹΑͬͯىͬͨ͜͜ͱwࠓ·Ͱ։ൃ͕αʔό͕ཉͯ͘͠ɺΠϯϑϥʹґཔ͢Δඞཁ͕͋ͬͨwಋೖޙ։ൃ͕13͠Πϯϑϥ͕ϨϏϡʔ͠ɺ։ൃ͕σϓϩΠ͢Δ
·ͱΊ
·ͱΊwϓϥΠϕʔτΫϥυΛಋೖͨ͜͠ͱͰڥ͕ڞ௨Խ͞Εͨwڥ͕ڞ௨Խ͞ΕΔͱϊϋͷஅ͕ى͜Γʹ͘͘ͳΔwϓϥΠϕʔτΫϥυͷػೳΛڧԽ͢Δͱ%FW0QT͕ḿΔ
܅ϖύϘͰಇ͔ͳ͍͔ʁ࠷৽ͷ࠾༻ใΛνΣοΫˠ !QC@SFDSVJU
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ