Developers Summit 2020 Summer C-4 で発表した資料です。
िҰͰϦϦʔε͠ଓ͚ΔͨΊͷϑϩϯτΤϯυʹ͓͚Δෆ࣮֬ੑͱͷઓ͍ํ%FWFMPQFST4VNNJU4VNNFS $ EFWTVNJ$גࣜձࣾ NFEJCBా ་
View Slide
ձࣾհגࣜձࣾ NFEJCBIUUQTXXXNFEJCBKQઃཱ ݄ैۀһ ໊ ։ൃऀ ໊݄ݱࡏ,%%*גࣜձࣾͷ BVεϚʔτύεΛத৺ͱͨ͠BVؔ࿈αʔϏεӡӦͷଞɺ෯͍ͰαʔϏεΛల։͠ɺϢʔβʔ͕ΠϯλʔωοτΛ௨ͯ͡ඞཁͳ࣌ʹඞཁͳใʹΞΫηεͰ͖Δڥͮ͘ΓͷͨΊͷαʔϏεΛఏڙ͍ͯ͠·͢ɻ
ా ་ !ULEOגࣜձࣾ NFEJCB։ൃ(ϑϩϯτΤϯυΤϯδχΞΫϥΠΞϯταΠυ #''ͷ։ൃΛ୲جຊతʹϒϥβ͕ओઓɿऀɿάϩʔεΤΫεύʔτφʔζגࣜձࣾɿάϩʔεɾΠϯΫגࣜձࣾɿגࣜձࣾ NFEJCBࣗݾհ
• ൃද༰• νʔϜʹᴥᴪΛͳ͘͠ಉ͡ޠኮͰΞʔΩςΫνϟΛΜͰ͍͘• #'' Ͱѻ͍ͬͯΔ (SBQI2- "1* ͕ϝΠϯͷ• ϒϥβͰ͓͖Δྫ֎ "1* ͷΤϥʔΛ 6* ͰϑΥϩʔ͢Δ• ఆظతʹϦϦʔε͢ΔΈɺͦͯ͠·ͱΊ• ͞ͳ͍͜ͱ• "QPMMP 4FSWFS ʹ͍ͭͯ৮Ε·͕͢ϥΠϒϥϦͷ͍ํ͠·ͤΜ• ΫϥΠΞϯταΠυͰ 3FBDU Λ͍ͬͯ·͕͢ൃදʹ΄΅ग़͖ͯ·ͤΜ• ରऀ• νʔϜͰͷίϛϡχέʔγϣϯʹΜͰ͍Δํ• ։ൃ్தͰᴥᴪ͕ੜ·Εͨ··ϦϦʔε͕ͨ͠ೲಘͰ͖ͳ͔ͬͨํ• #'' Ͱ "1* Λ։ൃ͍ͨ͠ϑϩϯτΤϯυدΓͷ։ൃऀ• "QPMMP 4FSWFS Λͬͨ͜ͱͷ͋Δ։ൃऀൃද༰ͱఆରऀ
ຊʹೖΔલʹগ͚ͩ͠લఏɾഎܠͷ͓
ϓϩμΫτɿʮຖϙΠϯτʯλʔήοτɿBVϢʔβʔ͕ϝΠϯϏδωεϞσϧɿ$1$ ใुܕࠂ˞ ϦϦʔε࣌ୡײىΛతͱͯ͠ϏδωεΑΓମݧΛ༏ઌ ఏڙ͍ͨ͠ମݧBV8FCϙʔλϧ͔Β࢝·ΔϙΠϯτΛஷΊΔମݧΛߏஙৢ͢ΔϙΠϯτ ΠϯηϯςΟϒΛ༻͍ͯBV8FCϙʔλϧΛັྗԽ͢Δ ׆༻ͯ͠Β͍͍ͨϙΠϯτʹର͢ΔϦςϥγʔΛߴΊར׆༻ͯ͠Β͏ʑୡײΛײ͡ͳ͕Βश׳Խͯ͠΄͍͠ϓϩμΫτͱഎܠ
ϓϩμΫτɿʮຖϙΠϯτʯ औΓר͘ঢ়گ• ݄ BV8"--&5ϙΠϯτ͔Β 1POUBϙΠϯτ• ΩϟογϡϨεܾࡁ BV1":• BV*%ΩϟϦΞϢʔβʔͷΈͳΒͣΦʔϓϯͳ *% ෆ࣮֬ͳཁૉ͕ଟ͍ɺ.71 .JOJNVN7JBCMF1SPEVDU• ϢʔβʔχʔζɾϙΠϯτͷೝ• Ͳ͏͍ͬͨػೳΛՃ͠श׳Խͯ͠Β͏͔• ϢʔβʔΛͲͷ͘Β͍ݟࠐΉ͔❌ ݕূͷͨΊͷ࡞Γࣺͯɾ࡞Γ͠⭕ ͋Δఔͷਫ਼Λ্࣋ͬͨͰݕূ͠ͳ͕ΒҭͯΔϓϩμΫτͱഎܠ
ϓϩδΣΫτͷഎܠɿͷͮ͘ΓϓϩηεϢʔβʔத৺ͷʮͷͮ͘ΓΧϯύχʔʯͱͯ͠தظతͳઓུΛܝ࣮͛ݱ͚ͨ৫ମ੍Λཱ֬͢ΔIUUQXXXNFEJCBKQOFXT• ࡢͷͮ͘ΓϓϩηεΛੜ͢Δ෦ॺॴଐ• ༷ʑͳ৬छʹΑΔϓϩηεɾจԽৢ• ΑΓྑ͍ϫʔΫϑϩʔͷࡧࢼߦʮϓϩδΣΫτʹؔΘΔ ʹ ͷͮ͘ΓΛ͢ΔʯਓͨͪͷϓϩηεΛΑΓΑ͍ͷʹ͢ΔϩʔϧϞσϧͱͳΔɺॳΊͯͷ ͷϓϩδΣΫτϓϩμΫτͱഎܠ
ϓϩδΣΫτͷഎܠɿϑϩϯτΤϯυͷڧԽະֶशྖҬʹ͓͚ΔνʔϜ\ֶश ϓϨΠ^ͱ!#*57"--&:*/4*%& 7PM• ݄ BV8FCϙʔλϧϦχϡʔΞϧ• /FYUKT Y(SBQI2-"1*• ϑϩϯτΤϯυڧԽͷͨΊνʔϜମ੍มߋ• ϑϩϯτΤϯυ։ൃऀͷΛ૿͢• αʔόʔαΠυ։ൃऀͷεΩϧస• /PEFKT ʹΑΔϑϩϯταʔόʔӡ༻• 443 (SBQI2- "1*ϓϩμΫτͱഎܠ
͜͜·Ͱ͕લఏɾഎܠͷ͓
࣍ #''ʹকདྷతͳมߋ༰қੑΛ ઓུϞϒͰ߹ҙɾҙࢥܾఆ͢Δश׳ ઓज़ϢʔεέʔεۦಈͰ։ൃ͢Δ ΤϥʔΠϕϯτͱվળ ΫϥΠΞϯτ ϒϥβͷྫ֎ʹదͳ 6* Λ #''ΫϥΠΞϯτʹ࠷దͳ (SBQI2- &SSPS ·ͱΊɿ҆ఆͨ͠ఆظతͳϦϦʔεͷ࣮ݱ࣍
࣍ #''ʹকདྷతͳมߋ༰қੑΛ ઓུϞϒͰ߹ҙɾҙࢥܾఆ͢Δश׳ ઓज़ϢʔεέʔεۦಈͰ։ൃ͢Δ ΤϥʔΠϕϯτͱվળ ΫϥΠΞϯτ ϒϥβͷྫ֎ʹదͳ 6* Λ #''ΫϥΠΞϯτʹ࠷దͳ (SBQI2- &SSPS ·ͱΊɿ҆ఆͨ͠ఆظతͳϦϦʔεͷ࣮ݱϞϒͰ߹ҙɾҙࢥܾఆ͢Δश׳
.71εϐʔυΛٻΊΒΕ͍ͯΔɺ͕͔͠͠ʮʓʓΛΓ͍ͨʯʮ˚˚ࠓճͷείʔϓʹؚΊ͍ͨʯͱݴͬͯͨͳʜ֬ূͳ͍͕ʜॳظϦϦʔεʹඞཁͳ͜ͱʜʁԿΛٻΊΒΕ͍ͯͯԿΛ༏ઌ͖͢ʜʁೝࣝͷᴥᴪͬͯͳ͍͔ʜʁ૬ޓʹೝͷΈ͕ͳ͍͔ʜʁϞϒͰ߹ҙɾҙࢥܾఆ͢Δश׳
ݟͨ͜ͱ͋Δͭʢݟͨ͘ͳ͍ͭʣϞϒͰ߹ҙɾҙࢥܾఆ͢Δश׳
ʮԿΛ࡞ͬͯԿΛఏڙ͢Δ༧ఆͳͷ͔Ұ୴ཧ͠Α͏ʯ• 10ɺσβΠφʔɺ։ൃऀɺεΫϥϜϚελʔҰಉհ͢Δ• શһ͕ಉ͡ޠኮͰͤΔ͕ʮϢʔεέʔεʯ• γεςϜ༻ޠൈ͖ʹͯ͠શһ͕ཧղͰ͖Δݴ༿• ࣗͣͱ༏ઌݟ͑ͯ͘ΔϞϒͰ߹ҙɾҙࢥܾఆ͢Δश׳
ϞϒͰ߹ҙɾҙࢥܾఆ͢Δश׳ϢʔβʔछผʹΑͬͯϙΠϯτ͕͑ͳ͍։ൃऀ ͳΔ΄ͲʁʢॳࣖσβΠφʔར༻ෆՄͷϢʔβʔʹέΞ͢Δը໘͕ඞཁͦ͏10ϞϒͰ߹ҙɾҙࢥܾఆ͢Δश׳
ϞϒͰ߹ҙɾҙࢥܾఆ͢Δश׳γʔζϯʢ։࠵ظؒʣͬͯγʔϜϨεʹͣͬͱଓ͘ʁ։ൃऀͲ͏͍͏͜ͱʁϝϯςφϯεதɺγʔζϯ֎ͷߟྀ͕ඞཁͦ͏10։ൃऀ࿈ܞઌϝϯςφϯεΛߟྀ͢Δͱඇ࿈ଓతͰͳ͍ͱਏͦ͏ϞϒͰ߹ҙɾҙࢥܾఆ͢Δश׳
ಉ͡ͷΛɺಉ͡ઢͰɺνʔϜڞ௨ͷݴޠͰ࡞ΔϞϒͰ߹ҙɾҙࢥܾఆ͢Δश׳
༏ઌɿ҆શੑɺকདྷੑͱεϐʔυ• ҆શੑ զʑϢʔβʔࢿ࢈Λ༬͔͍ͬͯΔ• কདྷੑͱεϐʔυ ։ൃظؒͱϦϦʔεޙͷมߋ༰қੑΛߟ͑Δྫ͑ʜ• 3%4ͷςʔϒϧ࠷খߏ কདྷతʹςʔϒϧ͕૿͑Δ͔͠Εͳ͍• ཧը໘࡞Βͳ͍ ӡ༻ඞཁ͕ͩ·ͣखӡ༻• ӡ༻Ͱ͑ΒΕΔมσʔλετϨʔδͰཧ• ΞϓϦέʔγϣϯ֎෦ετϨʔδͷ +40/ ϑΝΠϧΛࢀর͢Δ• ։࠵ظؒɺϙΠϯτɺίϯςϯπɺαʔϏε͕৳͔ͯ͠Βཧը໘ϞϒͰ߹ҙɾҙࢥܾఆ͢Δश׳
։ൃνʔϜͯ͢Ϟϒϓϩ• ݸਓʹ͕ࣝுΓ͘͜ͱΛආ͚Δ• ϙδςΟϒͳҙຯͰૠ͛ସ͕͑Մೳͳঢ়ଶʹ͓ͯ͘͠• ͜Ε͋ͷਓ͔͠Ͱ͖ͳ͍Λపఈతʹආ͚Δ• ઃܭɾઃܭϨϏϡʔɾ࣮ɾ୯ମςετͷ΄ͱΜͲϞϒͰߦ͏• ։ൃޙͷ্͍͛• όοΫΤϯυαʔϏε։ൃʢ(Pʣͷϝϯόʔʹ 5ZQF4DSJQU Πϯετʔϧ• εϓϦϯτͰҰॹʹͬͯ࣍εϓϦϯτͰλεΫΛרऔΓϞϒͰ߹ҙɾҙࢥܾఆ͢Δश׳
։ൃॱௐɻ͕ͩɺԶͬͯΔΜͩʜ࠷ॳͷಉظ͔ΒঃʑʹζϨʜ૯߹ςετதʹόάͱແؔͳʜʮͬͯ͜͜͜͏͡Όͳ͔ͬͨΜͰ͚ͨͬ͠ʁʯʮʓʓ͕͜ͷ΄͏͕ྑ͍ͱݴͬͨͷͰม͍͑ͯͩ͘͞ʯ͋ΘΘΘ͋ΘΘΘΘΘΘΘΘͬΘΘΘͬΘΘΘΘΘ͋͋ϞϒͰ߹ҙɾҙࢥܾఆ͢Δश׳
࠶ܝϞϒͰ߹ҙɾҙࢥܾఆ͢Δश׳
ϦΧόϦʔ͕ޮ͘λΠϛϯάͰ࠶Ϣʔεέʔεͷ֬ೝϞϒͰ߹ҙɾҙࢥܾఆ͢Δश׳
ෆ࣮֬ੑΛݮͤ͞ΔͨΊͷɺզʑͷઓུ• εϐʔυΛॏࢹͭͭ͠ϦΧόϦʔՄೳͳʹඞͣಉظΛ• ։ൃશͯϞϒϓϩͰ࣮ࢪࣝ͠ཧղͷภΓΛͳ͘͢• ζϨͲ͔͜Ͱى͖ΔͷͰൃࢄͱऩଋͷόϥϯεײ֮ΛͭϞϒͰ߹ҙɾҙࢥܾఆ͢Δश׳
࣍ #''ʹকདྷతͳมߋ༰қੑΛ ઓུϞϒͰ߹ҙɾҙࢥܾఆ͢Δश׳ ઓज़ϢʔεέʔεۦಈͰ։ൃ͢Δ ΤϥʔΠϕϯτͱվળ ΫϥΠΞϯτ ϒϥβͷྫ֎ʹదͳ 6* Λ #''ΫϥΠΞϯτʹ࠷దͳ (SBQI2- &SSPS ·ͱΊɿ҆ఆͨ͠ఆظతͳϦϦʔεͷ࣮ݱ ϢʔεέʔεۦಈͰ։ൃ͢Δ
ϢʔεέʔεۦಈͰ։ൃ͢Δʁ 6TFDBTF%SJWFO OPU.PEFM%SJWFOΫϦʔϯΞʔΩςΫνϟಉ৺ԁͷΤϯςΟςΟυϝΠϯۦಈઃܭͷதͰϞσϧΛத৺ʹͨ͠։ൃख๏ͰޠΒΕΔࠓճϞσϧͰͳ͘ϢʔεέʔεۦಈͰ։ൃ͍ͯ͠Δ ϢʔεέʔεۦಈͰ։ൃ͢Δ
#'' #BDLFOE'PS'SPOUFOE (SBQI2-• ΫϥΠΞϯταΠυϝϦοτ• ⭕ ΫϥΠΞϯτ͔Βͷը໘ʹରͯ͠ඞཁͳϦΫΤετޮ্͕• ΫϥΠΞϯτ͕ϢʔεέʔεʹԠͯ͡ΫΤϦΛΈཱͯΔ͜ͱ͕Մೳ• ࠓճෳࡶͳϩδοΫΛΫϥΠΞϯτʹدͤͨ͘ͳ͍• #'' ϝϦοτ• ރΕͯάϩʔεରͰͳ͍طଘ "1*ΛΞάϦήʔτ͠৽ن "1*ͱͯ͠࠶ར༻• ΫϥΠΞϯταΠυɾ#'' ڞ௨ͷϝϦοτ• ⭕ εΩʔϚʹΑͬͯͨΒ͞ΕΔํϑϨϯυϦʔͳ։ൃମ੍ߏங ϢʔεέʔεۦಈͰ։ൃ͢Δ
&YQSFTT "QPMMP 4FSWFS ϢʔεέʔεۦಈͰ։ൃ͢Δ
ʢࡶͳʣ݁ࠗͱਓੜͷุͰ͋ΔlࣗͷΞϓϦέʔγϣϯͰԿΒ͔ͷϑϨʔϜϫʔΫΛ͏͜ͱʹܾΊͨ࣌ͰɺͦͷΞϓϦέʔγϣϯϑϨʔϜϫʔΫʹറΒΕΔ͜ͱʹͳΔͷͩͱೝ͓ࣝͯ͘͠ඞཁ͕͋Δɻ͍ͷͱ͖ɺࡂ͍ͷͱ͖ɺ๛͔ͳͱ͖ɺශ͍͠ͱ͖ɺ݈͔ͳΔͱ͖ɺපΊΔͱ͖ɺ΄͔ͷͯ͢Λ٘ਜ਼ʹͯ͠ͰɺͦͷϑϨʔϜϫʔΫΛ͏͜ͱʹͳΔɻؾܰʹड͚ೖΕΒΕΔΑ͏ͳͷͰͳ͍ɻz$MFBO"SDIJUFDUVSFୈষ ϑϨʔϜϫʔΫৄࡉ ϢʔεέʔεۦಈͰ։ൃ͢Δ
ݱ࣮ ϢʔεέʔεۦಈͰ։ൃ͢Δ
εϐʔυײΛอͪͳ͕Βมߋ༰қੑΛ࣋ͯΔ࠷దղ• ٻΊΒΕ͍ͯΔͷ• νʔϜͰ߹ҙͨ͠ڞ௨ͷݴޠͱϢʔεέʔε• ϓϩμΫτͷ৳Λߟྀͨ͠มߋ༰қੑ• σʔλϕʔεɺετϨʔδɺΩϟογϡͳͲଓઌ͕มΘΔՄೳੑ• มߋΛ͙͢ʹٻΊΒΕΔ͜ͱ• ՁݕূϢʔβϏϦςΟςετͰมߋ͕ଟ͘Δͷϒϥβͷ (6*• #'' ͕ࢦ͍ͨ͠ͱ͜Ζ• ΫϥΠΞϯταΠυͰͷϢʔεέʔεΛϕʔεʹͨ͠ "1* ϢʔεέʔεۦಈͰ։ൃ͢Δ
ϢʔεέʔεΛத৺ʹ͢Δl༏ΕͨΞʔΩςΫνϟϢʔεέʔεΛத৺ʹ͍ͯ͠ΔͨΊɺϑϨʔϜϫʔΫɺπʔϧɺڥʹґଘ͢Δ͜ͱͳ͘ɺϢʔεέʔεΛαϙʔτ͢ΔߏΛͳ͘આ໌Ͱ͖Δz$MFBO"SDIJUFDUVSFୈ ষ ڣͿΞʔΩςΫνϟ ϢʔεέʔεۦಈͰ։ൃ͢Δ• νʔϜ͕࣋ͭಉ͡ޠኮ Ϣʔεέʔε• ϢʔεέʔεΛʮํʯͱͯ͠த৺ʹਾ͑Δ• ΫϦʔϯΞʔΩςΫνϟͷத৺ʹ͋ΔΤϯςΟςΟͳ͍
SFTPMWFSϢʔεέʔεΛ࣮ߦ ϢʔεέʔεۦಈͰ։ൃ͢Δ
มߋ༰қੑlιʔείʔυͷґଘੑɺଆʢ্ҐϨϕϧͷํʣ͚ͩʹ͔͍ͬͯͳ͚Ε͍͚ͳ͍ɻz$MFBO"SDIJUFDUVSF ୈ ষ ΫϦʔϯΞʔΩςΫνϟ ґଘੑͷϧʔϧ ϢʔεέʔεۦಈͰ։ൃ͢Δ• ࠶ܝϓϩμΫτͷ৳Λߟྀͨ͠มߋ༰қੑ• σʔλϕʔεɺετϨʔδɺΩϟογϡͳͲଓઌ͕༰қʹมߋɾૠ͛ସ͑Ͱ͖ͳ͍• Ϣʔεέʔε֎෦ଓʹؔ৺͕͋Δঢ়ଶ
ґଘͷํඞ্ͣҐϨϕϧʹͷΈ͔͏• ͭͷΤοηϯε͚ͩΛநग़• ґଘؔٯసͷ๏ଇ %*1• ͷɺదͳϨΠϠϦϯά• ӈԼͷͪ͜Όͪ͜Όͨͭ͠ࠓճআ֎ ϢʔεέʔεۦಈͰ։ൃ͢Δ
ͷɺϨΠϠϦϯά ϢʔεέʔεۦಈͰ։ൃ͢Δ
6TFDBTF ֎ͷϨΠϠʔʹґଘ͠ͳ͍ ϢʔεέʔεۦಈͰ։ൃ͢Δ
"EBQUPS 6TFDBTF ʹґଘ ϢʔεέʔεۦಈͰ։ൃ͢Δ
"EBQUPS ίϯετϥΫλͰ %* ϢʔεέʔεۦಈͰ։ൃ͢ΔϥΠϒϥϦͷؔ৺Λ֎• )551ϦΫΤετ͍ͨ͠• ྫOPEFGFUDI• 03.͍͍ͨ• ྫ5ZQF03.• ۩ମతʹओுͨ͘͠ͳ͍୯ମςετΛॻ͖͍͢• ґଘΛ฿͢ΔܕߏΛೖ͢Δ͚ͩ
*OGSBTUSVDUVSF• ͱʹ͔ࣝ͘Λ࣋ͨͤͳ͍• ϥΠϒϥϦϑϨʔϜϫʔΫ͕ఏڙ͢ΔͷΛ७ʹஔ ϢʔεέʔεۦಈͰ։ൃ͢Δ
&OUJUJFT ʁʁʁ&OUFSQSJTF#VTJOFTT3VMFT&OUJUJFTʁ ϢʔεέʔεۦಈͰ։ൃ͢Δ• $MFBO "SDIJUFDUVSF த৺ʹΤϯςΟςΟΛਾ͑ͨϞσϧۦಈ։ൃͰͳ͍• νʔϜڞ௨ݴޠͱϢʔεέʔεΛϕʔεʹͨ͠Ϣʔεέʔεۦಈͷ։ൃ• ϏδωεϧʔϧͳͲࣗͣͱΤϯςΟςΟʢϞσϧʣʹ
%*1ͱదͳϨΠϠϦϯά͚ͩͰಘΒΕΔϝϦοτ• ֦ॆमਖ਼͢͠͞Λओ؟ͱͨ͠ͷͰӡ༻͕ਏ͘ͳ͍• νʔϜڞ௨ݴޠΛར༻ͨ͠ϢʔεέʔεϕʔεͳͷͰဃ͕ͳ͍• ࠷େͷతͩͬͨΫϥΠΞϯταΠυͷෛՙۃྗബ͘Ͱ͖ͨΞʔΩςΫνϟϑΝʔετͰͳ͘ϓϩμΫτϑΝʔετͳ࠷ݶͷΞʔΩςΫνϟ ϢʔεέʔεۦಈͰ։ൃ͢Δ
զʑͷ #'' ઓུɾઓज़·ͱΊ• εϐʔυΛٻΊΒΕΔέʔεͰ߹ྲྀΛ• ઓ͏͖૬ޓͷೝࣝᴥᴪͰͳ͍• ઓ͏͖ϏδωεΛࠓޙ৳͍ͯ͘͠ʹ͋ͨͬͯͷෆ࣮֬ੑ• ͦͷͨΊʹઌਓͷͨ͠ΞʔΩςΫνϟͷΤοηϯε͕͋Δͣ• νʔϜڞ௨ͷݴޠͰઢͷߴ͞Λ߹Θ͓ͤͯ͘• ಉ͡ઢͰରͰ͖Δ༰͕ίʔυʹసࣸ͞Ε͍ͯΔ#''ʹকདྷతͳมߋ༰қੑΛ
࣍ #''ʹকདྷతͳมߋ༰қੑΛ ઓུϞϒͰ߹ҙɾҙࢥܾఆ͢Δश׳ ઓज़ϢʔεέʔεۦಈͰ։ൃ͢Δ ΤϥʔΠϕϯτͱվળ ΫϥΠΞϯτ ϒϥβͷྫ֎ʹదͳ 6* Λ #''ΫϥΠΞϯτʹ࠷దͳ (SBQI2- &SSPS ·ͱΊɿ҆ఆͨ͠ఆظతͳϦϦʔεͷ࣮ݱϒϥβͷྫ֎ʹదͳ 6* Λ
ϒϥβͷྫ֎3FGFSFODF&SSPS4ZOUBY&SSPS5ZQF&SSPSϒϥβͷྫ֎ʹదͳ 6* Λ
ϒϥβͷྫ֎ɿ%0.&YDFQUJPO• IUUQTIFZDBNHJUIVCJPXFCJEMJEM%0.&YDFQUJPO• %0.͔Βࢀর͍ͯ͠Δ 8FC*%- Ͱఆٛ• ྫ• ͷ௨৴ෆ௨ʹΑΔΤϥʔ• ϒϥβઃఆʹΑͬͯग़Δ͜ͱ͋ͬͨΓϒϥβͷྫ֎ʹదͳ 6* Λ
ϦϦʔεॳͷྫ֎ัଊ࣌ͷը໘• 3FBDU &SSPS#PVOEBSZ ͰϑΥϩʔ• ΤϥʔΠϕϯτૹ৴ͱϑΥʔϧόοΫ 6*ͷදࣔϒϥβͷྫ֎ʹదͳ 6* Λ
/FUXPSL&SSPSɿωοτϫʔΫͷෆ௨• ΄ͱΜͲաͯ͠Α͍• ຖ ສ΄ͲΠϕϯτ্͕͕ͬͯ͘Δ• Ұ࣌తʹωοτϫʔΫঢ়گ͕ѱ͘ͳΔɺλΠϜΞτ• $IVOL-PBE&SSPS-PBEJOHDIVOLGBJMFE• 6ODBVHIU JOQSPNJTF5ZQF&SSPS'BJMFEUPGFUDIϒϥβͷྫ֎ʹదͳ 6* Λ
4FDVSJUZ&SSPSɿ+BWB4DSJQU͔Β JOTFDVSFͳૢ࡞4FDVSJUZ&SSPS'BJMFEUPSFBEUIFMPDBM4UPSBHFQSPQFSUZGSPN8JOEPX"DDFTTJTEFOJFEGPSUIJTEPDVNFOUϒϥβͷྫ֎ʹదͳ 6* Λ
%0.&YDFQUJPOʹֻ͔Βͳ͍ఆ֎• ΤϥʔΠϕϯτ͕ൃੜ͠ͳ͍έʔε• ัଊͰ͖ͣʹՄࢹԽ͢Δ͜ͱ͕͍͠• ྫɿ XJOEPXPQFO ʹΑΔϙοϓΞοϓϒϩοΫϒϥβͷྫ֎ʹదͳ 6* Λ
XJOEPXPQFO BCVTF͞ΕΔϢʔεέʔε͕ଟ͍ϢʔβʔମݧΛ্ͤ͞ΔͨΊͷ৽͍͠ΟϯυΛ։͘ͱ͍͏త͕͋ΔʹؔΘΒͣɺࠂΛ։ͨ͘Ίʹѱ༻͞Ε͍ͯΔɻϢʔβʔΠϕϯτͰ͋ΔΩʔԡԼɾϚεΫϦοΫҎ֎Ͱཁٻ͞Εͨ߹ϒϩοΫ͞ΕΔϒϥβͷྫ֎ʹదͳ 6* Λl 5IFXJOEPXPQFO "1*IBTCFFOBCVTFEUPPQFOJOUSVTJWFBEWFSUJTJOH XIJDIJTSFHSFUGVMTJODFUIFSFBSFMFHJUJNBUFSFBTPOTUPPQFOBOFXXJOEPXUIBUFOIBODFVTFSFYQFSJFODF5SBEJUJPOBMMZ QPQVQXJOEPXTBSFCMPDLFEXIFOUIFZBSFOUFYQMJDJUMZSFRVFTUFECZBVTFSLFZQSFTTPSNPVTFDMJDLzIUUQTXXXDISPNJVNPSHEFWFMPQFSTEFTJHOEPDVNFOUTDPOTUSBJOFEQPQVQXJOEPXT
υΩϡϝϯτʹ໌ࣔ͞Εͯͳ͍͜ͱϒϥβͷྫ֎ʹదͳ 6* Λ_⼈⼈⼈⼈⼈⼈⼈⼈⼈⼈⼈⼈⼈⼈⼈_> ポップアップブロック!!! < ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
࣍ #''ʹকདྷతͳมߋ༰қੑΛ ઓུϞϒͰ߹ҙɾҙࢥܾఆ͢Δश׳ ઓज़ϢʔεέʔεۦಈͰ։ൃ͢Δ ΤϥʔΠϕϯτͱվળ ΫϥΠΞϯτ ϒϥβͷྫ֎ʹదͳ 6* Λ #''ΫϥΠΞϯτʹ࠷దͳ (SBQI2- &SSPS ·ͱΊɿ҆ఆͨ͠ఆظతͳϦϦʔεͷ࣮ݱ ΫϥΠΞϯτʹ࠷దͳ (SBQI2- &SSPS
ϦϦʔεޙ͔Δ͜ͱͨ͘͞Μ͋Δʮͣͬͱಉ͡λϒͰར༻͞ΕΔఆ͕ͩͬͨผλϒͰ։͘έʔε͕ଟͦ͏ʯ ΫϥΠΞϯτʹ࠷దͳ (SBQI2- &SSPS_⼈⼈⼈⼈⼈⼈⼈⼈⼈_> 例外画⾯!!! < ̄Y^Y^Y^Y^Y^Y^Y^Y^ ̄
ϦϦʔεޙ͔Δ͜ͱͨ͘͞Μ͋Δʮ"1* ͷϨεϙϯεʹԠͯ͡దͳϑΥʔϧόοΫ 6* ͕ඞཁʜʯ ΫϥΠΞϯτʹ࠷దͳ (SBQI2- &SSPS_⼈⼈⼈⼈⼈⼈⼈⼈⼈_> 例外画⾯!!! < ̄Y^Y^Y^Y^Y^Y^Y^Y^ ̄
(SBQI2-&SSPSͰదͳϑΟʔυόοΫΛఏڙ͢Δ ΫϥΠΞϯτʹ࠷దͳ (SBQI2- &SSPS
(SBQI2- &SSPS4QFD• FYUFOTJPOT• l5IJTFOUSZJTSFTFSWFEGPSJNQMFNFOUPSTUPBEEBEEJUJPOBMJOGPSNBUJPOUPFSSPSTIPXFWFSUIFZTFFGJU BOEUIFSFBSFOPBEEJUJPOBMSFTUSJDUJPOTPOJUTDPOUFOUTz• ϑΟʔϧυՃʹ੍ݶͳͦ͞͏• ࠓճར༻͢Δͷ FYUFOTJPOTDPEF ΫϥΠΞϯτʹ࠷దͳ (SBQI2- &SSPSIUUQTTQFDHSBQIRMPSHESBGUTFD&SSPST
"QPMMP4FSWFS͕࣋ͭྫ֎例外クラス extensions.code クラスApollError INTERNAL_SERVER_ERROR 継承元になるクラスSyntaxError GRAPHQL_PARSE_FAILED サブクラスValidationError GRAPHQL_VALIDATION_FAILED サブクラスAuthenticationError UNAUTHENTICATED サブクラスForbiddenError FORBIDDEN サブクラスUserInputError BAD_USER_INPUT サブクラス ΫϥΠΞϯτʹ࠷దͳ (SBQI2- &SSPS
"QPMMPͰͷྫ֎ͷऔΓѻ͍• SFTPMWFSҎԼͰى͖ͨྫ֎ϑϨʔϜϫʔΫ͕ัଊͯ͠ "QPMMP&SSPSଞʹ͓͖͔͑Δ• ΫΤϦ͕ JOWBMJEͰ͋ΕΑΖ͘͠ 7BMJEBUJPO&SSPSΛૹग़• 4QFDఆٛͷΤϥʔϨεϙϯεͷΈཱͯ "QPMMP4FSWFS͕ΑΖ͘͠Δ ΫϥΠΞϯτʹ࠷దͳ (SBQI2- &SSPS
ΫϥΠΞϯταΠυʹࣝผࢠʢDPEFʣΛૹΔ• ํ• SFTPMWFSʹྫ֎ૹग़Λूத• ෦తͳྫ֎ΛัଊͰ͖ΔΈΛ༻ҙ ΫϥΠΞϯτʹ࠷దͳ (SBQI2- &SSPS
ΫϥΠΞϯταΠυͱ࿈ܞ ΫϥΠΞϯτʹ࠷దͳ (SBQI2- &SSPSϓϩάϥϚϒϧͳ࿈ܞํ๏͕Ͱ͖ͳ͔ͬͨͨΊɺυΩϡϝϯτͰڞ༗
ΤϥʔΠϕϯτͱվળɺ·ͱΊ• ϒϥβͰԿ͕ى͜Δ͔Ѳ͢Δ• ϥϯλΠϜΤϥʔɿ։ൃͷͰ͖ͬͪΓ௵͍ͯͩ͘͠͞• %0.&YDFQUJPOɿ·͋·͋ى͜ΓಘΔɺஅΛ• 8FCΞϓϦέʔγϣϯϒϥβ͕ΠϯλϑΣʔε• ॳظϦϦʔε࣌Ͱͷ 6*ͷ࡞ΓࠐΈ४උ• ΤϥʔʹΑͬͯஅ͢ΔΛࣄલʹ͓ͯ͘͠ͱྑͦ͞͏• ػೳΛॆͨͤྑ͍Θ͚Ͱͳ͍• ͍৺རศੑΛߴΊΔʹՁΛΤϥʔΠϕϯτͱվળ
࣍ #''ʹকདྷతͳมߋ༰қੑΛ ઓུϞϒͰ߹ҙɾҙࢥܾఆ͢Δश׳ ઓज़ϢʔεέʔεۦಈͰ։ൃ͢Δ ΤϥʔΠϕϯτͱվળ ΫϥΠΞϯτ ϒϥβͷྫ֎ʹదͳ 6* Λ #''ΫϥΠΞϯτʹ࠷దͳ (SBQI2- &SSPS ·ͱΊɿ҆ఆͨ͠ఆظతͳϦϦʔεͷ࣮ݱ ·ͱΊɿ҆ఆͨ͠ఆظతͳϦϦʔεͷ࣮ݱ
ఆظతͳϦϦʔεͷ࣮ݱɿϞϒϫʔΫ ·ͱΊɿ҆ఆͨ͠ఆظతͳϦϦʔεͷ࣮ݱ• ༏ઌͱνʔϜͷҙࢥܾఆΛΠϕϯτԽ ࢪࡦվળ͕ᷓΕ͔͑Δ ༏ઌΛ͚ͭΔ ϞϒϫʔΫͱͯ͠νʔϜͰ߹ҙ ༏ઌ͕ߴ͚Εཌ 4QSJOUʹ։ൃ ͙͢ϦϦʔε• ཹͤ͞ͳ͍ΈΛνʔϜͰ࣋ͭ
ఆظతͳϦϦʔεͷ࣮ݱɿ3FOPWBUF• ։ൃڥͷ݈શͷͨΊʹ 3FOPWBUF Λಋೖ• ४ͯ͡ຖिΞοϓσʔτ͞Εଓ͚Δ• ʮຍʯͱνʔϜͰݺΜͰ͍Δ• ຍϞϒϓϩͷҰͰߦ͏ ·ͱΊɿ҆ఆͨ͠ఆظతͳϦϦʔεͷ࣮ݱ
ఆظతͳϦϦʔεͷ࣮ݱɿͷՄࢹԽ• νʔϜʹσʔλΞφϦετ͕ ໊ࡏ੶• %BUB4UVEJP ͰՄࢹԽ͍ͯ͠Δ• ঢ়گσΠϦʔ༦ձͰ֬ೝ• τϐοΫͳͲΛڞ༗͍ͯ͠Δ ·ͱΊɿ҆ఆͨ͠ఆظతͳϦϦʔεͷ࣮ݱ
·ͱΊɿ҆ఆͨ͠ఆظతͳϦϦʔεͷ࣮ݱ୭͔ͷܾఆ ʻ νʔϜͷ߹ҙɾҙࢥܾఆΞʔΩςΫνϟҰൠ ʻ νʔϜڞ௨ݴޠͷΞʔΩςΫνϟػೳͷఏڙ ʻ ػೳͱՁͷఏڙ ·ͱΊɿ҆ఆͨ͠ఆظతͳϦϦʔεͷ࣮ݱνʔϜͰεϐʔυΛ࣋ͬͨҙࢥܾఆΛ܁Γฦ͢ͱຖिϦϦʔε͢ΔதͰվળલਐ͕વʹͳͬͯ͘Δ
ݱͰಈ͍ͯΔਓ͕ͨͪҰ൪ଚ͍ྑ͍νʔϜͰɺྑ͍ϓϩμΫτΛ