Slide 1

Slide 1 text

©2020 Wantedly, Inc. )551ΫϥΠΞϯτΛ࡞Ζ͏ͱֶͯ͠Ϳɺ ࢖͍΍͍͢ΠϯλϑΣʔεz Go Conference ’20 in Autumn SENDAI Oct 10, 2020 - @izumin5210

Slide 2

Slide 2 text

©2020 Wantedly, Inc. @izumin5210 Backend Chapter Lead, Profile Domain Wantedly, Inc. ‣ #BDLFOEͷ5FDI-FBEతͳ͜ͱΛ͍ͯ͠·͢ ‣ ੜ࢈ੑΛ্͛Δந৅ɾϑϨʔϜϫʔΫΛݟ͚ͭΔͷ͕޷͖Ͱ͢ ‣ ࠷ۙͷ͓͖ʹ͍Γύοέʔδ ▶HPMBOHPSHYUPPMTHPQBDLBHFTQBDLBHFTUFTU HPPHMFHPMBOHPSHQSPUPCVGSFqFDUQSPUPSFqFDU HJUIVCDPNWFLUBIHRMQBSTFS !UFTUJOHMJCSBSZSFBDUIPPLT

Slide 3

Slide 3 text

©2020 Wantedly, Inc. ‣ ʮ࢖͍΍͍͢ΠϯλϑΣʔεʯͱ͸ͳʹ͔ɺ࣮ྫ͔ΒֶͿʢߟ͑Δʣ ‣ ʮ࢖͍΍͍͢ΠϯλϑΣʔεʯΛ࣮ݱ͢ΔͨΊͷख๏ΛֶͿʢߟ͑Δʣ 8IBUJTJU

Slide 4

Slide 4 text

©2020 Wantedly, Inc. ͳͥਓ͸)551ΫϥΠΞϯτΛ࡞Γͨ͘ͳΔͷ͔

Slide 5

Slide 5 text

©2020 Wantedly, Inc. Ұൠతͳ)551ϦΫΤετ ؒҧ͍୳͠ίʔφʔͰ͢

Slide 6

Slide 6 text

©2020 Wantedly, Inc.

Slide 7

Slide 7 text

©2020 Wantedly, Inc. ݱ࣮ੈքͷΞϓϦέʔγϣϯͰ͸ɺ ΩϟϯηϧɾλΠϜΞ΢τΛͪΌΜͱѻ͏ͨΊʹ DPOUFYU$POUFYUΛ఻ൖ͢΂͖

Slide 8

Slide 8 text

©2020 Wantedly, Inc.

Slide 9

Slide 9 text

©2020 Wantedly, Inc. ݱ࣮ੈքͷΞϓϦέʔγϣϯͰ͸ɺ .FUSJDT ϩάͳͲ͍ΖΜͳ΋ͷΛऩूͨ͘͠ͳΔ

Slide 10

Slide 10 text

©2020 Wantedly, Inc.

Slide 11

Slide 11 text

©2020 Wantedly, Inc. ͜͏͍͏ͷ΋๨Ε͕ͪ

Slide 12

Slide 12 text

©2020 Wantedly, Inc. ‣ 0CTFSWBCJMJUZͷͨΊͷϑοΫ .FUSJDT -PHT 5SBDFT ʜ ΞΫηεϩά ‣ ద੾ͳʓʓઓུͷӅṭ Ωϟογϡ ϦτϥΠ λΠϜΞ΢τ ʜ lͪΌΜͱz)551ϦΫΤετ͢Δͷ͸೉͍͠ 1SPEVDUJPO3FBEJOFTTͷ؍఺ ‣ ڞ௨ϩδοΫͷ࣮૷ "VUI/ "VUI; ʜ ‣ ࢖͍΍͍͢"1* ৑௕ͳهड़͕ݮΒͤΔ ͍Ζ͍Ζ๨Εͳ͍ ʜ lศརϥΠϒϥϦzͱͯ͠ͷ؍఺

Slide 13

Slide 13 text

©2020 Wantedly, Inc. ‣ 0CTFSWBCJMJUZͷͨΊͷϑοΫ .FUSJDT -PHT 5SBDFT ʜ ΞΫηεϩά ‣ ద੾ͳʓʓઓུͷӅṭ Ωϟογϡ ϦτϥΠ λΠϜΞ΢τ ʜ lͪΌΜͱz)551ϦΫΤετ͢Δͷ͸೉͍͠ 1SPEVDUJPO3FBEJOFTTͷ؍఺ ‣ ڞ௨ϩδοΫͷ࣮૷ "VUI/ "VUI; ʜ ‣ ࢖͍΍͍͢"1* ৑௕ͳهड़͕ݮΒͤΔ ͍Ζ͍Ζ๨Εͳ͍ ʜ lศརϥΠϒϥϦzͱͯ͠ͷ؍఺ ʮ࠷ڧͷIUUQ$MJFOUίϯετϥΫλʯͰ ղܾ͢Δ΋ͷ΋ଟ͍

Slide 14

Slide 14 text

©2020 Wantedly, Inc. ‣ 0CTFSWBCJMJUZͷͨΊͷϑοΫ .FUSJDT -PHT 5SBDFT ʜ ΞΫηεϩά ‣ ద੾ͳʓʓઓུͷӅṭ Ωϟογϡ ϦτϥΠ λΠϜΞ΢τ ʜ lͪΌΜͱz)551ϦΫΤετ͢Δͷ͸೉͍͠ 1SPEVDUJPO3FBEJOFTTͷ؍఺ ‣ ڞ௨ϩδοΫͷ࣮૷ "VUI/ "VUI; ʜ ‣ ࢖͍΍͍͢"1* ৑௕ͳهड़͕ݮΒͤΔ ͍Ζ͍Ζ๨Εͳ͍ ʜ lศརϥΠϒϥϦzͱͯ͠ͷ؍఺ ͜ͷลͷʮࣄނΓ΍͢͞ʯ͸ʁ -JOUͰղܾͰ͖Δ΋ͷ΋͋Δ͕ʜ ʢFHUJNBLJOCPEZDMPTF TPOBUBSEOPDUYʣ

Slide 15

Slide 15 text

©2020 Wantedly, Inc. 3FBM8PSME)5513FRVFTU ‣ ඞཁͳ࡞ۀ͸࿙Εͯͳ͍͔ʁ DPOUFYU$POUFYUΛ఻ൖͤͯ͞ͳ͍ͱɺϝτϦΫε΍τϨʔε͕औΕͳ͘ͳΔ 4UBUVTDPEF͕YY΍YYͰ΋A IUUQ$MJFOU %PA͸ΤϥʔΛฦ͞ͳ͍ ʜ ‣ ҙ֎ͱ᠘͕ଟ͍ʂ -JOUͰΧόʔͰ͖Δ΋ͷ΋͋ΔʢFHUJNBLJOCPEZDMPTF TPOBUBSEOPDUYʣ lͪΌΜͱz)551ϦΫΤετ͢Δͷ͸೉͍͠

Slide 16

Slide 16 text

©2020 Wantedly, Inc. AOFUIUUQ$MJFOUA͸ྑ͘ͳ͍ʁ ‣ ͦΜͳ͜ͱ͸ͳ͍ʂ ϝδϟʔέʔεͰ͋Δʮ+40/ͷԟ෮ʯʹ͸͔ͨ͠ʹ৑௕͔΋͠Εͳ͍ ҰํͰɺඪ४ϥΠϒϥϦͳͷͰଟ༷ͳχʔζʹରԠͰ͖Δඞཁ͕͋Δ )551ͷ௨৴ࣗମ͕੒ޭ͍ͯ͠ΔͷͰYYͰ΋Τϥʔ͡Όͳ͍ͷ΋Θ͔Δ ετϦʔϜతͳ΍͔ͭ΋͠Εͳ͍ͷͰ<>CZUFͰ͸ͳ͘JP3FBEFSͳͷ΋Θ͔Δ ‣ ΋ͷ͝ͱͷҰଆ໘͚ͩΛݟͯྑ͠ѱ͠Λ൑ఆ͢Δͷ͸μϝ ʮͳͥͦ͏ͳ͍ͬͯΔ͔ʯΛߟ͑ͯΈΔͷ͕େ੾ ίϥϜతͳ࿩

Slide 17

Slide 17 text

©2020 Wantedly, Inc. ͸͍ʢٳܜʣ

Slide 18

Slide 18 text

©2020 Wantedly, Inc. +40/"1*Λୟ͘)551ΫϥΠΞϯτ ʹɺର৅ΛߜΓ·͢ 8FCΞϓϦέʔγϣϯ԰͞Μʹͱͬͯͷϝδϟʔέʔε

Slide 19

Slide 19 text

©2020 Wantedly, Inc. ʮྑ͍ΠϯλϑΣʔεʯ ʹ͢ΔͨΊʹ͸ʁ

Slide 20

Slide 20 text

©2020 Wantedly, Inc. APIs should be easy to use and hard to misuse. Joshua Bloch: Bumper-Sticker API Design* * https://www.infoq.com/articles/API-Design-Joshua-Bloch/ lྑ͍ΠϯλϑΣʔεzͱ͸

Slide 21

Slide 21 text

©2020 Wantedly, Inc. $IBSBDUFSJTUJDTPGB(PPE"1* ‣ &BTZUPMFBSO ‣ &BTZUPVTF FWFOXJUIPVUEPDVNFOUBUJPO ‣ )BSEUPNJTVTF ‣ &BTZUPSFBEBOENBJOUBJODPEFUIBUVTFTJU ‣ &BTZUPFYUFOE ‣ "QQSPQSJBUFUPBVEJFODF lྑ͍ΠϯλϑΣʔεzͱ͸ * “How to design a good API and why it matters” ͔ΒҾ༻ https://research.google/pubs/pub32713/

Slide 22

Slide 22 text

©2020 Wantedly, Inc. ‣ &BTZUPMFBSO&BTZUPVTF FWFOXJUIPVUEPDVNFOUBUJPO ࢖͍ํΛ༰қʹֶ΂Δ υΩϡϝϯτΛಡ·ͳͯ͘΋ɺʢิ׬ީิɾΠϯλϑΣʔεΛݟΕ͹ʣͰ࢖͑Δ ‣ )BSEUPNJTVTF FHʮDPOUFYU$POUFYU౉͠๨ΕʯʮIUUQTUBUVTνΣοΫ͠๨Εʯ͕ى͖ͳ͍Α͏ͳ࢓૊Έɾ*' ‣ &BTZUPFYUFOE FHʮʓʓͷͨΊͷϑοΫΛ࢓ࠐΉʯΈ͍ͨͳͷ͕༰қʹ࢓ࠐΊΔΑ͏ͳ &BTZUPVTF)BSEUPNJTVTFͳ)551ΫϥΠΞϯτ * “How to design a good API and why it matters” ͔ΒҾ༻ https://research.google/pubs/pub32713/

Slide 23

Slide 23 text

©2020 Wantedly, Inc. ૝૾Ͱ͖·ͨ͠ʁ

Slide 24

Slide 24 text

©2020 Wantedly, Inc. ଞͷݴޠͰͲ͏ͳ͍ͬͯΔ͔Λ ࢀߟʹͯ͠ΈΔ

Slide 25

Slide 25 text

©2020 Wantedly, Inc. BYJPT ϒϥ΢βɾ/PEFKTͰ࢖͑Δ+4ϥΠϒϥϦ ଞͷݴޠͰͷ)551ΫϥΠΞϯτ

Slide 26

Slide 26 text

©2020 Wantedly, Inc. BYJPT ϒϥ΢βɾ/PEFKTͰ࢖͑Δ+4ϥΠϒϥϦ ‣ ϦΫΤετͷ౤͛ํ͸໌շ )551.FUIPE+4ͷϝιου໊ YY YYͩͱ&SSPS͕UISPX͞ΕΔ ଞͷݴޠͰͷ)551ΫϥΠΞϯτ

Slide 27

Slide 27 text

©2020 Wantedly, Inc. BYJPT ϒϥ΢βɾ/PEFKTͰ࢖͑Δ+4ϥΠϒϥϦ ‣ ϦΫΤετͷ౤͛ํ͸໌շ )551.FUIPE+4ͷϝιου໊ YY YYͩͱ&SSPS͕UISPX͞ΕΔ ‣ *OUFSDFQUPSͱ͍͏ܗͰϦΫΤετલޙʹ հೖͰ͖ΔΑ͏ʹͳ͍ͬͯΔ ଞͷݴޠͰͷ)551ΫϥΠΞϯτ

Slide 28

Slide 28 text

©2020 Wantedly, Inc. 'BSBEBZ (JU)VCDMJFOUͰ΋ར༻͞ΕΔ3VCZHFN ଞͷݴޠͰͷ)551ΫϥΠΞϯτ

Slide 29

Slide 29 text

©2020 Wantedly, Inc. 'BSBEBZ (JU)VCDMJFOUͰ΋ར༻͞ΕΔ3VCZHFN ‣ ϦΫΤετͷ౤͛ํ͸BYJPTͱ΄΅ಉ͡ )551.FUIPEϝιου໊ YY YYͩͱ&SSPS͕UISPX͞ΕΔ ‣ .JEEMFXBSFΛ࣮૷ɾએݴ͢Δ͜ͱͰɺ
 ϦΫΤετલޙʹհೖͰ͖Δ ଞͷݴޠͰͷ)551ΫϥΠΞϯτ

Slide 30

Slide 30 text

©2020 Wantedly, Inc. ଞͷݴޠ͔ΒΘ͔Δ͜ͱ

Slide 31

Slide 31 text

©2020 Wantedly, Inc. ‣ )551.FUIPE໊͕ͦͷ··ϝιου໊ʹͳͬͯΔέʔε͕ଟ͍ ʮ)551$MJFOUΠϯελϯεͷϝιουʯύλʔϯʢ'BSBEBZ BYJPTʣ ʮ3FRVFTUΦϒδΣΫτͷCVJMEFSQBUUFSOʯύλʔϯʢ0L)UUQ 3FRVFTUTʣ ‣ YY YYͷॲཧํ਑͸େ͖̎͘௨Γ Τϥʔʹ͢ΔBYJPT 'BSBEBZʢWҎ߱ʣ AJT4VDDFTTAͱ͔APLAΈ͍ͨͳϝιου0L)UUQ 'BSBEBZʢ;Δ͍΍ͭʣ ‣ ϦΫΤετͷલޙʹॲཧΛڬΊΔΑ͏ʹͳ͍ͬͯΔʢ*OUFSDFQUPS .JEEMFXBSFʣ ‣ #BTF63-ΛઃఆͰ͖Δ΋ͷ΋ଟ͍ ଞͷݴޠ͔ΒΘ͔Δ͜ͱ

Slide 32

Slide 32 text

©2020 Wantedly, Inc. Ͳ͏͍͏΋ͷ͕޷·ΕΔ͔͸Θ͔ͬͨ
 ʢؾ͕͢Δʣ

Slide 33

Slide 33 text

©2020 Wantedly, Inc. Ͳ͏(PͷΠϯλϑΣʔεʹམͱ͠ɺ ࣮૷͍ͯ͘͠ʁ

Slide 34

Slide 34 text

©2020 Wantedly, Inc. HJUIVCDPNJ[VNJOIYͷྫ ࣾ಺Ͱ࢖ͬͯͨ)551DMJFOUΛϦϓϨʔεͰ͖ͳ͍͔ͳʙͬͯ࡞ͬͯΈͨ

Slide 35

Slide 35 text

©2020 Wantedly, Inc. *OUFSDFQUPSͷ࣮ݱ .JEEMFXBSFͱݺ͹ΕͨΓ΋͢ΔɺϦΫΤετલޙ΁ͷϑοΫػߏ

Slide 36

Slide 36 text

©2020 Wantedly, Inc. )551ΫϥΠΞϯτͷ*OUFSDFQUPS3PVOE5SJQQFS ࣮͸ඪ४Ͱͦ͏͍͏͜ͱ͕࣮ݱͰ͖Δػߏ͕͋ΔAOFUIUUQ3PVOE5SJQQFSA

Slide 37

Slide 37 text

©2020 Wantedly, Inc. )551ΫϥΠΞϯτͷ*OUFSDFQUPS3PVOE5SJQQFS )551TFSWFSͷϛυϧ΢ΣΞύλʔϯʢAOFUIUUQ)BOEMFSAʣͱಉ͡Α͏ͳ࡞Γํ

Slide 38

Slide 38 text

©2020 Wantedly, Inc. ੈͷதͷIUUQ3PVOE5SJQQFS ੈͷதͰ΋ී௨ʹ࢖ΘΕ͍ͯΔ HPEPDPSHHPMBOHPSHYPBVUI HPPQFODFOTVTJPQMVHJOPDIUUQ

Slide 39

Slide 39 text

©2020 Wantedly, Inc. 'VODUJPOBM0QUJPO1BUUFSO ͜ͷઌ3PVOU5SJQQFSҎ֎΋ࢦఆͨ͘͠ͳΔ͸ͣͳͷͰɺ'VODUJPOBM0QUJPO1BUUFSOʹ

Slide 40

Slide 40 text

©2020 Wantedly, Inc. ΫϥΠΞϯτͷΠϯλϑΣʔε ೔ৗͰίʔυΛॻ͍͍ͯͯɺ΋ͬͱ΋৮ΕΔ෦෼ɻख৮Γ͕େࣄɻ

Slide 41

Slide 41 text

©2020 Wantedly, Inc. طଘͷ)551ΫϥΠΞϯτͷΠϯλϑΣʔε #VJMEFSQBUUFSOͩͱऴ୺ͷϝιουݺͼग़͕͠ඞཁʹͳΓ ͦΕΛ֮͑Δͷ͕ϜζΧγΠͱ͍͏ҹ৅Λ͍࣋ͬͯΔʢ޷Έͷ໰୊͔΋ʣ 3FRVFTUCVJMEFSQBUUFSOΛΑ͘ݟ͔͚Δؾ͕͢Δ

Slide 42

Slide 42 text

©2020 Wantedly, Inc. ʮ͍͍ײ͡ͷ)551$MJFOUʯΠϯλϑΣʔεํ਑

Slide 43

Slide 43 text

©2020 Wantedly, Inc. ʮ͍͍ײ͡ͷ)551$MJFOUʯΠϯλϑΣʔεํ਑ )551.FUIPE໊ͱҰக͢Δϝιου໊ ʢϝιου໊͕ͪΌΜͱิ׬Ͱग़͖ͯͯศརʂʣ

Slide 44

Slide 44 text

©2020 Wantedly, Inc. ʮ͍͍ײ͡ͷ)551$MJFOUʯΠϯλϑΣʔεํ਑ DPOUFYU$POUFYU͕ඞਢҾ਺
 ʢ๨ΕΔ΄͏͕ϜζΧγΠʂʣ

Slide 45

Slide 45 text

©2020 Wantedly, Inc. ໰୊͸͔͜͜Β

Slide 46

Slide 46 text

©2020 Wantedly, Inc. (FOFSJDTܕύϥϝλతͳ΋ͷ͕ͳ͍(PͰ ϨεϙϯεɾΤϥʔΛͲ͏औΓग़͔͢

Slide 47

Slide 47 text

©2020 Wantedly, Inc. ͺͬͱࢥ͍ͭ͘ྫʢਖ਼ৗܥʣ ѱ͘͸ͳ͍͕ɺ+40/Ҏ֎ͷํʹϚοϐϯά͍ͨ͠ͱ͖ʹͲ͏͢Δ͔͸՝୊ <>CZUFT΍JP3FBEFSͷऔΓग़͠ޱ͸ผͰඞཁ

Slide 48

Slide 48 text

©2020 Wantedly, Inc. ͺͬͱࢥ͍ͭ͘ྫʢҟৗܥʣ YY YYͳͲͷΤϥʔϨεϙϯε͕ฦͬͯ͘ΔܥͰ͸ɺ#PEZΛݟ͍ͨ͜ͱ͸ී௨ʹ͋Δ ͨͩɺ͜͜ͰͲ͏͍͏*'Λఏڙ͢Δ͔͸೰·͍͠

Slide 49

Slide 49 text

©2020 Wantedly, Inc. ͺͬͱࢥ͍ͭ͘ྫʢҟৗܥʣ YY YYͳͲͷΤϥʔϨεϙϯε͕ฦͬͯ͘ΔܥͰ͸ɺ#PEZΛݟ͍ͨ͜ͱ͸ී௨ʹ͋Δ ͨͩɺ͜͜ͰͲ͏͍͏*'Λఏڙ͢Δ͔͸೰·͍͠ "QJ&SSPS΋3FTQPOTFJOUFSGBDFʢ4UBUVT͕औΕͨΓ3FTQPOTFCPEZΛॲཧͰ͖ͨΓ͢ΔʣΛ ࣮૷ͯ͠͠·͑͹͍͍͔΋͠Εͳ͍ ʢ͋ͱ͔Βࢥ͍͍ͭͯεϥΠυʹ଍͞Ε·ͨ͠ʣ

Slide 50

Slide 50 text

©2020 Wantedly, Inc. ‣ ʮͺͬͱࢥ͍ͭ͘ྫʯͰ΋ҙ֎ͱѱ͘ͳ͍ ‣ ͨͩɺͲ͏͍͏ܗࣜͰEFTFSJBMJ[F͢Δ͔ͷ
 ʮ֦ுੑʢ&BTZUPFYUFOEʣʯ͸͓೰ΈϙΠϯτ ‣ ଞͷ#VJMEFSQBUUFSOͷϥΠϒϥϦʹൺ΂ͯ
 Τϥʔॲཧ͕ճ෼ଟͯ͘չ͍͠ʢʁʣ

Slide 51

Slide 51 text

©2020 Wantedly, Inc. ͳΜ͔չ͍͠ͷͰ ΋͏Ұஈ֊͔ͬ͜Α͘ศརʹͰ͖ͳ͍͔

Slide 52

Slide 52 text

©2020 Wantedly, Inc. HJUIVCDPNHPSFTUZSFTUZͷΤϥʔϋϯυϦϯά ͜Ε͕ώϯτʹͳΔͷͰ͸ʁ ҰํͰɺͭͷΤϥʔܕ͔͠౉ͤͳ͍ͱ͜Ζ͸վળͰ͖Δͱ͍͍ͷ͔΋ʁ ΤϥʔͷVONBSTIBMઌΛࢦఆͰ͖Δ

Slide 53

Slide 53 text

©2020 Wantedly, Inc. ݁Ռ

Slide 54

Slide 54 text

©2020 Wantedly, Inc. ͜͏ͳΓ·ͨ͠ ʢ͋·Γʹָ͘͠ͳͬͪΌͬͯɺԿΛͲ͏ߟ͑ͯ͜͏ͳ͔ͬͨ͸๨Εͨʜʣ ʢύλʔϯϚον͕ೖͬͨ3VCZ͕΋͏͙͢ग़Δͧʂ͘Β͍ͷ࣌ظʹॻ͍ͯͨͷͰɺ͔ͦ͜Βண૝ಘͨʁʣ

Slide 55

Slide 55 text

©2020 Wantedly, Inc.

Slide 56

Slide 56 text

©2020 Wantedly, Inc. ϦΫΤετϝιου΋0QUJPOΛड͚ΒΕΔΑ͏ʹ ʢಛఆͷ"1*͚ͩԿΒ͔ͷઓུ͕ҧ͏͜ͱ͸͋Γ͏ΔͷͰɺ͜ͷมߋࣗମʹ߹ཧੑ͸͋Δʣ

Slide 57

Slide 57 text

©2020 Wantedly, Inc. 3FTQPOTF)BOEMFSͱ͍͏֓೦Λಋೖͨ͠ จࣈ௨Γ3FTQPOTFʢΤϥʔؚΉʣΛड͚ͯղऍͨ͠ΓɺผͷΤϥʔʹม׵ͨ͠Γ͢ΔϨΠϠ

Slide 58

Slide 58 text

©2020 Wantedly, Inc. $POEJUJPOBM3FTQPOTF)BOEMFSͱ͍͏֓೦Λಋೖͨ͠ 3FTQPOTF)BOEMFSͷൃՐ৚݅Λࢦఆ͢ΔͨΊͷΠϯλϑΣʔε ʮYYͷͱ͖͸<>6TFSʹVONBSTIBMʯʮYY YYͷͱ͖͸FSSPSʹม׵ʯͱ͍ͬͨ ॊೈͳϋϯυϦϯάΛࢦఆͰ͖Δ ίϨࣗମ͸IY0QUJPOʹͳ͍ͬͯΔ

Slide 59

Slide 59 text

©2020 Wantedly, Inc. ݁Ռ

Slide 60

Slide 60 text

©2020 Wantedly, Inc. HJUIVCDPNJ[VNJOIYݱࡏͷܗ

Slide 61

Slide 61 text

©2020 Wantedly, Inc. HJUIVCDPNJ[VNJOIYݱࡏͷܗ ‣ ❓&BTZUPMFBSO ‣ ❓&BTZUPVTF FWFOXJUIPVUEPDVNFOUBUJPO ‣ ❓)BSEUPNJTVTF ‣ ❓&BTZUPSFBEBOENBJOUBJODPEFUIBUVTFTJU ‣ ❓&BTZUPFYUFOE ‣ ❓"QQSPQSJBUFUPBVEJFODF

Slide 62

Slide 62 text

©2020 Wantedly, Inc. HJUIVCDPNJ[VNJOIYݱࡏͷܗ ‣ ❓&BTZUPMFBSO ‣ ❓&BTZUPVTF FWFOXJUIPVUEPDVNFOUBUJPO ‣ ✅)BSEUPNJTVTF ‣ ❓&BTZUPSFBEBOENBJOUBJODPEFUIBUVTFTJU ‣ ✅&BTZUPFYUFOE ‣ ❓"QQSPQSJBUFUPBVEJFODF

Slide 63

Slide 63 text

©2020 Wantedly, Inc. HJUIVCDPNJ[VNJOIYݱࡏͷܗ ‣ ❓&BTZUPMFBSO ‣ ❓&BTZUPVTF FWFOXJUIPVUEPDVNFOUBUJPO ‣ ✅)BSEUPNJTVTF ‣ ❓&BTZUPSFBEBOENBJOUBJODPEFUIBUVTFTJU ‣ ✅&BTZUPFYUFOE ‣ ❓"QQSPQSJBUFUPBVEJFODF ‣ .JTVTF͸͔ͳΓݮΔͷͰ͸ʁ ΫϥΠΞϯτ͕ԿΛฦ͔͕ࣗ͢໌ ΫϥΠΞϯτڞ௨ͷৼΔ෣͍ΛࢦఆͰ͖Δ YYYY΋ΤϥʔʹͳΔ ‣ &BTZUPMFBSOVTF͸Ͳ͏ͩΖ͏ʁ $POEJUJPOBM3FTQPOTF)BOEMFSͷ
 ྑ͍υΩϡϝϯτɾ&YBNQMFΛఏڙͰ͖Δ͔

Slide 64

Slide 64 text

©2020 Wantedly, Inc. ଞͷ࣮ݱํ๏͸ʁ

Slide 65

Slide 65 text

©2020 Wantedly, Inc. "1*εΩʔϚ͔Βͷίʔυੜ੒ ‣ 0QFO"1* 4XBHHFS ͔Β)551ΫϥΠΞϯτͷίʔυΛੜ੒͢Δͱ͍͏Ξϓϩʔν HJUIVCDPNHPTXBHHFSHPTXBHHFS ‣ TUSVDUΛड͚औΓTUSVDUΛฦؔ͢਺͕ੜ·ΕΔͷͰɺར༻·Ͱͷোน͸গͳ͍ ‣ εΩʔϚʢ࢓༷ॻʣ͔ΒίʔυΛੜ੒͢ΔͷͰNJTVTF΋ى͖ͮΒ͍ εΩʔϚۦಈ։ൃɺྑͦ͞͏ʹݟ͑Δ ଞͷlྑ͍ΠϯλϑΣʔεz࣮ݱख๏

Slide 66

Slide 66 text

©2020 Wantedly, Inc. ͳͥ4XBHHFSΛ࠾༻͠ͳ͔͔ͬͨ ‣ ࣾ಺ͷ৽ن"1*͸͢΂ͯ1SPUPCVG*%-ͰεΩʔϚ͕هड़͞Ε͍ͯͨ ίϨࣗମ͸ʢΞϊςʔγϣϯΛॻ͚͹ʣ0QFO"1*ͷTQFDʹม׵Ͱ͖Δ ‣ ͜ͷ1SPUPCVG*%-ͷར༻͸1SPUPCVGͱ͍͏γϦΞϥΠθʔγϣϯͷͨΊͰ͸ͳ͘ɺ
 H31$ಋೖʹ޲͚ͨεΩʔϚۦಈ։ൃH31$TFSWFSͷٕज़ݕূͱ͍͏ଆ໘͕ڧ͔ͬͨ ଞͷlྑ͍ΠϯλϑΣʔεz࣮ݱख๏

Slide 67

Slide 67 text

©2020 Wantedly, Inc. ޙ೔ᩀ HJUIVCDPNJ[VNJOIY͸ࣾ಺)551$MJFOUΛஔ͖׵͑ͨͷ͔ʁʂ

Slide 68

Slide 68 text

©2020 Wantedly, Inc. Real World Migration from HTTP to gRPC in Ruby #grpcconf https://speakerdeck.com/south37/real-world-migration-from-http-to-grpc-in-ruby-number-grpcconf

Slide 69

Slide 69 text

©2020 Wantedly, Inc. ॕH31$׬શຊ൪౤ೖ Real World Migration from HTTP to gRPC in Ruby #grpcconf https://speakerdeck.com/south37/real-world-migration-from-http-to-grpc-in-ruby-number-grpcconf

Slide 70

Slide 70 text

©2020 Wantedly, Inc. ৽نʹॻ͔ΕΔ"1*͸͢΂ͯH31$ʹ ʢ)551ΫϥΠΞϯτͷग़൪͕ΊͬͪΌݮͬͨʣ Real World Migration from HTTP to gRPC in Ruby #grpcconf https://speakerdeck.com/south37/real-world-migration-from-http-to-grpc-in-ruby-number-grpcconf

Slide 71

Slide 71 text

©2020 Wantedly, Inc. ݁࿦ H31$͸ਆ

Slide 72

Slide 72 text

©2020 Wantedly, Inc. ͓ΘΓ

Slide 73

Slide 73 text

©2020 Wantedly, Inc. ͓ΘΓ

Slide 74

Slide 74 text

©2020 Wantedly, Inc. ͳͥH31$͸lྑ͍z͔ ‣ ໌շͳ*%-ʹΑΔεΩʔϚఆٛ ‣ Α͋͘ΔϓϩάϥϛϯάݴޠͬΆ͍4ZOUBYͰ ಡΉͱ͖ͷෛՙ͕௿͍ ‣ ʮΠϯσϯτϛεͬͯҙਤ͠ͳ͍εΩʔϚʹʯ Έ͍ͨͳ:".-͋Δ͋Δࣄނ͸ى͖ͳ͍ ‣ ʮಠࣗݴޠʯ͸σϝϦοτͱ΋ݴ͑Δ͕ɺ
 1SPUPCVG*%-͸े෼޿͘࢖ΘΕ͍ͯΔ͸ͣ lྑ͍ΠϯλϑΣʔεzͱ͍͏ࢹ఺ͰͷH31$

Slide 75

Slide 75 text

©2020 Wantedly, Inc. ͳͥH31$͸lྑ͍z͔ ‣ ੜ੒͞ΕΔΠϯλϑΣʔεͷlྑ͞z ‣ ΋͸΍ؒҧ͑Α͏͕ʢ͋·Γʣͳ͍ ‣ Τϥʔॲཧ΋H31$ͱ͍͏ʮϑϨʔϜϫʔΫʯͷϨϕϧͰߟ͑ΒΕ͍ͯΔ lྑ͍ΠϯλϑΣʔεzͱ͍͏ࢹ఺ͰͷH31$

Slide 76

Slide 76 text

©2020 Wantedly, Inc. ͪΌΜͱͨ݁͠࿦ ‣ l$IBSBDUFSJTUJDPGB(PPE"1*zͱଞݴޠͷ)551ΫϥΠΞϯτ͔Βɺ
 ࢖͍΍͍͢)551ΫϥΠΞϯτʢ+40/"1*ΫϥΠΞϯτʣͷܗΛ໛ࡧͨ͠ ‣ Α͋͘Δʮ࢖͍΍͍͢)551ΫϥΠΞϯτʯΛຬͨ͢Α͏ɺ(PͰ)551ΫϥΠΞϯτΛ࣮૷ͨ͠ 3FBMXPSMEBQQMJDBUJPOͰར༻Ͱ͖ΔΑ͏ɺ)BSEUPNJTVTF&BTZUPFYUFOEʹؾΛ࢖ͬͯΈͨ HJUIVCDPNJ[VNJOIY ‣ ݴޠɾϑϨʔϜϫʔΫɾϓϩτίϧ໰Θͣɺʮྑ͍ΠϯλϑΣʔεʯͷΤοηϯε͸ಉ͡
 ΞϯςφΛ޿͘ுͬͯٵऩ͍͚ͯ͠Δͱڧ͍෢ثʹͳΔ ‣ H31$ʢྑ͍εΩʔϚఆٛݴޠͱɺ͔ͦ͜Βੜ੒͞ΕΔྑ͍ΠϯλϑΣʔεͷίʔυʣ͸ਆ