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
spf13/cobraでもできる簡単CLIツール / Fukuoka.go #11
Search
Ken’ichiro Oyama
June 14, 2018
Technology
4
930
spf13/cobraでもできる簡単CLIツール / Fukuoka.go #11
Fukuoka.go #11 LT
Ken’ichiro Oyama
June 14, 2018
Tweet
Share
More Decks by Ken’ichiro Oyama
See All by Ken’ichiro Oyama
実践 net/http Middleware パターン / Kizuku.go Vol.1
k1low
2
260
Cleanup handling in Go / Go Conference 2024
k1low
6
3.4k
CI/CDがあたりまえの今の時代にAPIテスティングツールに求められていること / CI/CD Test Night #7
k1low
17
10k
Command-line interface tool design / PHPerKaigi 2024
k1low
8
3.1k
gostyle IS NOT Go Style / Fukuoka.go#19 Reboot
k1low
1
260
Parsing case study in Go / Go Conference mini 2023 Winter IN KYOTO
k1low
2
1.4k
APIシナリオテストツールとしてのrunn / 4 API testing tools
k1low
3
1.5k
The future of tbls and "Documentation as Code" / phpconfuk 2023
k1low
4
6.6k
net/http/httptest.Server のアプローチをテスト戦略に活用する / Go Conference 2023
k1low
10
3.2k
Other Decks in Technology
See All in Technology
PHPで印刷所に入稿できる名札データを作る / Generating Print-Ready Name Tag Data with PHP
tomzoh
0
180
AWSではじめる Web APIテスト実践ガイド / A practical guide to testing Web APIs on AWS
yokawasa
8
690
データエンジニアリング領域におけるDuckDBのユースケース
chanyou0311
9
2.2k
What's new in Go 1.24?
ciarana
1
110
Iceberg Meetup Japan #1 : Iceberg and Databricks
databricksjapan
0
370
Autonomous Database Serverless 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
17
45k
ESXi で仮想化した ARM 環境で LLM を動作させてみるぞ
unnowataru
0
180
LINEギフトにおけるバックエンド開発
lycorptech_jp
PRO
0
280
ディスプレイ広告(Yahoo!広告・LINE広告)におけるバックエンド開発
lycorptech_jp
PRO
0
360
OPENLOGI Company Profile
hr01
0
60k
Windows の新しい管理者保護モード
murachiakira
0
200
実は強い 非ViTな画像認識モデル
tattaka
3
1.3k
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.2k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
Building a Scalable Design System with Sketch
lauravandoore
461
33k
Designing for Performance
lara
604
68k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.9k
Typedesign – Prime Four
hannesfritz
40
2.5k
Become a Pro
speakerdeck
PRO
26
5.2k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
Transcript
খࢁ݈Ұ(.01FQBCP *OD 'VLVPLBHP TQGDPCSBͰͰ͖Δ ؆୯$-*πʔϧ
γχΞΤϯδχΞ খࢁ݈Ұ!L-P8 ϗεςΟϯάࣄۀ෦ϗεςΟϯάάϧʔϓϚωʔδυΫϥυνʔϜ IUUQTHJUIVCDPNL-P8
.Z$-*UPPMT w BXTQFD w LPNB w PDUPQVCMJTI w PDUPQBDLBHF w
DFSUNBO w TDPOC w UNQGL w SFDJQF w CVO w LVNPNF w CBDLMPHDQ w EFWMPDBM
.Z$-*UPPMT w BXTQFD w LPNB w PDUPQVCMJTI w PDUPQBDLBHF w
DFSUNBO w TDPOC w UNQGL w SFDJQF w CVO w LVNPNF w CBDLMPHDQ w EFWMPDBM PQUQBSTF $BLF4IFMM /PEF #BTI
*5IPS
5IPS w5IPSJTBUPPMLJUGPSCVJMEJOHQPXFSGVMDPNNBOEMJOFJOUFSGBDFT *UJTVTFEJO#VOEMFS 7BHSBOU 3BJMTBOEPUIFST wIUUQXIBUJTUIPSDPN w3VCZͷϑϧελοΫͳ$-*ϥΠϒϥϦ wҾΦϓγϣϯͷΈָཱ͕ͯͰػೳͷ࣮ʹूதͰ͖Δ wศརʹ࡞ΒΕ͍͗ͯͯ͢ɺ3VCZΛॻ͍͍ͯΔͱ͍͏ΑΓ5IPS Λॻ͍͍ͯΔ
ͱ͜ΖͰ࠷ۙ(PΛ֮͑·ͨ͠
.Z$-*UPPMT XSJUUFOJO(P
DHSQT wDHSQTJTBTFUPGDPNNBOETGPSDIFDLJOHDHSPVQT wIUUQTHJUIVCDPNL-P8DHSQT wେྔͷDHSPVQ͕࡞͞ΕΔڥͰɺQFDPͳͲͱ࿈ܞͯ͠ޮతʹ DHSPVQใΛऔΓѻ͏ͨΊͷίϚϯυ > cgrps stat
$(cgrps ls | peco) > ps u --pid $(cgrps ls | peco | cgrps pids | xargs)
UCMT wUCMTJTB$*'SJFOEMZUPPMGPSEPDVNFOUBEBUBCBTF XSJUUFOJO(P wIUUQTHJUIVCDPNL-P8UCMT w.BSLEPXO ('. ܗࣜͰσʔλϕʔευΩϡϝϯτΛੜͯ͘͠ΕΔί Ϛϯυ w$*ʹΈࠐΜͰυΩϡϝϯτͷߋ৽ΛνΣοΫ͢ΔίϚϯυ͋Δ
> tbls doc postgres://user:pass@hostname:5432/dbname ./dbdoc
None
(PͰ$-*πʔϧΛ࡞Δ
(PͰ$-*πʔϧΛ࡞Δ w$-*ϥΠϒϥϦʢϑϨʔϜϫʔΫʣΛ͏ wͨͩϥΠϒϥϦΛ͏ͷͰͳ͘δΣωϨʔτπʔϧΛͬͯߴʹ ϓϩτλΠϓΛ࡞Δ UDOLTNHDMJ VSGBWFDMJ NJUDIFMMIDMJ HPDNE
&YBNQMF IUUQTTQFBLFSEFDLDPNUDOLTNLPNBOEPSBJOUVSVOJUVJUFZVSVUPLJOJQVGBMTFZVSVLPUPOVNCFSZBQDBTJB TMJEF
TQGDPCSB
Cobra is both a library for creating powerful
modern CLI applications as well as a program to generate applications and command files.
TQGDPCSB w,VCFOFUFT.PCZ %PDLFS ɺ0QFO4IJGUͳͲͰΘΕ͍ͯΔ $-*ϥΠϒϥϦʢϑϨʔϜϫʔΫʣͰ͋ΓδΣωϨʔτπʔϧ wDPCSBͷܗΛDPCSBΛͬͯߴʹϓϩτλΠϓΛ࡞Δ TQGDPCSB TQGDPCSB
None
Πϯετʔϧ͔ΒίϚϯυ࡞ͷྫ
/> go get github.com/spf13/cobra/cobra /> cobra init github.com/k1LoW/fukgo
/> cd $GOPATH/src/github.com/k1LoW/fukgo fukgo/> cobra add hello fukgo/> go build fukgo/> ./cobra 1 2 3 4 5 6
؆୯
DPCSBίϚϯυ wDPCSBJOJUTQGDPCSBTQGWJQFSΛͬͨ$-*πʔϧͷܗΛ ࡞͢ΔίϚϯυ wTQGWJQFSʜDPOpHϑΝΠϧΛಡΈࠐΉͨΊͷػߏΛఏڙ͢Δϥ ΠϒϥϦʢඞཁͳ͍߹WJQFSGBMTFʣ wDPCSBBEEαϒίϚϯυͷܗΛՃ࡞͢ΔίϚϯυ
ੜ͞Εͨιʔεͷߏ GVLHP ᵓᴷᴷ-*$&/4& ᵓᴷᴷDNE ᴹᵓᴷᴷIFMMPHPʜGVLHPIFMMPίϚϯυͷίʔυ ᴹᵋᴷᴷSPPUHPʜGVLHPίϚϯυͷίʔυ ᵋᴷᴷNBJOHP
ίʔυͷઆ໌ׂѪ ͨͿΜݟͨΒ͙͢Θ͔Δ ͘Β͍ʹΘ͔Γ͍͢
TQGDPCSBͰͰ͖Δ͜ͱ wίϚϯυ͚ͩͷελΠϧαϒίϚϯυΛ࣋ͭελΠϧ࣮Մೳ wUIPSHFNͰαϒίϚϯυͷελΠϧҎ֎ͷ࣮ݱ͕͍͠ wTQGDPCSBͷ߹DNESPPUHPΛҭͯΕྑ͍ wIFMQίϚϯυͷࣗಈ࡞Φϓγϣϯͷ؆୯੍ޚͳͲଞͷ$-*ϥΠ ϒϥϦͱಉ༷ʹՄೳ wTQGWJQFSͱͷ࿈ܞͰઃఆϑΝΠϧͱͷ࿈ܞՄೳ
ଞͷ$-*ϥΠϒϥϦͰͰ͖Δ͜ͱ Ͱ͖ͦ͏
Ͳͷ$-*ϥΠϒϥϦͰेʹྑ͍ ΈͰબΜͰ
*TQGDPCSB
5IBOLZPV ࠷৽ͷ࠾༻ใΛνΣοΫˠ !QC@SFDSVJU