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ビルドを理解し、 CI/CDの高速化に挑む
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
sato-shin
March 27, 2026
Technology
160
0
Share
Goビルドを理解し、 CI/CDの高速化に挑む
sato-shin
March 27, 2026
More Decks by sato-shin
See All by sato-shin
DateComponentsと仲良くなる
satoshin
3
3.7k
Bitriseのビルド回数が 10倍以上になって変わったコト
satoshin
1
460
Pull Request Trigger について ~Expose for Pull Request?~
satoshin
1
140
User Notification for UX!
satoshin
0
190
Using various views on Notification Content app extension
satoshin
2
1.2k
Getting step count on iOS
satoshin
4
3.2k
Other Decks in Technology
See All in Technology
New CBs New Challenges
ysuzuki
1
170
デシリアライゼーションを理解する / Inside Deserialization
tomzoh
0
250
すごいぞManaged Kubernetes
harukasakihara
1
390
非エンジニア職からZOZOへ 〜登壇がキャリアに与えた影響〜
penpeen
0
180
AI時代に新卒採用、はじめました/junior-engineer-never-die
dmnlk
0
240
AgentCore RuntimeからS3 Filesをマウントしてみる
har1101
3
400
2026年度新卒技術研修 サイバーエージェントのデータベース 活用事例とパフォーマンス調査入門
cyberagentdevelopers
PRO
6
7.6k
仕様通り動くの先へ。Claude Codeで「使える」を検証する
gotalab555
8
3.2k
本番環境でPHPコードに触れずに「使われていないコード」を調べるにはどうしたらよいか?
egmc
1
280
Hello UUID
mimifuwacc
0
130
Claude Teamプランの選定と、できること/できないこと
rfdnxbro
1
2.1k
AI環境整備はどのくらい開発生産性を変えうるか? #AI駆動開発 #AI自走環境
ucchi0909
0
120
Featured
See All Featured
Producing Creativity
orderedlist
PRO
348
40k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
27
3.4k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.7k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
120
Joys of Absence: A Defence of Solitary Play
codingconduct
1
340
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
480
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
100
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
KATA
mclloyd
PRO
35
15k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Into the Great Unknown - MozCon
thekraken
40
2.3k
Building Applications with DynamoDB
mza
96
7k
Transcript
TBUPTIJO (PϏϧυΛཧղ͠ɺ $*$%ͷߴԽʹΉ NJJWFͰˠΛ࣮ݱͨ͠վળࣄྫ
NJJWFͷ$*$%ͷྲྀΕ
NJJWFͷ$*$%ͷྲྀΕʢվળલʣ 6OJU5FTU %FQMPZ UP"84&$4 &&5FTU -JOU
#VJME ߹ܭ
NJJWFͷ$*$%ͷྲྀΕʢվળલʣ 6OJU5FTU %FQMPZ UP"84&$4 &&5FTU -JOU
#VJME ߹ܭ
NJJWFͷ$*$%ͷྲྀΕʢվળલʣ 6OJU5FTU ඵ %FQMPZ UP"84&$4 &&5FTU -JOU
#VJME ඵ ߹ܭ
NJJWFͷ$*$%ͷྲྀΕʢվળલʣ 6OJU5FTU ඵ %FQMPZ UP"84&$4 &&5FTU -JOU
#VJME ඵ ͜͜ʹࢸΔ·Ͱ
·ͣ(PͷϏϧυΛͪΌΜͱΖ͏ʂ $ go build
(PͷϏϧυͷಛ w Ϗϧυޙͷ୯ҰόΠφϦͰಈ͖ɺ࣮ߦڥʹ(PͷΠϯετʔϧෆཁ w ΫϩείϯύΠϧʹΑΓɺ$*$%ͷઃఆָ͕ w ϏϧυΩϟογϡͷػߏ͕Έࠐ·Ε͍ͯΔ
(PͷϏϧυͷಛ w Ϗϧυޙͷ୯ҰόΠφϦͰಈ͖ɺ࣮ߦڥʹ(PͷΠϯετʔϧෆཁ w ΫϩείϯύΠϧʹΑΓɺ$*$%ͷઃఆָ͕ w ϏϧυΩϟογϡͷػߏ͕Έࠐ·Ε͍ͯΔ
࣮ߦڥʹ(Pෆཁ 04 +BWB7JSUVBM.BDIJOF KBSϑΝΠϧ 04 (Pͷ୯ҰόΠφϦ ࣮ߦϑΝΠϧ
࣮ߦڥʹ(Pෆཁ w ґଘ͢Δͷ͕গͳ͍ͷͰ w ཧָ͕ w ηΩϡΞ w αʔόʔͷ্ཱ͕ͪΓ͕ૣ͍ w
࣮ߦɾϝϞϦফඅྔͰ༗ར 04 (Pͷ୯ҰόΠφϦ ࣮ߦϑΝΠϧ
(PͷϏϧυͷಛ w Ϗϧυޙͷ୯ҰόΠφϦͰಈ͖ɺ࣮ߦڥʹ(PͷΠϯετʔϧෆཁ w ΫϩείϯύΠϧʹΑΓɺ$*$%ͷઃఆָ͕ w ϏϧυΩϟογϡͷػߏ͕Έࠐ·Ε͍ͯΔ
ΫϩείϯύΠϧ͕Մೳ $*ڥ6CVOUV $ GOOS=windows \ GOARCH=amd64 \ go build -o
app ࣮ߦڥ8JOEPXTTFSWFSBNE BQQFYF BQQFYF $PQZ
(PͷϏϧυͷಛ w ΫϩείϯύΠϧʹΑΓɺ$*$%ͷઃఆָ͕ w Ϗϧυޙͷ୯ҰόΠφϦͰಈ͖ɺ࣮ߦڥʹ(PͷΠϯετʔϧෆཁ w ϏϧυΩϟογϡͷػߏ͕Έࠐ·Ε͍ͯΔ $ go build
(PͷϏϧυϑϩʔͷ֓ཁ ґଘؔͷղܾ ίϯύΠϧ $ go tool compile ύοέʔδຖʹPCKੜ ϦϯΫ $
go tool link 0CKΛ౷߹͠ɺ ࣮ߦϑΝΠϧΛੜ HPͷ࣮ߦϑΝΠϧ
(PͷϏϧυϑϩʔͷ֓ཁ ґଘؔͷղܾ ίϯύΠϧ $ go tool compile ύοέʔδຖʹPCKੜ ϦϯΫ $
go tool link 0CKΛ౷߹͠ɺ ࣮ߦϑΝΠϧΛੜ HPͷ࣮ߦϑΝΠϧ ύοέʔδຖͷPCK͕Ωϟογϡ͞Ε มߋ͕ͳ͍ύοέʔδͷίϯύΠϧεΩοϓ
(PͷϏϧυͷಛ w ΫϩείϯύΠϧʹΑΓɺ$*$%ͷઃఆָ͕ w Ϗϧυޙͷ୯ҰόΠφϦͰಈ͖ɺ࣮ߦڥʹ(PͷΠϯετʔϧෆཁ w ϏϧυΩϟογϡͷػߏ͕Έࠐ·Ε͍ͯΔ
$*$%Λૣ͘͢Δखஈͷ ௐࠪ։࢝
(PϏϧυͷجຊతͳߴԽख๏ w $*ͰϏϧυΩϟογϡΛར༻͢Δ w $*ͰϞδϡʔϧΩϟογϡΛར༻͢Δ w ར༻͍ͯ͠ͳ͍ίʔυΛআ͢Δ w ύοέʔδͷׂΛ࠷దԽ͢Δ
(PϏϧυͷجຊతͳߴԽख๏ w $*ͰϏϧυΩϟογϡΛར༻͢ΔˠճҎ߱͘ͳΔ w $*ͰϞδϡʔϧΩϟογϡΛར༻͢ΔˠճҎ߱͘ͳΔ w ར༻͍ͯ͠ͳ͍ίʔυΛআ͢Δˠௐࠪ͠ɺશମͷʹຬͨͳ͍ w ύοέʔδͷׂΛ࠷దԽ͢Δˠ͕͔͔࣌ؒΓ͗͢ΔͨΊɺݟૹΓ
(PϏϧυͷجຊతͳߴԽख๏ w $*ͰϏϧυΩϟογϡΛར༻͢ΔˠճҎ߱͘ͳΔ w $*ͰϞδϡʔϧΩϟογϡΛར༻͢ΔˠճҎ߱͘ͳΔ ΩϟογϡΛΘͳ͍߹Ͱ ͔͔Δͷײʹ͢Δ🤔
ͱ͍͏ͷɺ ։ൃ࣌ͷ$ go run Ͱؾͮͣ͘
ͳΒɺܭଌͩʂ
NJJWFͷϦϙδτϦߏͷ֓ཁ EPNBJONPEFM QBDLBHF ڞ௨ίϯϙʔωϯτ ɾɾɾ CBUDI"DNE NBJOQBDLBHF CBUDI#DNE NBJOQBDLBHF 8FC"1*TFSWFS
NBJOQBDLBHF
NJJWFͷϦϙδτϦߏͷ֓ཁ EPNBJONPEFM QBDLBHF ڞ௨ίϯϙʔωϯτ ɾɾɾ 8FC"1*TFSWFS NBJOQBDLBHF CBUDI"DNE NBJOQBDLBHF CBUDI#DNE
NBJOQBDLBHF ࠷େ͖͍8FC"1*TFSWFSΛ ܭଌͷλʔήοτͱ͢Δ
ϩʔΧϧͰϏϧυ࣌ؒΛܭଌͯ͠ΈΔ $ go clean -cache $ time go build
ϩʔΧϧͰϏϧυ࣌ؒΛܭଌͯ͠ΈΔ $ go clean -cache $ time go build go
build 65.29s
ϩʔΧϧͰϏϧυ࣌ؒΛܭଌͯ͠ΈΔ $ go clean -cache $ time go build go
build 65.29s 👍
NJJWFͷϦϙδτϦߏͷ֓ཁ EPNBJONPEFM QBDLBHF ڞ௨ίϯϙʔωϯτ ɾɾɾ CBUDI"DNE NBJOQBDLBHF CBUDI#DNE NBJOQBDLBHF 8FC"1*TFSWFS
NBJOQBDLBHF શମΛܭଌͷλʔήοτͱ͢Δ
ϩʔΧϧͰશମͷϏϧυ࣌ؒΛܭଌͯ͠ΈΔ $ go clean -cache $ time ./build_all.sh
ϩʔΧϧͰશମͷϏϧυ࣌ؒΛܭଌͯ͠ΈΔ $ go clean -cache $ time ./build_all.sh ./build_all.sh 265.91s
ϩʔΧϧͰશମͷϏϧυ࣌ؒΛܭଌͯ͠ΈΔ $ go clean -cache $ time ./build_all.sh ./build_all.sh 265.91s
🤔 ඵ
NJJWFͷϦϙδτϦߏͷ֓ཁ EPNBJONPEFM QBDLBHF ڞ௨ίϯϙʔωϯτ ɾɾɾ CBUDI"DNE NBJOQBDLBHF CBUDI#DNE NBJOQBDLBHF 8FC"1*TFSWFS
NBJOQBDLBHF #BUDIܥશମͷίʔυྔͷ ະຬ
NJJWFͷϦϙδτϦߏͷ֓ཁ EPNBJONPEFM QBDLBHF ڞ௨ίϯϙʔωϯτ ɾɾɾ CBUDI"DNE NBJOQBDLBHF CBUDI#DNE NBJOQBDLBHF 8FC"1*TFSWFS
NBJOQBDLBHF ڞ௨QBDLBHFΩϟογϡ͔Β ϏϧυεΩοϓ͢Δͣ
7FSCPTFPQUJPOͰಈ࡞Λ֬ೝͯ͠ΈΔ $ go build -v // compileதͷύοέʔδ͕දࣔ͞ΕΔ
7FSCPTFPQUJPOͰಈ࡞Λ֬ೝͯ͠ΈΔ $ go clean -cache $ ./build_all_verbose.sh
7FSCPTFPQUJPOͰಈ࡞Λ֬ೝͯ͠ΈΔ $ go clean -cache $ ./build_all_verbose.sh … math math
math …
͋Εʁ ෳճίϯύΠϧͯ͠Δ🤔
൜ਓ͍ͭ͜
$ go buildΛฒྻͰΒ͍ͤͯͨͨΊ ϏϧυΩϟογϡ͕ޮ͍͍ͯͳ͔ͬͨ
मਖ਼൛ͰϏϧυ࣌ؒΛܭଌͯ͠ΈΔ $ go clean -cache $ time ./build_all.sh ./build_all.sh 77.50s
☺
ղܾ👍
ͪͳΈʹ6OJU5FTUͷํͷվળ
6OJU5FTUͷվળ w ͬͱ͕͔͔͍࣌ؒͬͯͨͷ%#ଓͷςετ w %"5"%0(HPUYECΛಋೖͨ͠ ˠඵʹʂ
·ͱΊ w ͿͬͪΌ͚ʮॳظઃఆ࣌ͷϛεʯ w ਪଌ͢ΔͳɺܭଌͤΑ w (PͷϏϧυ͍͢͝ʂ
࠷ޙʹNJJWFʹ͍ͭͯͷհ
w ΧʔυYΞϓϦͰΧϯλϯརްੜ w αʔόʔ(P w 8FC3FBDU w ϞόΠϧ3FBDU/BUJWF w ࠾༻ڧԽதͰ͢
ɹ8FBSFIJSJOH