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製ツールの話 at Gopher道場第二回LT大会
Search
Kazuki Higashiguchi
July 09, 2018
1
920
業務中にサクッと書いたGo製ツールの話 at Gopher道場第二回LT大会
業務中にサクッと書いたGo製ツールの話 at Gopher道場第二回LT大会での発表資料です
https://mercari.connpass.com/event/93427/
Kazuki Higashiguchi
July 09, 2018
Tweet
Share
More Decks by Kazuki Higashiguchi
See All by Kazuki Higashiguchi
インフラコストとセキュリティ課題解決のためのリアーキテクチャリング / srekaigi2025
hgsgtk
3
5.1k
Design of a Stateful system for Robust Deployment and Observability
hgsgtk
0
1.2k
A guide to joining operational work in your new DevOps team
hgsgtk
1
1.4k
HTTP Tunneling in Go
hgsgtk
0
1.4k
ブラウザ自動操作技術の深層へ、直接触れて学ぶ WebDriver と Chrome DevTools Protocol
hgsgtk
3
6.5k
HTTP Server on random available port in Go
hgsgtk
0
990
Agile Testingを夢見たテスト自動化 〜ATDDへの挑戦から始まる 1年間の試行錯誤〜 / dreaming agile testing at basebank
hgsgtk
14
7.8k
Create Go WebDriver client from scratch
hgsgtk
1
2.2k
PHPでWeb Driver Clientを自作する〜己の手でブラウザ操作自動化を完全理解する方法〜 / phpcon2021
hgsgtk
2
2.5k
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.3k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
KATA
mclloyd
29
14k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.8k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
30
4.6k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
13
1k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.2k
Side Projects
sachag
452
42k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
How STYLIGHT went responsive
nonsquared
99
5.4k
Transcript
(PQIFSಓ-5େձ #"4&גࣜձࣾ ౦ޱᏻʢ!,IJHBTIJHVDIJʣ ۀதʹαΫοͱॻ͍ͨɺ (Pπʔϧͷ
ʢॻ͖ͨͯ͘ʣ ۀʹ(PΛͼࠐ·ͤͯ ͖ͨ
ࣗݾհ !,IJHBTIJHVDIJ౦ޱᏻ w ॴଐɿ#"4&גࣜձࣾ #"4&1SPEVDU%JWJTJPO αʔόαΠυΤϯδχΞ w (PQIFSಓظੜ w ͜Ε·Ͱͷओͳ͓ࣄɿ
w ʮ#"4&ʯͷܾࡁྖҬ w 1)1ɾ$BLF1)1ͷόʔδϣϯΞοϓ w #MPH w IUUQLIJHBTIJHBTIJIBUFOBCMPHDPN w (JUIVC w IUUQTHJUIVCDPN,IJHBTIJHVDIJ
γϯϓϧͳπʔϧΛྔ࢈ ࣮ͯ͠ફΛॏͶΔ
̍ɿ42-ੜ$-*
࡞ͬͨͷʢ̍ʣ w $47Λड͚औͬͯ42-Λग़ྗ͢Δ
࡞ͬͨͷʢ̍ʣ w എܠɿि࣍͘Β͍Ͱߦ͏ରԠ
࡞ͬͨͷʢ̍ʣ w Δ͜ͱ͜Ε͚ͩ
࡞ͬͨͷʢ̍ʣ w ੜͨ͠42-Λςετ͢Δ
࡞ͬͨͷʢ̍ʣ w ྑ͔ͬͨ͜ͱ w $-*ͱͯ͠.BD্Ͱಈ͔͢ʹखܰ w ޕલதͷ༨༟ͷ͋Δ࣌ؒʹୀ۶ͳ࡞ۀΛָ ʹͰ͖Δ w 42-ੜ෦Ͱͷ࠷ݶͷςετͰ҆৺
ɿ$47ϩʔυ$-*
࡞ͬͨͷʢʣ w $47Λड͚औͬͯτϥϯβΫγϣϯ࣮ߦ w ຊ൪%#ʹର͢Δ*/4&3561%"5&
࡞ͬͨͷʢʣ w $-*ύοέʔδͱͯ͠ɺVSGBWFDMJΛ͏ w IUUQTHJUIVCDPNVSGBWFDMJ w DPNNBOE͝ͱʹΦϓγϣϯࢦఆͰ͖Δ
࡞ͬͨͷʢʣ w ྑ͔ͬͨ͜ͱ w ΫϩείϯύΠϧͷັྗ w HP͕JOTUBMM͞Ε͍ͯͳ͍MJOVY্Ͱ࣮ߦ Մೳ w ʮόΠφϦஔ͚ͩ͘ͳΜͰʯ
GOOS=linux GOARCH=amd64 go build -o bin/importer importer.go
ɿ"1*ݕূ$-*
࡞ͬͨͷʢʣ w ֎෦͚"1*ͷݕূ༻$-* w "1* w IUUQTEFWFMPQFSTUIFCBTFJO w "VUI"VUIFOUJDBUJPO w
αϯϓϧίʔυ w IUUQTHJUIVCDPN,IJHBTIJHVDIJ HPTOJQQFUTUSFFNBTUFSCBTFBQJDMJ w 0"VUI w IUUQTHJUIVCDPNHPMBOHPBVUI
࡞ͬͨͷʢʣ w 0"VUIೝূͷ$-*࣮ͷͨΊʹʮ3FBM 8PSME)551ʯΛࢀߟʹ w IUUQTXXXPSFJMMZDPKQCPPLT
γϯϓϧͳπʔϧΛྔ࢈ ˠ৽αʔϏεͰͷ(Pಋ ೖݕ౼
(Pಋೖݕ౼ w ৽αʔϏεͰͷ(Pಋೖݕ౼ w "1*ϝΠϯͷαʔϏε w DTπʔϧɾXFCͰಉ͘͡(PͰΕΔ ͔ݕূத w αʔόαΠυɿ(P
w ϑϩϯτΤϯυɿ7VF+4 w 41"Ͱ443Ͱͳ͍ʮ63-͝ͱʹ )5.-Λฦ͢ʯܗࣜΛݕ౼
࡞ͬͯΔͷʢʣ w (PPHMF0"VUIೝূϕʔεͷཧը ໘αϯϓϧ w IUUQTHJUIVCDPN ,IJHBTIJHVDIJBVUIBENJOBQQ w 0"VUIೝূͰͷϩάΠϯɾϩάΞ τ
࡞ͬͯΔͷʢʣ w 5IF(P#MPH&SSPSIBOEMJOHBOE(P w ΤϥʔΛฦ͢ॲཧͷڞ௨Խ w )BOEMFSJOUFSGBDFΛ࣮͠BQQ&SSPS ܕΛฦ͢BQQ)BOEMFSΛ࡞Δ w
࡞ͬͯΔͷʢʣ ͦΕͧΕͷIBOEMFSɺΓʹBQQ&SSPS ܕΛฦ͢Α͏ʹ࣮ˠڞ௨Խ
࡞ͬͯΔͷʢʣ w ࢀߟ w 0"VUIೝূ w IUUQTHJUIVCDPN (PPHMF$MPVE1MBUGPSNHPMBOH TBNQMFTUSFFNBTUFSHFUUJOH TUBSUFECPPLTIFMG
w ೝՄ w ϩʔϧ͝ͱͷೝՄઃఆͳͲ w IUUQTHJUIVCDPNRPSBVUI
·ͱΊ
·ͱΊ w ࣄͷ߹ؒʹίπίπࠩ͠ࠐΉͱଉൈ͖ʹ ͳΔ w ࣌ʹϨϏϡʔͯ͠Β͑Δͱʢຊ൪%# ѻ͏ͳͲʣ w ࣄͰΔͱʮ࣮ϨϕϧʯͰ༷ʑͳ͜ͱ ʹ͍ͭͯߟ͑Δˠ
w ࠩ͠ࠐΈଓ͚Δͱ৽αʔϏεͰͷಋೖݕ౼ ͷػձ͕͖ͬͯͨʂ
#"4&גࣜձࣾ ౦ޱᏻʢ!,IJHBTIJHVDIJʣ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ