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
Protocol Buffersの型を超えて拡張性を得る / Beyond Protocol ...
Search
linyows
August 25, 2025
Programming
0
120
Protocol Buffersの型を超えて拡張性を得る / Beyond Protocol Buffers Types Achieving Extensibility
2025-08-25 Fukuoka.go#22 での発表資料です。
linyows
August 25, 2025
Tweet
Share
More Decks by linyows
See All by linyows
研究開発と実装OSSと プロダクトの好循環 / A virtuous cycle of research and development implementation OSS and products
linyows
1
560
コードジェネレーターで 効率的な開発をする / Efficient development with code generators
linyows
0
350
研究を支える拡張性の高い ワークフローツールの提案 / Proposal of highly expandable workflow tools to support research
linyows
0
480
非コンテナ環境において宣言的Deploymentを手軽に実現する / Declarative deployment in non-container environments
linyows
0
280
メール送信サーバの集約における透過型SMTP プロキシの定量評価 / Quantitative Evaluation of Transparent SMTP Proxy in Email Sending Server Aggregation
linyows
0
1k
透過型SMTPプロキシによる送信メールの可観測性向上: Update Edition / Improved observability of outgoing emails with transparent smtp proxy: Update edition
linyows
2
510
研究の再現性を高める 仕組みをGoでつくる / Creating a system to improve the reproducibility of research using go
linyows
1
270
奥が深いメールのシステム / The depth of Email system
linyows
4
640
IaCにおけるテスト考察 / Tests in IaC
linyows
2
780
Other Decks in Programming
See All in Programming
Serena MCPのすすめ
wadakatu
4
860
CI_CD「健康診断」のススメ。現場でのボトルネック特定から、健康診断を通じた組織的な改善手法
teamlab
PRO
0
160
Back to the Future: Let me tell you about the ACP protocol
terhechte
0
120
株式会社 Sun terras カンパニーデック
sunterras
0
180
大規模アプリのDIフレームワーク刷新戦略 ~過去最大規模の並行開発を止めずにアプリ全体に導入するまで~
mot_techtalk
0
340
Web フロントエンドエンジニアに開かれる AI Agent プロダクト開発 - Vercel AI SDK を観察して AI Agent と仲良くなろう! #FEC余熱NIGHT
izumin5210
2
310
uniqueパッケージの内部実装を支えるweak pointerの話
magavel
0
880
階層構造を表現するデータ構造とリファクタリング 〜1年で10倍成長したプロダクトの変化と課題〜
yuhisatoxxx
3
860
クラシルを支える技術と組織
rakutek
0
190
開発者への寄付をアプリ内課金として実装する時の気の使いどころ
ski
0
340
Pull-Requestの内容を1クリックで動作確認可能にするワークフロー
natmark
1
410
AIを活用したレシート読み取り機能の開発から得られた実践知 / AI Receipt Scan Practice
rockname
2
1.5k
Featured
See All Featured
Faster Mobile Websites
deanohume
310
31k
Navigating Team Friction
lara
189
15k
A designer walks into a library…
pauljervisheath
208
24k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.1k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
We Have a Design System, Now What?
morganepeng
53
7.8k
The Power of CSS Pseudo Elements
geoffreycrofte
79
6k
Learning to Love Humans: Emotional Interface Design
aarron
274
40k
How to train your dragon (web standard)
notwaldorf
96
6.3k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
32
2.2k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
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ΛͬͨΫϥυͷίϯ ϙʔωϯτͷ։ൃɺ։ൃνʔϜͷϚωʔδϝϯτΛͯ͘͠Ε ΔؒΛ୳͍ͯ͠·͢ʂؾܰʹ͓͔͚͍ͩ͘͞ʂ