Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Protocol Buffersの型を超えて拡張性を得る / Beyond Protocol ...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
linyows
August 25, 2025
Programming
330
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Protocol Buffersの型を超えて拡張性を得る / Beyond Protocol Buffers Types Achieving Extensibility
2025-08-25 Fukuoka.go#22 での発表資料です。
linyows
August 25, 2025
More Decks by linyows
See All by linyows
GoとClickhouseで作るRAGアプリ / Building RAG Application with Go and Clickhouse
linyows
1
300
Kubernetesを使わない環境にもCloud Nativeなデプロイを実現する / Enabling Cloud Native deployments without the complexity of Kubernetes
linyows
3
960
研究開発と実装OSSと プロダクトの好循環 / A virtuous cycle of research and development implementation OSS and products
linyows
1
1k
コードジェネレーターで 効率的な開発をする / Efficient development with code generators
linyows
0
530
研究を支える拡張性の高い ワークフローツールの提案 / Proposal of highly expandable workflow tools to support research
linyows
0
770
非コンテナ環境において宣言的Deploymentを手軽に実現する / Declarative deployment in non-container environments
linyows
1
680
メール送信サーバの集約における透過型SMTP プロキシの定量評価 / Quantitative Evaluation of Transparent SMTP Proxy in Email Sending Server Aggregation
linyows
0
1.3k
透過型SMTPプロキシによる送信メールの可観測性向上: Update Edition / Improved observability of outgoing emails with transparent smtp proxy: Update edition
linyows
2
760
研究の再現性を高める 仕組みをGoでつくる / Creating a system to improve the reproducibility of research using go
linyows
1
430
Other Decks in Programming
See All in Programming
AIがコードを書いてくれる時代、我々は何を確かめるのか
yosuke_furukawa
PRO
13
5.4k
SODA - FACT BOOK(JP)
sodainc
1
40k
Groovy as a human and AI friendly programming language
paulk
0
150
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
7.1k
GraphQL の onError と Nullability のこれから
quramy
0
200
Next.js: The final boss of Web Performance
guaca
0
370
TanStack Vue Query と Pinia Colada から学ぶ非同期状態の型設計
aoshi
0
570
AI時代のシニアエンジニアとは
yosuke_furukawa
PRO
14
11k
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
4
1.4k
8年前のNode.jsを動かして分かった、npm installの裏側
keisukeikeda
0
110
No More NoSuchMethodError
exoego
1
120
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
4
1.7k
Featured
See All Featured
Balancing Empowerment & Direction
lara
6
1.4k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
1
300
[SF Ruby Conf 2025] Rails X
palkan
3
1.5k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
320
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Making Projects Easy
brettharned
120
6.8k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
510
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
Docker and Python
trallard
47
4.2k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
620
Crafting Experiences
bethany
1
400
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Transcript
Fukuoka.go #22 Tomohisa Oda / Aug 25, 2025 1SPUPDPM#VGGFSTͷܕΛ͑ͯ ֦ுੑΛಘΔ
Fukuoka.go #22 @linyows Blog: tomohisaoda.com Affiliation: Sakura internet, Inc. ɹɹɹɹɹɹCognano,
Inc.
Fukuoka.go #22 ͡Ίʹ
Fukuoka.go #22 ๏ ࣗͷݚڀʹ͓͍࣮ͯݧͷ࠶ݱੑΛ୲อ͢ΔͨΊʹ࡞ͬͨͷͰɺϝʔϧΛେྔʹૹͬͯͦͷ ϨΠςϯγʔΛूܭͨ͠Γ͍ͯ͠Δ ๏ όΠΦΠϯϑΥϚςΟΫεཧԽֶͰ8PSL fl PXΛඪ४Խ͢Δ$PNNPO8PSL fl
PX -BOHVBHF $8- 8PSL fl PX%FTDSJQUJPO-BOHVBHF 8%- ͳΔͷ͕ଘࡏ͍ͯ͠Δ ๏ ͔ͳΓൣғͷʹ͓͚Δ8PSL fl PXΛରͱ͍ͯ͠ΔͨΊɺఆ͕ٛʹͳΓɺڥߏங ʢεύίϯͰ4JOHVMBSJUZͳͲʣൣᙝͳͷͰɺͺͬͱݟ"OTJCMFͬΆ͕͋͞Δ ๏ 1SPCF8FCʹಛԽ͍ͯ͠ΔͨΊɺఆ͕͔ٛͳΓ؆ུԽͰ͖Δ ๏ ͘͞ΒͷΫϥυͷҰ෦ػೳͰ&OEUP&OE5FTUJOHͱͯ͠༻͍ͯͨ͠Γ͢Δ :".-Ͱ8PSL fl PXΛఆ࣮ٛ͠ߦͰ͖Δ1SPCFͷհ
Fukuoka.go #22 ๏ (JU)VC"DUJPOTͷΑ͏ʹ"DUJPOΛࢦఆͯ͠8PSL fl PXΛఆٛ͢Δ ๏ 8PSL fl PXඇಉظͷෳ+PCΛแؚ͠ɺ+PCಉظͷෳ4UFQΛแ
ؚ͠ɺ4UFQ"DUJPOΛ࣮ߦ͢Δ ๏ "DUJPOશͯϓϥάΠϯͰɺຊମͱΓ͞ΕͨΞʔΩςΫ νϟͱͳ͍ͬͯΔͨΊɺͨͱ͑ϓϩηε͕ҟৗऴྃͯ͠ӨڹΛड ͚ͳ͍ ๏ ϓϥάΠϯIBTIJDPSQHPQMVHJOΛ͓ͬͯΓɺຊମผͰىಈ ͨ͠ϓϥάΠϯαʔόͱ(31$Ͱ௨৴͢Δ ๏ ϏϧτΠϯϓϥάΠϯຊମ͕ϓϥάΠϯαʔόΛىಈ͢Δ 1SPCFͷΈ
Fukuoka.go #22 1SPCF"SDIJUFDUVSFIUUQTQSPCFMJOZPXT
Fukuoka.go #22 ๏ *%-ʢQSPUP fi MFʣͰ4FSWJDFɺ.FUIPE SQD ɺ .FTTBHFͷܕΛఆٛ͠ɺΫϥΠΞϯτͱαʔό ͷڞ༗͢Δ31$ϑϨʔϜϫʔΫ
๏ ௨৴)551ͷετϦʔϜ্Ͱߦ͍ɺγϦΞ ϥΠζͨ͠.FTTBHFʹಠࣗͷϑϨʔϛϯάΛͭ ͚ɺόΠτྻʹͯ͠)551ͷ%"5"ϑϨʔϜ Ͱྲྀ͢ ๏ Ұൠతʹ*%-γϦΞϥΠζʹ1SPUPDPM #V ff FSTΛ͏ (31$ͷ͓͞Β͍
Fukuoka.go #22 ๏ 1MVHJOVTFT fi FMEͰࢦఆ͠XJUI fi FME͕31$ͷҾʹͳΔ ๏ ҾͷܕϓϥάΠϯ͕ܾΊɺNBQ
͕ωετ͢Δ͜ͱ͋Δ ๏ XJUI(PͩͱNBQ<TUSJOH>BOZܕͳ ͷ͕ͩɺ1SPUPCVGͰNBQTUSJOH BOZܕଘࡏ͠ͳ͍ 1SPCF1MVHJOͷ༷ͱฐ ZBNM QSPUP
Fukuoka.go #22 Ͳ͏ͬͯNBQ<TUSJOH>BOZܕΛ࣮ݱ͢Δ͔
Fukuoka.go #22 ࣍ͷͭͷख๏Λݕ౼ͨ͠ ๏ NBQTUSJOH HPPHMFQSPUPCVG"OZ ๏ NBQTUSJOH HPPHMFQSPUPCVG4USVDU ๏
NBQTUSJOH TUSJOH ͜Εޙड़ (PͷNBQ<TUSJOH>BOZΛ1SPUPDPM#VGGFSTͰ࣮ݱ͢Δ
Fukuoka.go #22 ๏ 1SPUPDPM#V ff FSTͰBOZܕͱ͍ ͑HPPHMFQSPUPCVG BOZQSPUP͕͋Δ͕ɺ༻͢Δ ܕΛఆٛ͢Δඞཁ͕͋Δ ๏
͢Δͱɺຊମͱ1MVHJO͕૬ޓͰ ґଘ͢Δ͜ͱʹͳΓɺͦͦ 1MVHJOͰͳ͘ͳΔͨΊɺ༻ ෆՄ HPPHMFQSPUPCVG"OZ
Fukuoka.go #22 ๏ ૬ޓґଘ͕ͳ͍εΩʔϚϨεʹ͢Δํ๏ͱͯ͠ HPPHMFQSPUPCVGTUSVDUQSPUP͕͋Γɺख ܰʹNBQ<TUSJOH>BOZͱͯ͠ల։͢Δ͜ͱ͕Ͱ ͖Δ ๏ ͨͩ͠ɺBOZQC4USVDUͰදݱͰ͖ΔܕPOFPG ͰOVMMɺOVNCFSɺTUSJOHɺCPPMɺTUVSDUɺMJTU
ͷΈ ๏ #ZUFܕͰද͢όΠφϦCBTF͞ΕͨTUSJOH ͱͳΓɺड৴ଆͰσίʔυ͕ඞཁ HPPHMFQSPUPCVG4USVDU
Fukuoka.go #22 ๏ ͍ͬͦͷ͜ͱNBQΛϑϥοτԽͯ͠TUSJOHܕʹ౷Ұͯ͠͠ ·ͬͯͲ͏ͩΖ͏͔ʁ ๏ Ͳ͏͍͏͜ͱ͔ͱݴ͏ͱɺ࠶ىతͳSF fl FDUJPOʹΑͬͯɺ 'MBUUFOJOHͱܕใΛઌ಄ʹຒΊࠐΜͩTUSJOHมΛม
Λߦ͏ ๏ ૹ৴ͱड৴ͰΤϯίʔυσίʔυΛߦ͏ ๏ ͜ΕΛ5ZQF1SFTFSWJOH'MBUUFOJOHͱݺͿ ๏ ωετ͕ਂ͘ͳΔͱύϑΥʔϚϯεྼԽ͢Δ͕ɺωετ ͕ਂ͍ҾΛͱΔ1MVHJOΛ͏அΛ͢ΔͷϢʔβͳͨ ΊϢʔβʔʹҕͶΔ ܕશͯ4USJOH
Fukuoka.go #22
Fukuoka.go #22 5ZQF1SFTFSWJOH'MBUUFOJOHͷධՁ
Fukuoka.go #22 51'MBUUFOJOHͷ߹ fl BUUFOEBUBͷมॲཧ QSPUPCVGNFTTBHFͷ࡞ॲཧ QSPUPCVGͷϚʔγϟϧॲཧ
VO fl BUUFOEBUBͷมॲཧ #OFDINBSLൺֱΛ͢Δ্Ͱɺॲཧͷ֬ೝΛ͢Δ
Fukuoka.go #22 51'MBUUFOJOHͷ߹ fl BUUFOEBUBͷมॲཧ QSPUPCVGNFTTBHFͷ࡞ॲཧ QSPUPCVGͷϚʔγϟϧॲཧ
VO fl BUUFOEBUBͷมॲཧ #OFDINBSLൺֱΛ͢Δ্Ͱɺॲཧͷ֬ೝΛ͢Δ HPPHMFQSPUPCVG4USVDUͷ߹ TUSVDUQC4USVDUͷมॲཧ QSPUPCVGNFTTBHFͷ࡞ॲཧ QSPUPCVGͷϚʔγϟϧॲཧ NBQͷมॲཧ
Fukuoka.go #22 51'MBUUFOJOHͷ߹ fl BUUFOEBUBͷมॲཧ QSPUPCVGNFTTBHFͷ࡞ॲཧ QSPUPCVGͷϚʔγϟϧॲཧ
VO fl BUUFOEBUBͷมॲཧ ॲཧ͕ҟͳΔͷ࠷ॳͱ࠷ޙ HPPHMFQSPUPCVG4USVDUͷ߹ TUSVDUQC4USVDUͷมॲཧ QSPUPCVGNFTTBHFͷ࡞ॲཧ QSPUPCVGͷϚʔγϟϧॲཧ NBQͷมॲཧ
Fukuoka.go #22
Fukuoka.go #22
Fukuoka.go #22 ๏ ϑϩʔશମͰɺ4USVDU͕'MBUUFOΑΓഒ͘ɺϝϞϦ ݮɺΞϩέʔγϣϯݮ ๏ σʔλม͚ͩͰ͍͏ͱɺ4USVDU͕'MBUUFOΑΓഒ͘ɺ ϝϞϦݮɺΞϩέʔγϣϯݮ ๏ 1SPUCVGͷϚʔγϟϧॲཧ͚ͩͰ͍͏ͱɺ4USVDU͕'MBUUFOΑΓ
ഒ͍͕ɺϝϞϦݮɺΞϩέʔγϣϯݮ #FODINBSLͷ݁Ռ
Fukuoka.go #22 ๏ 1SPUPDPM#V ff FSTͷ࣮$ ͳͷͰɺࣅͨΑ͏ͳ͜ͱΛ(PͰΔ ΑΓޮతͳͷͩΖ͏ ๏ HPPHMFQSPUPCVG4USVDU#ZUFܕ͕CBTFԽ͞ΕΔ੍͕͋Δ͕ɺ
ͦͦຊମͱϓϥάΠϯಉҰϗετͷલఏͳͷͰόΠφϦϑΝ ΠϧύεͰڞ༗͢Δͷ͕ྑͦ͞͏ ๏ ͋Δ͍ɺ͋Β͔͡Ί.FTTBHFʹྻͷόΠφϦ༻ fi FMEΛઃ͚ͯ ͍͍͔͠Εͳ͍ ࣮ݧ݁Ռ͔Βͷߟ
Fukuoka.go #22 ·ͱΊ
Fukuoka.go #22 ๏ 8PSL fl PX5PPMͷ1SPCFɺ"DUJPO෦͕1MVHJOͱͳ͍ͬͯͯɺ1MVHJO IBTIJDPSQHPQMVHJOʹΑΔ(31$Ͱ࣮ݱ͍ͯ͠Δ ๏ (31$1SPUPDPM#V ff
FSTͰܕΛఆٛ͢Δ͕ɺຊମͱ1MVHJOͷ্ؔε ΩʔϚϨεʹ͍ͨ͠ͱ͍͏ཁٻ͕͋Δ ๏ εΩʔϚϨεΛ࣮ݱ͢ΔʹHPPHMFQSPUPCVG4USVDU͕Ұൠత͕ͩɺνϟ Ϩϯδͱͯ͠5ZQF1SFTFSWJOH'MBUUFOJOHΛࢼΈͨ ๏ ͕ɺύϑΥʔϚϯεతʹඍົͩͬͨ ·ͱΊ
Fukuoka.go #22 )JSJOH͘͞ΒΠϯλʔωοτͰ (PΛͬͨΫϥυͷίϯ ϙʔωϯτͷ։ൃɺ։ൃνʔϜͷϚωʔδϝϯτΛͯ͘͠Ε ΔؒΛ୳͍ͯ͠·͢ʂؾܰʹ͓͔͚͍ͩ͘͞ʂ