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
0
1.4k
Goでテンプレートからファイルを自動生成するCLIを作る
KazukiHayase
May 24, 2023
Tweet
Share
More Decks by KazukiHayase
See All by KazukiHayase
要件定義・デザインフェーズでもAIを活用して、コミュニケーションの密度を高める
kazukihayase
0
240
CIでのgolangci-lintの実行を約90%削減した話
kazukihayase
0
480
もし今からGraphQLを採用するなら
kazukihayase
13
5.4k
Goでテストをしやすくするためにやったこと
kazukihayase
1
840
GraphQLクライアントの技術選定 2023冬
kazukihayase
9
7.3k
Introduction and Insights of the Hasura-based Architecture
kazukihayase
0
1k
自分だけが頑張るのをやめて、フルスタックなチームを作る
kazukihayase
2
3.4k
生産性が上がり続けるチームを作るための第一歩
kazukihayase
4
3.8k
GraphQLにおけるクライアントキャッシュ戦略
kazukihayase
0
3.3k
Other Decks in Technology
See All in Technology
コンテキストエンジニアリングとは? 考え方と応用方法
findy_eventslides
4
900
KAGのLT会 #8 - 東京リージョンでGAしたAmazon Q in QuickSightを使って、報告用の資料を作ってみた
0air
0
200
Goに育てられ開発者向けセキュリティ事業を立ち上げた僕が今向き合う、AI × セキュリティの最前線 / Go Conference 2025
flatt_security
0
350
DataOpsNight#8_Terragruntを用いたスケーラブルなSnowflakeインフラ管理
roki18d
1
340
動画データのポテンシャルを引き出す! Databricks と AI活用への奮闘記(現在進行形)
databricksjapan
0
140
Large Vision Language Modelを用いた 文書画像データ化作業自動化の検証、運用 / shibuya_AI
sansan_randd
0
110
ZOZOのAI活用実践〜社内基盤からサービス応用まで〜
zozotech
PRO
0
170
非エンジニアのあなたもできる&もうやってる!コンテキストエンジニアリング
findy_eventslides
3
910
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
11
77k
stupid jj tricks
indirect
0
7.9k
自作LLM Native GORM Pluginで実現する AI Agentバックテスト基盤構築
po3rin
2
250
LLMアプリケーション開発におけるセキュリティリスクと対策 / LLM Application Security
flatt_security
7
1.9k
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Code Reviewing Like a Champion
maltzj
525
40k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
53k
Building an army of robots
kneath
306
46k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Building Adaptive Systems
keathley
43
2.8k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6.1k
We Have a Design System, Now What?
morganepeng
53
7.8k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
A designer walks into a library…
pauljervisheath
209
24k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
Designing Experiences People Love
moore
142
24k
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