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
870
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
Cleanup handling in Go / Go Conference 2024
k1low
6
2.6k
CI/CDがあたりまえの今の時代にAPIテスティングツールに求められていること / CI/CD Test Night #7
k1low
17
6.5k
Command-line interface tool design / PHPerKaigi 2024
k1low
7
1.6k
gostyle IS NOT Go Style / Fukuoka.go#19 Reboot
k1low
1
180
Parsing case study in Go / Go Conference mini 2023 Winter IN KYOTO
k1low
2
1.2k
APIシナリオテストツールとしてのrunn / 4 API testing tools
k1low
2
1.2k
The future of tbls and "Documentation as Code" / phpconfuk 2023
k1low
3
4.7k
net/http/httptest.Server のアプローチをテスト戦略に活用する / Go Conference 2023
k1low
9
2.7k
Win Testing Trophy Easily / テスティングトロフィーを獲得する / PHPerKaigi 2023
k1low
6
3.5k
Other Decks in Technology
See All in Technology
スタートアップにおける組織設計とスクラムの長期戦略 / Scrum Fest Kanazawa 2024
yoshikiiida
13
3.6k
推薦システムを本番導入する上で一番優先すべきだったこと~NewsPicks記事推薦機能の改善事例を元に~
morinota
0
130
Github Actions 로 Android 팀의 효율성 극대화
hadonghyun
0
160
エンジニア向け会社紹介資料
caddi_eng
14
220k
地理情報とAPIのトレンド
nagix
0
160
目標設定は好きですか? アジャイルとともに目標と向き合い続ける方法 / Do you like target Management?
kakehashi
10
3k
DDDにおける認可の扱いとKotlinにおける実装パターン / authorization-for-ddd-and-kotlin-implement-pattern
urmot
4
390
サーバーレスAPI(API Gateway+Lambda)とNext.jsで 個人ブログを作ろう!
shuntaka
PRO
0
560
20240725 LLMによるDXのビジョンと、今何からやるべきか @Azure OpenAI Service Dev Day
nrryuya
3
1.2k
年間一億円削減した時系列データベースのアーキテクチャ改善~不確実性の高いプロジェクトへの挑戦~
lycorptech_jp
PRO
3
2.9k
ペパボのオブザーバビリティ研修2024 説明資料
kesompochy
0
1.1k
楽しくGoを学び合う、LayerXの勉強会文化 / LayerX's study culture of having fun and learning Go together
ar_tama
2
350
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
90
47k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.3k
Happy Clients
brianwarren
94
6.5k
Clear Off the Table
cherdarchuk
89
320k
Facilitating Awesome Meetings
lara
46
5.8k
The Language of Interfaces
destraynor
151
23k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
105
6.8k
Leading Effective Engineering Teams 2024
addyosmani
3
300
GraphQLとの向き合い方2022年版
quramy
36
13k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
34
1.9k
Large-scale JavaScript Application Architecture
addyosmani
506
110k
BBQ
matthewcrist
82
9k
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