Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
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
680
あまり知られていない MCP 仕様たち / MCP specifications that aren’t widely known
ktr_0731
0
660
CLI ツールを Go ライブラリ として再実装する理由 / Why reimplement a CLI tool as a Go library
ktr_0731
3
1.7k
激動の一年を通じて見えてきた「技術でリードする」ということ
ktr_0731
8
11k
Monorepo における Go テストの差分実行 / Running Differential Go Tests in a Monorepo
ktr_0731
1
480
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.4k
つよくてニューゲーム / NewGame++
ktr_0731
0
1.1k
Other Decks in Programming
See All in Programming
Workers Cache を知る
syumai
0
320
FreeBSDでZabbixを動かす
kenkino
0
340
仕様駆動開発による爆速プロダクト開発 / Bakusoku Spec Driven Development
kobakei
0
150
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
450
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
1
110
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1k
カツオ、ご期待ください
suneo3476
0
130
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
280
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
310
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
600
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
370
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
460
Featured
See All Featured
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
The SEO identity crisis: Don't let AI make you average
varn
0
570
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
470
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
240
Building an army of robots
kneath
307
47k
Believing is Seeing
oripsolob
1
240
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
590
Thoughts on Productivity
jonyablonski
76
5.4k
Fireside Chat
paigeccino
43
4k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
350
Paper Plane
katiecoart
PRO
4
53k
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