Slide 1

Slide 1 text

GoݴޠͰgRPCʹೖ໳ͯ͠Έͨ

Slide 2

Slide 2 text

ࣗݾ঺հ Տ༢ढ़ً
 גࣜձࣾLIFULL 
 CoEϢχοτ։ൃਪਐάϧʔϓॴଐ
 ৽ଔ1೥໨
 ڵຯͷ͋Δ෼໺
 ɾϒϩοΫνΣʔϯ
 ɾFintech
 ݴޠ
 Node/Solidity/PHP/Apex/Go 


Slide 3

Slide 3 text

gRPCͱ͸Կ͔ • Google͕։ൃͨ͠RPCݺग़ϓϩτίϧ • ϝοηʔδ͸ProtocolBuffersΛ༻͍ͯ௨৴ • HTTP/2Λ༻͍ͯฒྻݺग़ɺ૒ํ޲ݺग़ɺετϦʔϛϯά ͳͲ͕Մೳ • .protoϑΝΠϧ͔Βίʔυ͕ࣗಈੜ੒Ͱ͖Δ • GoogleͷαʔϏεͰ΋࣮ࡍʹ࢖ΘΕ͍Δ

Slide 4

Slide 4 text

gRPCͱ͸Կ͔ ΫϥΠΞϯτͱαʔόͰෳ਺ͷݴޠΛαϙʔτ͍ͯ͠Δ
 →ϚΠΫϩαʔϏεͳͲͱ૬ੑ͕͍͍

Slide 5

Slide 5 text

4ͭͷRPCํࣜ • Unary(Simple)
 →1 request-1 response • ServerStreaming
 →1 request-N response • ClientStreaming
 →N request-1 response • BidirectionalStreaming
 →N request-N response

Slide 6

Slide 6 text

ϝϦοτ • REST APIΑΓURLઃܭָ͕
 →protoϑΝΠϧͰAPI࢓༷Λ໌จԽͰ͖Δ
 →දଆͱཪଆ͕࢓༷ͷ͢Γ߹Θָ͕ͤ • HTTP/2Ͱฒྻݺग़ͳͲ͕Ͱ͖ΔͨΊɺߴ଎ • ύϥϝʔλʔͷܕ෇͚͕Ͱ͖Δ

Slide 7

Slide 7 text

࡞੒ͷྲྀΕ 1. protoϑΝΠϧͷ࡞੒ 2. ᶃͰ࡞੒ͨ͠ϑΝΠϧΛίϯύΠϧͯ͠ɺࣗಈͰ਽ܗ ίʔυΛੜ੒ 3. ਽ܗίʔυΛݩʹαʔόʔˍΫϥΠΞϯτΛ࣮૷͢Δ

Slide 8

Slide 8 text

࣮ࡍʹ΍ͬͯΈΔ
 (Ұ൪γϯϓϧͳUnary)

Slide 9

Slide 9 text

protoϑΝΠϧ࡞੒

Slide 10

Slide 10 text

ίϚϯυ࣮ߦ

Slide 11

Slide 11 text

ίϚϯυͰੜ੒͞ΕΔ਽ܗϑΝΠϧ https://github.com/waytkheming/calculator-proto/blob/master/proto/calculator.pb.go

Slide 12

Slide 12 text

Serverଆ

Slide 13

Slide 13 text

Clientଆ

Slide 14

Slide 14 text

࣮ߦ

Slide 15

Slide 15 text

MongoDBΛ࢖ͬͯCUIͷTwitterΈ͍ͨͳͷΛ࡞ͬͯΈͨ https://github.com/waytkheming/gwitter-proto

Slide 16

Slide 16 text

ࢀߟURL • gRPC Documentation
 https://grpc.io/docs/ • ΫοΫύου͕gRPCΛ࠾༻͢Δ·ͰαʔϏεؒ௨৴Ͱ๊͑ͯ ͍ͨ՝୊ͱɺRubyͰgRPCΛӡ༻͢ΔͨΊͷ޻෉
 https://logmi.jp/tech/articles/320715 • gRPCͬͯԿʁ
 https://qiita.com/oohira/items/63b5ccb2bf1a913659d6 • gRPCʹ͓͚ΔRPCํࣜͷ੔ཧ
 https://qiita.com/yuzo777/items/046910c95559cf0fff68

Slide 17

Slide 17 text

Gopherಓ৔ͷײ૝

Slide 18

Slide 18 text

͝੩ௌ͋Γ͕ͱ͏͍͟͝·͠ ͨɻ