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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
690
あまり知られていない MCP 仕様たち / MCP specifications that aren’t widely known
ktr_0731
0
670
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
JIS keyboard support in Omarchy
lef237
0
150
現場と育てるRailsモデリング 〜Spreadsheetから始めたモデル設計〜
siroemk
2
830
パスワード再設定メールのURLについて知っておこう
uyuki234
0
170
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
160
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
130
AI時代のTerminal環境を UNIX哲学で設計・運用する
yasunori0418
1
160
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
6.8k
Jetpack Compose Mechanisms
skydoves
3
840
GraphQL の onError と Nullability のこれから
quramy
0
150
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
1.7k
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
35
17k
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
980
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
31
7k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
410
Leo the Paperboy
mayatellez
10
2.4k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
400
Technical Leadership for Architectural Decision Making
baasie
3
610
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
A Modern Web Designer's Workflow
chriscoyier
699
190k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
The Cost Of JavaScript in 2023
addyosmani
55
10k
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