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 Modules and Proxy Walkthrough
Search
ktr
August 06, 2019
Programming
27k
8
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Go Modules and Proxy Walkthrough
#godo_miniconf
ktr
August 06, 2019
More Decks by ktr
See All by ktr
詳解 MCP Go SDK / MCP Go SDK
ktr_0731
3
650
あまり知られていない MCP 仕様たち / MCP specifications that aren’t widely known
ktr_0731
0
630
CLI ツールを Go ライブラリ として再実装する理由 / Why reimplement a CLI tool as a Go library
ktr_0731
3
1.6k
激動の一年を通じて見えてきた「技術でリードする」ということ
ktr_0731
8
11k
Monorepo における Go テストの差分実行 / Running Differential Go Tests in a Monorepo
ktr_0731
1
460
Designing libraries in Go way
ktr_0731
6
1.6k
ソフトウェアの複雑さに立ち向かう技術 / Tackling software complexity
ktr_0731
0
250
Fuzzy finder as a Go library
ktr_0731
3
6.3k
つよくてニューゲーム / NewGame++
ktr_0731
0
1.1k
Other Decks in Programming
See All in Programming
全PRの83%がAIレビューだけでマージできるようになった開発組織はその後どうなったか
athug
0
540
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
410
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
12
17k
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
220
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
270
メールのエイリアス機能を履き違えない
isshinfunada
0
110
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
1
260
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
460
Embedded SREと共に達成した会員管理システムのAWS移行 - SRE NEXT 2026 ランチスポンサーセッション
niftycorp
PRO
1
3.2k
自動化したのに回らないテスト運用の壁ーAI時代の品質責任と生産性
mfunaki
0
110
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
430
Claude Opus 4.6以後の受託開発エンジニアの変化(Claude Code開発ノウハウ大公開スペシャルbyクラスメソッド)
iidatakuma
1
890
Featured
See All Featured
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Documentation Writing (for coders)
carmenintech
77
5.4k
Making the Leap to Tech Lead
cromwellryan
135
10k
Google's AI Overviews - The New Search
badams
0
1.1k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
640
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
980
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
270
Utilizing Notion as your number one productivity tool
mfonobong
4
470
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
420
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
270
Transcript
CyberAgent & Merpay BackendEngineer’s Go ಉ miniConf Go Modules and
Proxy Walkthrough
w LUS Ωλϩʔɺ!LUS@ w ϝϧϖΠ৽ଔ όοΫΤϯυΤϯδχΞ w $PEF1BZNFOU5FBN XIPBNJ
CyberAgent & Merpay BackendEngineer’s Go ಉ miniConf Go Modules and
Proxy Walkthrough
8IBUJT(P.PEVMFT
w (PͷόʔδϣχϯάγεςϜ w 3VTT$PYͷ(P7FSTJPOJOHͱWHPͰొ w (P͔Βݶఆతͳαϙʔτ (P.PEVMFT
w ϦϙδτϦͷϞδϡʔϧԽ w ηϚϯςΟοΫόʔδϣχϯά w HPNPEʹΑΔґଘཧ w HPTVNʹΑΔνΣοΫαϜͷཧ (P.PEVMFTͷಛ
DSD UMW NQN NQNKQRS UPPMT ϦϙδτϦͷϞδϡʔϧԽ go.mercari.io/go-emv-code . ᵓ── crc16
ᵓ── mpm │ └── jpqr ᵓ── tlv └── tools
DSD UMW NQN NQNKQRS UPPMT HPNPEUJEZ go.mercari.io/go-emv-code . ᵓ── crc16
ᵓ── go.mod ᵓ── go.sum ᵓ── mpm │ └── jpqr ᵓ── tlv └── tools go.mercari.io/go-emv-code
DSD go.mercari.io/go-emv-code UMW NQN NQNKQRS UPPMT • v0.1.1 • v0.1.0
Ϟδϡʔϧ୯ҐͰόʔδϣχϯά "v" ͚ͭΔඞཁ͕͋Δʂ
WQBDLBHFT go.mercari.io/go-emv-code/v2 • v2.0.0 ޙํޓੑ͕อͯͳ͍࣌
w (PNPEVMFTΛ༗ޮԽ͢Δ͔Ͳ͏͔ઃఆͰ͖Δ w PO༗ޮԽ w P⒎ແޮԽ w BVUP σϑΥϧτ
w (01"5)TSDͷ֎͔ͭHPNPE͕͋Ε༗ޮ (0.0%6-&
None
w (PͰBVUP͕σϑΥϧτͷ·· w ͨͩ͠ɺ(01"5)TSDͷதͰ͋ͬͯHPNPE͕ ͋Ε༗ޮԽ͞ΕΔ (0.0%6-& (P
w (PNPEVMFT͕༗ޮͩͱHPHFUͷڍಈ͕มΘΔ w (01"5)TSDʹஔ͞Εͳ͘ͳΔ w HPNPEͱHPTVNͷॻ͖͑ w όʔδϣϯͳͲΛࢦఆͯ͠ͷऔಘ NPEVMFBXBSFHPHFU
$ export GO111MODULE=on $ go get go.mercari.io/go-emv-code # latest (v0.1.1)
$ go get go.mercari.io/
[email protected]
# version $ go get go.mercari.io/go-emv-code@670be75 # commit hash $ go get -u=patch go.mercari.io/go-emv-code # v0.1.1 NPEVMFBXBSFHPHFU
(P.PEVMF&DPTZTUFN
w .PEVMF*OEFY w .PEVMF"VUIFOUJDBUJPO w .PEVMF.JSSPST w .PEVMF1SPYZ (P.PEVMF&DPTZTUFN
w ύϒϦοΫʹར༻ՄೳͳϞδϡʔϧΛ ΫΤϦΛͬͯݕࡧͰ͖ΔαʔϏε w ࣮JOEFYHPMBOHPSHͷΈ .PEVMF*OEFY
None
None
w (01"5)HPHFUதؒऀ߈ܸʹରͯ͠੬ऑ .PEVMF"VUIFOUJDBUJPO
w (01"5)HPHFUதؒऀ߈ܸʹରͯ͠੬ऑ w NPEVMFBXBSFHPHFUͰHPTVNͰ ਖ਼͍͠Ϟδϡʔϧ͔ΛݕূՄೳʹʂ .PEVMF"VUIFOUJDBUJPO
w Ҏલʹऔಘͨ͠ϞδϡʔϧͷνΣοΫαϜΛอ࣋ HPTVNͷ
w Ҏલʹऔಘͨ͠ϞδϡʔϧͷνΣοΫαϜΛอ࣋ ॳճऔಘ࣌ʹਅਖ਼ੑΛ֬ೝͰ͖ͳ͍ HPTVNͷ
w ͋ΒΏΔϞδϡʔϧͷνΣοΫαϜΛ ू͢ΔαʔϏε w ࣮TVNHPMBOHPSHͷΈ (PDIFDLTVNEBUBCBTF TVNEC
w ϞδϡʔϧͷίʔυνΣοΫαϜͷΩϟογϡΛߦ͏ w ಛఆͷαʔόͷՄ༻ੑϨΠςϯγʹӨڹ͞ΕΔͷΛ͙ .PEVMF.JSSPST
w ϞδϡʔϧͷίʔυνΣοΫαϜͷΩϟογϡΛߦ͏ w ಛఆͷαʔόͷՄ༻ੑϨΠςϯγʹӨڹ͞ΕΔͷΛ͙ w ҰΩϟογϡ͞ΕͨϞδϡʔϧجຊతʹআ͞Εͳ͍ .PEVMF.JSSPST
w ϞδϡʔϧͷίʔυνΣοΫαϜͷΩϟογϡΛߦ͏ w ಛఆͷαʔόͷՄ༻ੑϨΠςϯγʹӨڹ͞ΕΔͷΛ͙ w ҰΩϟογϡ͞ΕͨϞδϡʔϧجຊతʹআ͞Εͳ͍ w ϦϙδτϦআʹରॲ͢ΔͨΊ FHHPCJOEBUB .PEVMF.JSSPST
w .PEVMFQSPYZQSPUPDPMΛ࣮͢ΔαʔϏε w QSPYZHPMBOHPSHɺ"UIFOTͳͲ w (P͔ΒHPίϚϯυΦϦδϯαʔόͰ ͳ͘QSPYZίʔυΛऔಘ͠ʹ͍͘ .PEVMF1SPYZ
w (&5(01309:NPEVMF!WMJTU w (&5(01309:NPEVMF!WWFSTJPOJOGP w (&5(01309:NPEVMF!WWFSTJPONPE w (&5(01309:NPEVMF!WWFSTJPO[JQ .PEVMFQSPYZQSPUPDPM
None
(01309:ͱ(046.%# $ export GOPROXY="https://proxy.golang.org,direct" # default $ export GOPROXY="off" #
disable proxies $ export GOSUMDB="sum.golang.org" # default $ export GOSUMDB="off" # disable sumdb
HP ίϚϯυ QSPYZ QSPYZHPMBOHPSH TVNEC TVNHPMBOHPSH JOEFY JOEFYHPMBOHPSH NPEVMFͷऔಘ DIFDLTVNͷऔಘ
(P%PD NPEVMFใͷऔಘ (JU)VC #JUCVDLFU FUD
w JOEFYͳ͠ w TVNECҰ෦ͷΈHPMBOHPSHYNPETVNECʹଘࡏ w NJSSPSͳ͠ w QSPYZͳ͠ ֤αʔϏεͷެ࣮ࣜ
w ͍ͣΕHPMBOHPSHYNPEͰެ։͞Ε͍ͯ͘ w ͦΕͧΕͷ࣮DNEHPJOUFSOBMҎԼͰ ։ൃ͞Ε͍ͯΔ w (P·Ͱʹͯ͢ެ։͞Εͦ͏ʜʁ ֤αʔϏεͷެ࣮ࣜ
1SJWBUF.PEVMFT
1SJWBUF.PEVMFT HP ίϚϯυ ϓϥΠϕʔτ ϦϙδτϦ QSPYZ QSPYZHPMBOHPSH
1SJWBUF.PEVMFT HP ίϚϯυ ϓϥΠϕʔτ ϦϙδτϦ QSPYZ QSPYZHPMBOHPSH ❌
w (PͰσϑΥϧτͰQSPYZHPMBOHPSH Λܦ༝͢Δ w ηΩϡϦςΟతͳ͔ΒϞδϡʔϧͷऔಘʹ ࣦഊͨ͠߹ίϚϯυͷ࣮ߦ͕ࢭ·Δ 1SJWBUF.PEVMFT
w (PͰσϑΥϧτͰQSPYZHPMBOHPSH Λܦ༝͢Δ w ηΩϡϦςΟతͳ͔ΒϞδϡʔϧͷऔಘʹ ࣦഊͨ͠߹ίϚϯυͷ࣮ߦ͕ࢭ·Δ w ୯७ʹ(PͷόʔδϣϯΛ্͛Δ͚ͩͩͱϏϧυ͕௨Βͳ͘ͳΔ 1SJWBUF.PEVMFT
(0/01309: $ export GONOPROXY="github.com/ktr0731/priv-mod" $ go get github.com/ktr0731/priv-mod
w ·ͩͦ͠͏ʜ w ެࣜͷ࣮͕ͳ͍ w #BTJDೝূ͔͑͠ͳ͍ 1SPYZͷηϧϑϗετ
·ͱΊ
w (0.0%6-&(PͰมΘΒͣBVUP w (PNPEVMFT͕༗ޮͩͱHPHFUͷڍಈ͕มΘΔ w ηϚϯςΟοΫόʔδϣχϯάͰόʔδϣχϯά (P.PEVMFT
w JOEFYΫΤϦʹΑΔϞδϡʔϧͷݕࡧ w TVNEC͋ΒΏΔϞδϡʔϧͷνΣοΫαϜΛू w NJSSPSϞδϡʔϧνΣοΫαϜͷΩϟογϡ w QSPYZHPίϚϯυϞδϡʔϧใΛఏڙ (P.PEVMF&DPTZTUFN
w QSPYZHPMBOHPSHϓϥΠϕʔτϦϙδτϦ ΞΫηεͰ͖ͳ͍ w (0/01309:Λదʹઃఆ͢Δ 1SJWBUF.PEVMFT
w(P7FSTJPOJOHIUUQTSFTFBSDITXUDIDPNWHP w.PEVMFT8JLJIUUQTHJUIVCDPNHPMBOHHPXJLJ.PEVMFT w(P.PEVMFTJOIUUQTCMPHHPMBOHPSHNPEVMFT w1SPQPTBM4FDVSFUIF1VCMJD(P.PEVMF&DPTZTUFN IUUQTHPHPPHMFTPVSDFDPNQSPQPTBM NBTUFSEFTJHOTVNECNE wJOEFY TVNEC QSPYZIUUQTJOEFYHPMBOHPSH w(P3FMFBTF/PUFTIUUQTUJQHPMBOHPSHEPDHPNPEVMFT
w(P%PDIUUQTHPEPDPSHHJUIVCDPNHPMBOHHPTSDDNEHPJOUFSOBM wUJQHPMBOHPSHIUUQTUJQHPMBOHPSHDNEHP w(PQIFS$PO(P.PEVMF1SPYZ-JGFPGBRVFSZ IUUQTBCPVUTPVSDFHSBQIDPNHPHPQIFSDPOHPNPEVMFQSPYZMJGFPGBRVFSZ wQSPQPTBMYNPEOFXSFQPGPSNPEVMFNFDIBOJDTIUUQTHJUIVCDPNHPMBOHHPJTTVFT wDNEHPEFpOF)551BVUIFOUJDBUJPOFYUFOTJPONFDIBOJTNIUUQTHJUIVCDPNHPMBOHHPJTTVFT wDNEHPEFGBVMUUP(0.0%6-&BVUP XJUIDIBOHFT GPS(PIUUQTHJUIVCDPNHPMBOHHP JTTVFT ࢀߟ
5IBOLZPVGPSMJTUFOJOH