Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ボイラープレート自動生成ツールを使わなくなった話.pdf
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
sugar-cat
July 17, 2024
800
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ボイラープレート自動生成ツールを使わなくなった話.pdf
sugar-cat
July 17, 2024
More Decks by sugar-cat
See All by sugar-cat
HonoとOpenTelemetryで実現するオブザーバービリティ構築
sugarcat7
0
580
ErrorTrackingとOrchestrion
sugarcat7
0
440
DiscordとCloudflare
sugarcat7
2
1.3k
Cloudflare Workflowsを使いたい倒したい
sugarcat7
8
2.7k
tslogで実現するセキュアなメタデータ管理とロギング
sugarcat7
4
1.7k
最近個人開発が熱い ~モニタリング強化編v0.1.0~
sugarcat7
3
520
Honoで実現するバックエンド開発のイマ
sugarcat7
23
6.4k
GoとWASI~超入門~
sugarcat7
2
330
最近個人開発が熱い ~多言語対応編~
sugarcat7
2
450
Featured
See All Featured
Building Applications with DynamoDB
mza
96
7.2k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.9k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
We Have a Design System, Now What?
morganepeng
55
8.3k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
570
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
340
A better future with KSS
kneath
240
18k
Documentation Writing (for coders)
carmenintech
77
5.5k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.3k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Transcript
ボイラープレート自動生成 ツールを使わなくなった話 2024/7/17 D-Plus Tokyo #4 ~しくじり事例から学ぶ!開発生産性の取り組みLT会~ @sugar235711
2 sugar-cat 所属: Cyber Agent/AI Shift バックエンドエンジニア パフォーマンスチューニングとセキュリティの話が好きです 自己紹介 @sugar235711
3 開発者から見た 開発生産性の話です
4 Agenda 1. 開発フロー 2. ボイラープレートと課題 3. まとめ
5 1.1. 開発中のプロダクト 1. 開発フローと開発生産性
6 1.2. インフラ構成 1. 開発フローと開発生産性
7 1.2. インフラ構成 1. 開発フローと開発生産性
8 Git Flowを採用した featureベースの開発 1.3. 開発フロー 1. 開発フローと開発生産性
9 OpenAPIを中心としたスキーマ駆動開発 1.4. 開発プロセス 1. 開発フローと開発生産性
10 OpenAPIを中心としたスキーマ駆動開発 1.4. 開発プロセス 1. 開発フローと開発生産性 ここの話
11 スキーマをベースに詳細な実装を詰めていく。 クリーンアーキテクチャベースでレイヤー間で責務を分けるのでコードの記 述量が多い。 1.5. APIサーバーの開発 1. 開発フローと開発生産性 Request Response
Handler Usecase Repository
12 開発工数の削減 • Stubの開発を高速化しフロントエンドに影響を与えたくない • レイヤー分けをした時のコードの記述量を減らしたい • 他サービスへの展開 認知負荷を減らす •
誰が書いても同じような実装にする ◦ メソッドの命名 etc 2.1. 導入背景 2. ボイラープレートについて
13 開発工数の削減 • Stubの開発を高速化しフロントエンドに影響を与えたくない • レイヤー分けをした時のコードの記述量を減らしたい • 他サービスへの展開 認知負荷を減らす •
誰が書いても同じような実装にする ◦ メソッドの命名 etc 2.1. 導入背景 2. ボイラープレートと課題
14 2.2. ツールと実装 2. ボイラープレートと課題
15 2.2. ツールと実装 (ejsのテンプレートからコードを生成例 ) 2. ボイラープレートと課題
16 2.2. ツールと実装 (ejsのテンプレートからコードを生成例 ) 2. ボイラープレートと課題
17 2.2. ツールと実装 (入力や選択可能な少しリッチな CLIを作れる) 2. ボイラープレートと課題
18 [開発初期] • 0->1で多くのAPIを同時並行に一気に作ることが多かった 2.3. 導入後に見えた課題 2. ボイラープレートと課題
19 [開発初期] • 0->1で多くのAPIを同時並行に一気に作ることが多かった ➢ 大量のファイルを一気に作れて便利だった 2.3. 導入後に見えた課題 2. ボイラープレートと課題
20 [開発初期] • 0->1で多くのAPIを同時並行に一気に作ることが多かった ➢ 大量のファイルを一気に作れて便利だった [半年~現在(8ヶ月目)] • 設計の見直しや、バグ Fixなど部分的な修正が増えた
• 要件の複雑化で実装パターンが増えてテンプレートの準備が大変に なった • ejsつらい 2.3. 導入後に見えた課題 2. ボイラープレートと課題
21 [開発初期] • 0->1で多くのAPIを同時並行に一気に作ることが多かった ➢ 大量のファイルを一気に作れて便利だった [半年~現在(8ヶ月目)] • 設計の見直しや、バグ Fixなど部分的な修正が増えた
➢ 既存ファイルの上書き、部分的な生成が難しい • 要件の複雑化で実装パターンが増えてテンプレートの準備が大変に なった ➢ CQRSなどのアーキテクチャパターンへの対応 • ejsつらい ➢ 人類には早い、読みづらい 2.3. 導入後に見えた課題 2. ボイラープレートと課題
22 😇 2. ボイラープレートと課題
23 • そもそも使う人がいなくなった 2.4. どうして消した? 2. ボイラープレートと課題
24 • そもそも使う人がいなくなった 2.4. どうして消した? 2. ボイラープレートと課題 [認知] ・ツールがあることを知らない
25 • そもそも使う人がいなくなった 2.4. どうして消した? 2. ボイラープレートと課題 [認知] ・ツールがあることを知らない →オンボーディング不足
26 • そもそも使う人がいなくなった 2.4. どうして消した? 2. ボイラープレートと課題 [認知] ・ツールがあることを知らない →オンボーディング不足
[興味] ・使い方がわからない
27 • そもそも使う人がいなくなった 2.4. どうして消した? 2. ボイラープレートと課題 [認知] ・ツールがあることを知らない →オンボーディング不足
[興味] ・使い方がわからない →ツール固有の知識の学習コスト、社内ドキュメント不足
28 • そもそも使う人がいなくなった 2.4. どうして消した? 2. ボイラープレートと課題 [認知] ・ツールがあることを知らない →オンボーディング不足
[興味] ・使い方がわからない →ツール固有の知識の学習コスト、社内ドキュメント不足 [行動] ・理想の生成結果ではなかった
29 • そもそも使う人がいなくなった 2.4. どうして消した? 2. ボイラープレートと課題 [認知] ・ツールがあることを知らない →オンボーディング不足
[興味] ・使い方がわからない →ツール固有の知識の学習コスト、社内ドキュメント不足 [行動] ・理想の生成結果ではなかった →アーキテクチャ設計の変更に弱い、運用が属人化で追従できない
30 • 周知とフィードバックの収集 • 属人性の排除 2.5. どうしたら良かった? 2. ボイラープレートと課題
31 • 周知とフィードバックの収集 ◦ 開発チーム側への利用提案 ▪ 導入は開発チームに決めてもらう ▪ FBをもらう。 良い悪いかかわらず改善のサイクルを回す。
◦ とりあえず入れるで終わらない、 計測し状況を可視化する ▪ 使いやすさ : ASTベースでさらにカスタマイズ可能な Generator方が良いかもしれない ▪ 開発速度 : 開発完了までのリードタイムにどのくらい影響を与えたか • 属人性の排除 ◦ 協力者を増やす ▪ Platform Engineering的な考え方を取り入れ、汎化可能な知見とし てプロダクト横断して取り入れるようにする 2.5. どうしたら良かった? 2. ボイラープレートと課題
32 • ボイラープレートの自動生成ツールを作ったが、運用が困難になり使われなくなっ た事例を紹介した 3. まとめ