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
Go で作った CLI ツールにバージョンを埋め込みたい
Search
Kotaro Otaka
November 19, 2025
Programming
210
0
Share
Go で作った CLI ツールにバージョンを埋め込みたい
The Go gopher was designed by Renée French.
https://gotalk.connpass.com/event/372360/
Kotaro Otaka
November 19, 2025
More Decks by Kotaro Otaka
See All by Kotaro Otaka
t *testing.T は どこからやってくるの?
otakakot
1
890
PostgreSQL を使った快適な go test 環境を求めて
otakakot
0
970
組込みだけじゃない!TinyGo で始める無料クラウド開発入門
otakakot
2
560
組込みだけじゃない! TinyGo で始める無料クラウド開発入門
otakakot
1
130
統一感のある Go コードを生成 AI の力で手にいれる
otakakot
1
3.8k
SQLBoiler がメンテナンスモードになりまして
otakakot
0
330
Wasm わからないけど Go で実装したいから入門する
otakakot
1
10k
cmp.Or に感動した
otakakot
3
1.1k
net/http/httptest が推しです♡
otakakot
3
400
Other Decks in Programming
See All in Programming
JOAI2026 1st solution - heron0519 -
heron0519
0
170
Liberating Ruby's Parser from Lexer Hacks
ydah
2
2.5k
AIベース静的検査器の偽陽性率を抑える工夫3選
orgachem
PRO
4
410
CursorとClaudeCodeとCodexとOpenCodeを実際に比較してみた
terisuke
1
520
空間オーディオの活用
objectiveaudio
0
120
ソフトウェア設計の結合バランス #phperkaigi
kajitack
0
490
なぜあなたのコードには「コシ」がないのか?〜AI時代に問う、最後まで美味しい設計と戦略〜 #phpconkagawa / phpconkagawa2026
shogogg
0
120
Making the RBS Parser Faster
soutaro
0
660
Programming with a DJ Controller — not vibe coding
m_seki
3
760
UIの境界線をデザインする | React Tokyo #15 メイントーク
sasagar
2
420
アクセシビリティ試験の"その後"を仕組み化する
yuuumiravy
1
190
Agent Skills を社内で育てる仕組み作り
jackchuka
0
480
Featured
See All Featured
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
190
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
680
Faster Mobile Websites
deanohume
310
31k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
820
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
770
Crafting Experiences
bethany
1
140
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.4k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
240
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.4k
The Limits of Empathy - UXLibs8
cassininazir
1
320
Transcript
The Go gopher was designed by Renée French. Go で作った
CLI ツールに バージョンを埋め込みたい おーたかこーたろー / @otakakot 2025.11.19 Go Connect #10
#goconnect Go で CLI ツールを作成したことある人
#goconnect バージョン出力したいな
#goconnect バージョンはどうやって管理する?
バージョン管理手法を4パターン紹介! #goconnect
紹介するパターンは OSS の実装を参照 #goconnect
Kotaro Otaka おーたかこーたろー / @otakakot #goconnect Web Engineer 新卒入社 Hello
Golang! Web Engineer @株式会社ビットキー 2020.04 2021.04 2022.11 Gopher 年生 Go
#goconnect 定数/const パターン
定数でバージョンを管理 #goconnect Features
#goconnect
もっともシンプル #goconnect Pros
自動更新を考えるとめんどくさい #goconnect Cons
#goconnect beego フレームワークのための CLI ツール
#goconnect go:embed パターン
Go 1.16 で追加された 外部ファイルをプログラム に埋め込む機能を利用 #goconnect Features
#goconnect
定数で扱うより自動更新は楽 #goconnect Pros
バージョン更新のために コミットしないといけない #goconnect Cons
#goconnect XMLとHTMLの操作 CLI ツール
#goconnect go build -ldflags パターン
ビルド時に -ldflags オプションを利用し バージョン情報を外部から渡す #goconnect Features
#goconnect
コード外でバージョン情報を管理可能 #goconnect Pros
go install だとバージョンが含まれない #goconnect Cons
#goconnect k8s ファイルを分割するための CLI ツール
#goconnect buildinfo パターン
Go 1.18 で追加された Git の commit id や commit した時刻等の
バージョン管理システム(VCS) 情報を利用 #goconnect Features
#goconnect
go install でもバージョン情報が含まれる #goconnect Pros
実装が多少複雑化 #goconnect Cons
#goconnect kubectl の出力を色付けする CLI ツール
#goconnect まとめ
パターン名 バージョン管理場所 定数/const Go コード go:embed テキストファイル go build -ldflags
git tag など + ビルド時注入 buildinfo バージョン管理システム(VCS) #goconnect
#goconnect おすすめは buildinfo
おわり またどこかで お会いしましょう!