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
190
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
800
コードジェネレーターで 効率的な開発をする / Efficient development with code generators
linyows
0
410
研究を支える拡張性の高い ワークフローツールの提案 / Proposal of highly expandable workflow tools to support research
linyows
0
590
非コンテナ環境において宣言的Deploymentを手軽に実現する / Declarative deployment in non-container environments
linyows
1
470
メール送信サーバの集約における透過型SMTP プロキシの定量評価 / Quantitative Evaluation of Transparent SMTP Proxy in Email Sending Server Aggregation
linyows
0
1.1k
透過型SMTPプロキシによる送信メールの可観測性向上: Update Edition / Improved observability of outgoing emails with transparent smtp proxy: Update edition
linyows
2
590
研究の再現性を高める 仕組みをGoでつくる / Creating a system to improve the reproducibility of research using go
linyows
1
320
奥が深いメールのシステム / The depth of Email system
linyows
4
750
IaCにおけるテスト考察 / Tests in IaC
linyows
2
870
Other Decks in Programming
See All in Programming
Basic Architectures
denyspoltorak
0
670
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
7
2.3k
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
5
460
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
6.1k
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
3.9k
Grafana:建立系統全知視角的捷徑
blueswen
0
330
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.8k
「ブロックテーマでは再現できない」は本当か?
inc2734
0
1k
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
1.1k
CSC307 Lecture 08
javiergs
PRO
0
670
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
2.3k
SourceGeneratorのススメ
htkym
0
200
Featured
See All Featured
sira's awesome portfolio website redesign presentation
elsirapls
0
150
Technical Leadership for Architectural Decision Making
baasie
1
240
Believing is Seeing
oripsolob
1
55
Exploring anti-patterns in Rails
aemeredith
2
250
Design in an AI World
tapps
0
140
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
120
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Visualization
eitanlees
150
17k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.1k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
750
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.1k
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ΛͬͨΫϥυͷίϯ ϙʔωϯτͷ։ൃɺ։ൃνʔϜͷϚωʔδϝϯτΛͯ͘͠Ε ΔؒΛ୳͍ͯ͠·͢ʂؾܰʹ͓͔͚͍ͩ͘͞ʂ