Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
gRPC Server with golang
Search
abemotion
May 20, 2019
Technology
3
1.6k
gRPC Server with golang
golang.tokyo # 24 の資料です。
https://golangtokyo.connpass.com/event/129067/
abemotion
May 20, 2019
Tweet
Share
More Decks by abemotion
See All by abemotion
『Go言語による並行処理』 を読んで
abemotion
1
1.2k
Go Modules
abemotion
2
840
Other Decks in Technology
See All in Technology
事業価値と Engineering
recruitengineers
PRO
6
4.9k
Yahoo!広告ビジネス基盤におけるバックエンド開発
lycorptech_jp
PRO
2
320
まだ間に合う! StrandsとBedrock AgentCoreでAIエージェント構築に入門しよう
minorun365
PRO
9
400
モバイルアプリ研修
recruitengineers
PRO
5
1.5k
新規案件の立ち上げ専門チームから見たAI駆動開発の始め方
shuyakinjo
0
590
ドキュメントはAIの味方!スタートアップのアジャイルを加速するADR
kawauso
3
470
microCMS 最新リリース情報(microCMS Meetup 2025)
microcms
0
330
AWS環境のリソース調査を Claude Code で効率化 / aws investigate with cc devio2025
masahirokawahara
2
510
生成AI時代のデータ基盤
shibuiwilliam
1
660
生成AI時代に必要な価値ある意思決定を育てる「開発プロセス定義」を用いた中期戦略
kakehashi
PRO
1
210
自社製CMSからmicroCMSへのリプレースがプロダクトグロースを加速させた話
nextbeatdev
0
360
スプリントレトロスペクティブはチーム観察の宝庫? 〜チームの衝突レベルに合わせたアプローチ仮説!〜
electricsatie
1
130
Featured
See All Featured
Unsuck your backbone
ammeep
671
58k
[RailsConf 2023] Rails as a piece of cake
palkan
56
5.8k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
Testing 201, or: Great Expectations
jmmastey
45
7.6k
Why Our Code Smells
bkeepers
PRO
339
57k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
The Cost Of JavaScript in 2023
addyosmani
53
8.9k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
284
13k
Agile that works and the tools we love
rasmusluckow
330
21k
Art, The Web, and Tiny UX
lynnandtonic
302
21k
Transcript
HPMBOHUPLZP H31$4FSWFSXJUIHPMBOH HPMBOHUPLZP !BCFNPUJPO
HPMBOHUPLZP ࣗݾհ !BCFNPUJPO DPDPOBMB 4FSWFS4JEF&OHJOFFS ։ൃج൫νʔϜ (P3BJMT$BLF1)1 5XJUUFSBCFNPUJPO ςχεొࢁ
HPMBOHUPLZP εΩϧͷϑϦʔϚʔέοτ ݸਓͷࣝɾεΩϧɾܦݧΛؾܰʹചങ ొձһສਓ ίίφϥ๏૬ஊ ίίφϥϋϯυϝΠυ
HPMBOHUPLZP ৽ϓϩϑΟʔϧϖʔδ ˠɹϚΠΫϩαʔϏεߏͰ։ൃ ɹɹHPMBOHΞοϓσʔτ ɹɹɹɹɹʢEFQˠ(P.PEVMFTʣ
HPMBOHUPLZP ηογϣϯ༰ ϚΠΫϩαʔϏεߏͷ"1*(BUFXBZΛ H31$4FSWFS$MJFOUͱͯ͠ߏஙͨ͠ܦݧΛݩʹ͠·͢ H31$ͷ֓ཁʙߟྀͨ͠τϐοΫΛղઆ
HPMBOHUPLZP γεςϜߏ "1*(BUFXBZ HPMBOH ɾ1SPpMF4FSWJDF 3BJMT ͷ ઃܭʙ։ൃ·Ͱ୲ /VYU&YQSFTT HPMBOH
3BJMT H31$ H31$ "1*(BUFXBZ 1SPpMF4FSWJDF 1SPpMF8FC
HPMBOHUPLZP ΞδΣϯμ H31$֓ཁ H31$4FSWFS$MJFOU H31$Τϥʔॲཧ HPHSQDNJEEMFXBSF
HPMBOHUPLZP H31$֓ཁ
HPMBOHUPLZP H31$֓ཁ (PPHMF͕։ൃͨ͠31$'SBNFXPSL )551Ͱ௨৴ 1SPUPDPM#VGGFSTͰΠϯλʔϑΣʔεఆٛ ༷ʑͳݴޠʹରԠ $ ɺ+BWBɺ1ZUIPOɺ(Pɺ3VCZɺ$ ๛ͳࣄྫ (PPHMFɺ/&5'-*9ɺ$*4$0
ࠃاۀͷ࠾༻૿͖͍͑ͯͯΔ
HPMBOHUPLZP H31$ϝϦοτ QSPUPϑΝΠϧͰΠϯλʔϑΣΠε༷ΛҰݩཧ QSPUPϑΝΠϧ͕"1*༷ॻΘΓʹ αʔόଆͱҟͳΔ։ൃݴޠ༻ͷΫϥΠΞϯτίʔυࣗಈੜ ෳݴޠʹରԠ͓ͯ͠ΓɺϚΠΫϩαʔϏε͖ ίʔυͷࣗಈੜͰɺຊདྷ࣌ؒΛ͔͚Δ͖ػೳ࣮ʹूத ύϑΥʔϚϯεߴ
HPMBOHUPLZP H31$։ൃͷྲྀΕ QSPUPϑΝΠϧఆٛ ιʔείʔυͷࣗಈੜ αʔόͷ࣮ ΫϥΠΞϯτͷ࣮
HPMBOHUPLZP QSPUPDίϚϯυ QSPUPϑΝΠϧ͔Βɺ֤ݴޠ༻ͷΫϥεɾؔมͨ͠ ϑΝΠϧΛࣗಈੜͯ͘͠ΕΔ$PNQJMFS IUUQTHJUIVCDPNQSPUPDPMCVGGFSTQSPUPCVG QSPUPDQSPUP@QBUI*.1035@1"5)HP@PVU%45@%*3 QBUIUPpMFQSPUP .BLFpMFʹఆٛ͠ɺίϚϯυԽ QSPUPϑΝΠϧϦϙδτϦཧ͠HJUTVCNPEVMF
HPMBOHUPLZP H31$4FSWFS$MJFOU
HPMBOHUPLZP γεςϜߏ /VYU&YQSFTT HPMBOH 3BJMT H31$ H31$ "1*(BUFXBZ 1SPpMF4FSWJDF 1SPpMF8FC
H31$$MJFOU H31$4FSWFS
HPMBOHUPLZP QSPUPఆٛ TZOUBY 1SPUPDPM#VGGFSTόʔδϣϯࢦఆ QBDLBHF ໊લিಥΛආ͚ΔͨΊʹ༻ ֤αʔϏεͰϦϙδτϦ͝ͱʹ͍ͬͯ·͢ PQUJPO ֤ݴޠͰQBDLBHF͕ͲͷΑ͏ʹղऍ͞ΕΔ͔
HPMBOHUPLZP γεςϜߏ /VYU&YQSFTT HPMBOH 3BJMT H31$ H31$ "1*(BUFXBZ 1SPpMF4FSWJDF 1SPpMF8FC
H31$4FSWFS H31$$MJFOU
HPMBOHUPLZP QSPUPఆٛ TFSWJDF 31$Λఆٛɻ Ϧιʔε୯ҐͰϑΝΠϧ໊ͱରԠؔ NFTTBHF ϦΫΤετϨεϙϯεͷσʔλߏఆٛ ֤ϑΟʔϧυ໊લɾܕɾλάΛ࣋ͭ JOUJOUɺTUSJOHɺCPPMɺSFQFBUFE JNQPSU
ଞύοέʔδϑΝΠϧͷσʔλߏΛ༻
HPMBOHUPLZP "1*(BUFXBZ ϑϨʔϜϫʔΫΛ༻͍ͣʹ։ൃ ·ͩσϑΝΫτελϯμʔυͳ͘ɺෛ࠴Խճආ ඪ४ύοέʔδ֎෦ϥΠϒϥϦ ύοέʔδߏ ϨΠϠΞʔΩςΫνϟ-JHIUXFJHIU%%% JOUFSGBDFɿϦΫΤετϋϯυϥ BQQMJDBUJPO͍ΘΏΔϏδωεϩδοΫ EPNBJO͍ΘΏΔϞσϧɻߏମఆٛͳͲ
JOGSBTUSVDUVSFσʔλΞΫηεͷ࣮ ͦͦ૬ޓࢀর͢ΔͱΤϥʔ
HPMBOHUPLZP H31$4FSWFSىಈ
HPMBOHUPLZP JOUFSGBDFT
HPMBOHUPLZP BQQMJDBUJPO
HPMBOHUPLZP H31$Τϥʔॲཧ
HPMBOHUPLZP H31$Τϥʔॲཧ ಠࣗͷΤϥʔίʔυ͕༻ҙ͞Ε͍ͯΔ )551εςʔλείʔυͱͷϚοϐϯά IUUQTHJUIVCDPNHPPHMFBQJT HPPHMFBQJTCMPCNBTUFSHPPHMFSQD DPEFQSPUP
HPMBOHUPLZP 1SPpMF4FSWJDF H31$Τϥʔੜ "1*(BUFXBZ BQQMJDBUJPO ΤϥʔใՃ JOUFSGBDFT H31$Τϥʔʹม ΤϥʔॲཧͷྲྀΕ 3BJMT
H31$ HPMBOH "1*(BUFXBZ 1SPpMF4FSWJDF
HPMBOHUPLZP BQQMJDBUJPOΤϥʔใՃ
HPMBOHUPLZP JOUFSGBDFTΤϥʔม
HPMBOHUPLZP HPHSQDNJEEMFXBSF
HPMBOHUPLZP *OUFSDFQUPS 31$ͷલޙͰॲཧΛΠϯλʔηϓτͰ͖Δ )UUUQ)BOEMFS൛ IUUQTNFEJVNDPN!NBUSZFSXSJUJOHNJEEMFXBSFJOHPMBOHBOEIPXHPNBLFTJUTP NVDIGVODF H31$4FSWFS*OUFSDFQUPS αʔόʔੜ࣌ H31$$MJFOU*OUFSDFQUPS ίωΫγϣϯੜ࣌
H31$͕*OUFSDFQUPS༻ͷύοέʔδΛ༻ҙ͠ɺ༷ʑͳػೳʹରԠ IUUQTHPEPDPSHHJUIVCDPNHSQDFDPTZTUFNHPHSQDNJEEMFXBSF "VUIɺ-PHHJOHɺ.POJUPSJOHɺ3FUSZɺ7BMJEBUPSɺ3FDPWFSZ
HPMBOHUPLZP H31$4FSWFS$MJFOU*OUFSDFQUPS
HPMBOHUPLZP -PHHJOH
HPMBOHUPLZP HJUIVCDPNHSQDFDPTZTUFNHPHSQDNJEEMFXBSFMPHHJOH[BQ IUUQTHJUIVCDPNVCFSHP[BQΛ༻͍ͯ͠·͢ ඪ४MPHύοέʔδශऑ ΤϥʔϨϕϧ͕ͳ͍ ϩάϑΥʔϚοτ͕ͳ͍ɻ·͔͞ͷࣗͰܗʜ Ұํ[BQ 6CFS ߴɻͪΐͬͺɻ
ΤϥʔϨϕϧ͋Γ ग़ྗܗࣜͷબՄ ͍ํɾه๏͕ಛघ
HPMBOHUPLZP H31$4FSWFS$MJFOU-PHHJOH
HPMBOHUPLZP H31$4FSWFS$MJFOU-PHHJOH ্هϝιου͋Δ͕ɺ 1BZMPBE͕ͦͷ··ϩάʹग़ྗ͞ΕΔͷΑΖ͘͠ͳ͍ɻ ϦΫΤετͷϩΪϯά֤ϝιουͰݸผग़ྗ
HPMBOHUPLZP 3FUSZ
HPMBOHUPLZP HJUIVCDPNHSQDFDPTZTUFNHPHSQDNJEEMFXBSFSFUSZ
HPMBOHUPLZP HJUIVCDPNHSQDFDPTZTUFNHPHSQDNJEEMFXBSFSFUSZ $BMM0QUJPOʹ༷ʑͳΦϓγϣϯͷઃఆ͕Մೳ 8JUI#BDLPGG 3FUSZͷִؒ࣌ؒ 8JUI$PEFT 3FUSZ͢ΔΤϥʔίʔυ σϑΥϧτɺ%FBEMJOF&YDFFEFE$BODFMFE 8JUI.BY ࠷େ3FUSZճ
HPMBOHUPLZP H31$Ͱࠔͬͨ͜ͱ /6--ڐ༰Ͱͳ͍ H31$ࣗମ͕/6--Λఆ͍ͯ͠ͳ͍ /6--ͷଘࡏ͠ͳ͍ੈքʂ /6--͍ΘΏΔσϑΥϧτѻ͍ ɺۭจࣈɺGBMTF ˠ্࣮ͦ͜·ͰࠔΒͳ͔͕ͬͨɺࣾͷཧղΛಘΔ·Ͱʹ͕͔͔࣌ؒͬͨ ࣌ࠁܕ
H31$ʹ࣌ࠁܕ͕༻ҙ͞Ε͍ͯΔ DPNHPPHMFQSPUPCVG5JNFTUBNQ ੜม͕େม ϝιουͭͭ࿈݁ͯ͠ɺɺʣ ͪΌΜͱௐͯΈͨΒɺதJOUͩͱ͍͏͜ͱ͕໌ ଞࣾ͞Μͷࣄྫฉ͍ͯ݁ہJOUʹ Τϥʔίʔυʹ׳Ε͕ඞཁ ʮ͕ฦ͖ͬͯͨʂʯʮͩͬͯʂʯˡͳΜͱͳ͘Θ͔Δ ʮΤϥʔ൪ͳΜ͚ͩͲʁʯˡΘ͔Βͳ͍
HPMBOHUPLZP ·ͱΊ ੩తܕ͚HPMBOHʷεΧϥʔܕH31$ ࣄલʹίϯύΠϧՄͩ͠ݎ࿚ʂ૬ੑ࠷ߴʂ 8FC্ͷهࣄͰݟͨ ʮϦϦʔε͔ͯ͠Β΄ͱΜͲόάͳ͍ʯ ˠϗϯτͩͬͨ ࣮ʹΑΔͱࢥ͍·͕͢ (P%PDͷϝιουઆ໌ɺӳจߦͷΈͱ͔βϥ
݁ہιʔεΛಡΉ͜ͱʹͳΔ ͜Ε͕͔ͳΓֶͼʹͳͬͨ HPMBOH͖ʂָ͍͠ʂ͡Όͳ͖Ό͍͠ த·ͰݟͯڍಈΛͬͯΔͱ҆৺ײ͕ҧ͏