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でテンプレートからファイルを自動生成するCLIを作る
Search
KazukiHayase
May 24, 2023
Technology
1.6k
0
Share
Goでテンプレートからファイルを自動生成するCLIを作る
KazukiHayase
May 24, 2023
More Decks by KazukiHayase
See All by KazukiHayase
entのPrivacy機能とgo/astを使って、意図しないDBアクセスを防ぐ
kazukihayase
1
400
go testのキャッシュの仕組みにDeep Diveする
kazukihayase
0
150
要件定義・デザインフェーズでもAIを活用して、コミュニケーションの密度を高める
kazukihayase
0
560
CIでのgolangci-lintの実行を約90%削減した話
kazukihayase
0
560
もし今からGraphQLを採用するなら
kazukihayase
13
5.9k
Goでテストをしやすくするためにやったこと
kazukihayase
1
930
GraphQLクライアントの技術選定 2023冬
kazukihayase
9
7.8k
Introduction and Insights of the Hasura-based Architecture
kazukihayase
0
1.1k
自分だけが頑張るのをやめて、フルスタックなチームを作る
kazukihayase
2
3.6k
Other Decks in Technology
See All in Technology
Purview Endpoint DLP 動かしてみた
kozakigh
0
370
AI時代の品質はテストプロセスの作り直し #scrumniigata
kyonmm
PRO
4
1.5k
20260513_生成AIを専属DSに_AI分析結果の検品テクニック_ハンズオン_交通事故データ
doradora09
PRO
0
220
Every Conversation Counts
kawaguti
PRO
0
210
「強制アップデート」か「チームの自律」か?エンタープライズが辿り着いたプラットフォームのハイブリッド運用/cloudnative-kaigi-hybrid-platform-operations
mhrtech
0
180
『生成AI時代のクレデンシャルとパーミッション設計 — Claude Code を起点に』の執筆企画
takuros
3
2.3k
世界の中心でApp Runnerを叫ぶ FINAL
tsukuboshi
0
260
ボトムアップ限界を越える - 20チームを束る "Drive Map" / Beyond Bottom-Up: A 'Drive Map' for 20 Teams
kaonavi
0
190
アプリブロック機能のつくりかたと、AIとHTMLの不合理な相性の良さについて
kumamotone
1
250
PdM・Eng・QAで進めるAI駆動開発の現在地/aidd-with-pdm-eng-qa
shota_kusaba
0
220
いつの間にかデータエンジニア以外の業務も増えていたけど、意外と経験が役に立ってる
zozotech
PRO
0
510
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.4k
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
37
7.3k
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
170
A Modern Web Designer's Workflow
chriscoyier
698
190k
Site-Speed That Sticks
csswizardry
13
1.2k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.5k
Navigating Team Friction
lara
192
16k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
160
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
140
The Cost Of JavaScript in 2023
addyosmani
55
9.9k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2k
Transcript
GoͰςϯϓϨʔτ͔ΒϑΝΠϧΛࣗಈੜ͢ΔCLIΛ࡞Δ ʲZOZO x ϕʔεϚΩφ x όΠηϧʳGoษڧձ #1ʲϋΠϒϦου։࠵ʳ 2023.05.24
ࣗݾհ ໊લɿૣً ܦྺɿBuySell Technologiesʹ2021ʹ৽ଔೖࣾ ॴଐɿ։ൃ2෦ ग़ཧSaaSνʔϜ ৬ɿϑϧελοΫΤϯδχΞɺϓϩδΣΫτϦʔμʔ झຯɿ։ൃɺϚϯΨɺΞχϝɺϕʔεɺόεέ Twitterɿ@KazukiHayase
ΞδΣϯμ CLIΛ࡞ͨ͠എܠ 01 ࡞ͨ͠CLIͷհ 02 ·ͱΊ 03
01 CLIΛ࡞ͨ͠എܠ
CLIΛ࡞ͨ͠എܠ • ݩʑੜ࢈ੑΛ্ͤ͞ΔCLIΛ࡞ΔจԽ͕νʔϜʹ͋ͬͨ • ϓϩμΫτͷಛੑ্ɺಉ͡Α͏ͳ࣮͕ෳՕॴଘࡏ͢Δ ◦ ※େಉ͕ͩ͡ɺڞ௨Խ͍͠
CLIΛ࡞ͨ͠എܠ ग़ཧSaaSෳͷECαΠτಉ࣌ग़Λߦ͏ ECαΠτ1 ECαΠτ2 ECαΠτ3
CLIΛ࡞ͨ͠എܠ ECαΠτ͝ͱʹAPI͕ҟͳΔ ECαΠτ1 ECαΠτ2 ECαΠτ3 json xml
CLIΛ࡞ͨ͠എܠ • ECαΠτ͝ͱʹAPI͕ҟͳΔͷͰڞ௨ԽͰ͖ͳ͍ • มߋ͞ΕΔഎܠ͕ҟͳΔͷͰɺաͳநԽආ͚͍ͨ • ͨͩ͠ɺॲཧͷେͲͷECαΠτେମಉ͡ ςϯϓϨʔτ͔ΒϑΝΠϧΛੜͯ͠ ࣮ΛޮԽ͍ͨ͠ʂʂ
02 ࡞ͨ͠CLIͷհ
࣮ߦίϚϯυ ରܗࣜͰೖྗ
ςϯϓϨʔτϑΝΠϧͱੜϑΝΠϧ ೖྗͨ͠ύοέʔδ໊ͱ໊ؔͰ ஔ͞ΕΔ ςϯϓϨʔτϑΝΠϧ ੜϑΝΠϧ
࣮
༻ͨ͠ϥΠϒϥϦ • cobra ◦ CLIΛ؆୯ʹ࡞Ͱ͖ΔϥΠϒϥϦ ◦ KubernetesGitHub CLIͰ༻͞Ε͍ͯΔ • text/template
◦ ςϯϓϨʔτΛݩʹจࣈྻΛੜ͢Δඪ४ϥΠϒϥϦ ◦ ؔมɺforifͳͲͷ੍ޚߏจςϯϓϨʔτʹຒΊࠐΊΔ
େͷ࡞ cobra-cliΛར༻ͯ͠ ϘΠϥʔςϯϓϨʔτΛ࡞ cmdύοέʔδʹCLIͷॲཧΛ ࣮͍ͯ͘͠
ίϚϯυͷՃ cobra.CommandߏମΛఆٛ rootCmdʹՃ͢Δ͜ͱͰ CLI͔Β࣮ߦͰ͖ΔΑ͏ʹͳΔ
ඪ४ೖྗͷऔಘ fmt.ScanlnͰඪ४ೖྗΛऔಘ ඪ४ೖྗΛݩʹςϯϓϨʔτʹ ͢σʔλΛmapͰఆٛ
ೖग़ྗϑΝΠϧͷఆٛ ςϯϓϨʔτϑΝΠϧͱग़ྗઌͷ ϑΝΠϧΛmapͰఆٛ ֤ೖग़ྗʹରͯ͠ϧʔϓͰॲཧ
ϑΝΠϧͷಡΈࠐΈͱੜ ςϯϓϨʔτΛಡΈࠐΈɺ ग़ྗઌͷϑΝΠϧΛੜ
ςϯϓϨʔτͷஔ ಡΈࠐΜͩςϯϓϨʔτʹରͯ͠ ඪ४ೖྗͰड͚औͬͨσʔλΛ ༻ͯ͠ஔॲཧΛ࣮ߦ
ςϯϓϨʔτϑΝΠϧͷྫ
03 ·ͱΊ
·ͱΊ • cobraͱtext/templateͰ؆୯ʹࣗಈੜCLIΛ࡞Εͨ ◦ ੍ޚߏจར༻Ͱ͖ΔͷͰɺςϯϓϨʔτॊೈʹఆٛՄೳ • CLIΛ࡞ͨ͜͠ͱͰ࣮ΛޮԽ͢Δ͜ͱ͕Ͱ͖ͨ • σΟϨΫτϦߏͳͲͷϧʔϧͷڧ੍ʹ׆༻Ͱ͖Δ ◦
ϧʔϧʹैͬͨςϯϓϨʔτΛఆٛ͢Δ͜ͱͰɺ ࣗવͱϧʔϧʹै࣮ͬͨʹͳΔΑ͏ʹΈԽͰ͖Δ
THANK YOU