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
970
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
analysis パッケージの仕組みの上でMulti linter with configを実現する / Go Conference 2025
k1low
1
360
Flight recorder at the application layer (NOT the FlightRecoder newly added at Go 1.25) / Fukuoka.go #22
k1low
0
100
ソフトウェア開発におけるインターフェイスという考え方 / PHPerKaigi 2025
k1low
10
5.7k
Parsing HCL/CUE / Fukuoka.go #21
k1low
0
9.2k
実践 net/http Middleware パターン / Kizuku.go Vol.1
k1low
2
360
Cleanup handling in Go / Go Conference 2024
k1low
7
3.9k
CI/CDがあたりまえの今の時代にAPIテスティングツールに求められていること / CI/CD Test Night #7
k1low
18
12k
Command-line interface tool design / PHPerKaigi 2024
k1low
8
3.5k
gostyle IS NOT Go Style / Fukuoka.go#19 Reboot
k1low
1
310
Other Decks in Technology
See All in Technology
AIエージェントによる業務効率化への飽くなき挑戦-AWS上の実開発事例から学んだ効果、現実そしてギャップ-
nasuvitz
5
1.4k
【SORACOM UG Explorer 2025】さらなる10年へ ~ SORACOM MVC 発表
soracom
PRO
0
170
What's new in OpenShift 4.20
redhatlivestreaming
0
390
DSPy入門
tomehirata
4
530
IBC 2025 動画技術関連レポート / IBC 2025 Report
cyberagentdevelopers
PRO
2
220
20251029_Cursor Meetup Tokyo #02_MK_「あなたのAI、私のシェル」 - プロンプトインジェクションによるエージェントのハイジャック
mk0721
PRO
6
2k
20251027_マルチエージェントとは
almondo_event
1
480
AIの個性を理解し、指揮する
shoota
3
480
re:Invent 2025の見どころと便利アイテムをご紹介 / Highlights and Useful Items for re:Invent 2025
yuj1osm
0
360
仕様駆動開発を実現する上流工程におけるAIエージェント活用
sergicalsix
8
4.3k
プレイドのユニークな技術とインターンのリアル
plaidtech
PRO
1
510
Retrospectiveを振り返ろう
nakasho
0
130
Featured
See All Featured
Unsuck your backbone
ammeep
671
58k
The Cost Of JavaScript in 2023
addyosmani
55
9.1k
How to Ace a Technical Interview
jacobian
280
24k
The Illustrated Children's Guide to Kubernetes
chrisshort
49
51k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.1k
Keith and Marios Guide to Fast Websites
keithpitt
411
23k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Statistics for Hackers
jakevdp
799
220k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
How to Think Like a Performance Engineer
csswizardry
27
2.2k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.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