yodogawa 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.windsurf/templates/documentation-rules.md +143 -0
- package/.windsurf/templates/project/01-requirements/01-system-overview.md +49 -0
- package/.windsurf/templates/project/01-requirements/02-features-implemented.md +73 -0
- package/.windsurf/templates/project/01-requirements/03-features-planned.md +75 -0
- package/.windsurf/templates/project/01-requirements/04-non-functional-requirements.md +115 -0
- package/.windsurf/templates/project/01-requirements/05-user-stories.md +124 -0
- package/.windsurf/templates/project/02-behavior/01-scenarios.md +406 -0
- package/.windsurf/templates/project/03-domain/01-domain-model.md +338 -0
- package/.windsurf/templates/project/03-domain/02-ubiquitous-language.md +153 -0
- package/.windsurf/templates/project/04-design/01-tech-stack.md +360 -0
- package/.windsurf/templates/project/04-design/02-repository-structure.md +390 -0
- package/.windsurf/templates/project/04-design/03-screen-design.md +586 -0
- package/.windsurf/templates/project/04-design/04-data-model.md +211 -0
- package/.windsurf/templates/project/04-design/05-api-spec.md +221 -0
- package/.windsurf/templates/project/04-design/06-architecture.md +183 -0
- package/.windsurf/templates/project/04-design/07-infrastructure.md +180 -0
- package/.windsurf/templates/tasks/task-template/a-definition.md +143 -0
- package/.windsurf/templates/tasks/task-template/b-research.md +185 -0
- package/.windsurf/templates/tasks/task-template/c-implementation.md +197 -0
- package/.windsurf/workflows/a-001-SetupDocStructure.md +165 -0
- package/.windsurf/workflows/a-002-InitializeProject.md +229 -0
- package/.windsurf/workflows/a-003-CreateScenarios.md +130 -0
- package/.windsurf/workflows/a-004-DefineDomainModel.md +133 -0
- package/.windsurf/workflows/a-005-CreateDomainDiagram.md +114 -0
- package/.windsurf/workflows/a-006-ReviewRequirementsDomain.md +132 -0
- package/.windsurf/workflows/a-007-DefineTechStack.md +121 -0
- package/.windsurf/workflows/a-008-DefineRepositoryStructure.md +118 -0
- package/.windsurf/workflows/a-009-DefineScreenDesign.md +121 -0
- package/.windsurf/workflows/a-010-DefineDataModel.md +125 -0
- package/.windsurf/workflows/a-011-DefineAPISpec.md +123 -0
- package/.windsurf/workflows/a-012-DefineArchitecture.md +119 -0
- package/.windsurf/workflows/a-013-DefineInfrastructure.md +120 -0
- package/.windsurf/workflows/a-014-ReviewDesign.md +122 -0
- package/.windsurf/workflows/b-001-CreateTaskDirectory.md +71 -0
- package/.windsurf/workflows/b-002-CreateTaskDefinition.md +165 -0
- package/.windsurf/workflows/b-003-CreateTaskResearch.md +412 -0
- package/.windsurf/workflows/b-004-CreateTaskImplementation.md +97 -0
- package/.windsurf/workflows/b-005-ReviewTask.md +312 -0
- package/.windsurf/workflows/c-001-ImplementTask.md +493 -0
- package/.windsurf/workflows/c-002-UpdateDocumentation.md +797 -0
- package/.windsurf/workflows/x-Accessibility-Check.md +469 -0
- package/.windsurf/workflows/x-Bundle-Optimize.md +386 -0
- package/.windsurf/workflows/x-CI-FixFailure.md +636 -0
- package/.windsurf/workflows/x-CI-Setup.md +641 -0
- package/.windsurf/workflows/x-Code-Refactor.md +71 -0
- package/.windsurf/workflows/x-Code-ResearchAndReview.md +78 -0
- package/.windsurf/workflows/x-Component-Create.md +359 -0
- package/.windsurf/workflows/x-Context-CatchUp.md +63 -0
- package/.windsurf/workflows/x-Database-Seed.md +300 -0
- package/.windsurf/workflows/x-Dependencies-Update.md +315 -0
- package/.windsurf/workflows/x-DevEnvironment-Setup.md +437 -0
- package/.windsurf/workflows/x-Logging-Add.md +682 -0
- package/.windsurf/workflows/x-Migration-Create.md +354 -0
- package/.windsurf/workflows/x-Problem-RootCauseAnalysis.md +65 -0
- package/.windsurf/workflows/x-Repository-Push.md +375 -0
- package/.windsurf/workflows/x-Repository-PushToGithub.md +72 -0
- package/.windsurf/workflows/x-Requirements-Clarify.md +61 -0
- package/.windsurf/workflows/z-CreateWorkflow.md +77 -0
- package/README.md +280 -0
- package/bin/cli.js +74 -0
- package/package.json +28 -0
|
@@ -0,0 +1,437 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 新規開発者やクリーン環境で開発環境を素早くセットアップするワークフロー
|
|
3
|
+
auto_execution_mode: 1
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# DevEnvironment-Setup (x-DevEnvironment-Setup)
|
|
7
|
+
|
|
8
|
+
## 目的
|
|
9
|
+
|
|
10
|
+
- 新しい開発者がプロジェクトにすぐに参加できるよう、開発環境を自動的にセットアップする。
|
|
11
|
+
- クリーンインストールや環境リセット時に、必要な依存関係とツールを一括でインストールする。
|
|
12
|
+
- 環境変数、データベース、サンプルデータなどを適切に設定する。
|
|
13
|
+
- セットアップの手順を標準化し、環境依存の問題を減らす。
|
|
14
|
+
|
|
15
|
+
## 前提
|
|
16
|
+
|
|
17
|
+
- Git がインストールされており、リポジトリがクローン済みである。
|
|
18
|
+
- 必要なランタイム(Node.js, Python, など)がインストール可能である。
|
|
19
|
+
- インターネット接続が利用可能である(パッケージのダウンロードのため)。
|
|
20
|
+
- README.md に基本的なセットアップ手順が記載されている(参照用)。
|
|
21
|
+
|
|
22
|
+
## 手順
|
|
23
|
+
|
|
24
|
+
### 1. システム要件の確認
|
|
25
|
+
|
|
26
|
+
**質問1: プロジェクトタイプの確認**
|
|
27
|
+
- 「このプロジェクトの種類は何ですか?」
|
|
28
|
+
- Node.js(React, Next.js, Express, etc.)
|
|
29
|
+
- Python(Django, Flask, FastAPI, etc.)
|
|
30
|
+
- Ruby(Rails, Sinatra, etc.)
|
|
31
|
+
- その他
|
|
32
|
+
|
|
33
|
+
**質問2: 必要なツールの確認**
|
|
34
|
+
- 「このプロジェクトで必要なツールは何ですか?」
|
|
35
|
+
- ランタイム(Node.js, Python, Ruby, etc.)
|
|
36
|
+
- データベース(PostgreSQL, MySQL, MongoDB, etc.)
|
|
37
|
+
- キャッシュ(Redis, Memcached, etc.)
|
|
38
|
+
- その他(Docker, Docker Compose, etc.)
|
|
39
|
+
|
|
40
|
+
### 2. ランタイムのバージョン確認
|
|
41
|
+
|
|
42
|
+
**Node.js プロジェクト**:
|
|
43
|
+
```bash
|
|
44
|
+
node --version
|
|
45
|
+
npm --version
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**推奨バージョンを確認**:
|
|
49
|
+
- `.nvmrc` ファイルが存在する場合: `cat .nvmrc`
|
|
50
|
+
- `package.json` の `engines` フィールドを確認
|
|
51
|
+
|
|
52
|
+
**質問3: バージョンの確認**
|
|
53
|
+
- 「現在のバージョンは推奨バージョンと一致していますか?」
|
|
54
|
+
- 一致しない場合、nvm(Node Version Manager)で切り替え:
|
|
55
|
+
```bash
|
|
56
|
+
nvm install
|
|
57
|
+
nvm use
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**Python プロジェクト**:
|
|
61
|
+
```bash
|
|
62
|
+
python --version
|
|
63
|
+
# または
|
|
64
|
+
python3 --version
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**推奨バージョンを確認**:
|
|
68
|
+
- `.python-version` ファイルが存在する場合: `cat .python-version`
|
|
69
|
+
- `pyproject.toml` または `setup.py` を確認
|
|
70
|
+
|
|
71
|
+
### 3. 依存関係のインストール
|
|
72
|
+
|
|
73
|
+
#### 3.1. パッケージマネージャーの確認
|
|
74
|
+
|
|
75
|
+
**質問4: パッケージマネージャー**
|
|
76
|
+
- 「使用するパッケージマネージャーは何ですか?」
|
|
77
|
+
- npm(`package-lock.json` が存在)
|
|
78
|
+
- yarn(`yarn.lock` が存在)
|
|
79
|
+
- pnpm(`pnpm-lock.yaml` が存在)
|
|
80
|
+
- pip(`requirements.txt` が存在)
|
|
81
|
+
- poetry(`poetry.lock` が存在)
|
|
82
|
+
|
|
83
|
+
#### 3.2. 依存関係のインストール
|
|
84
|
+
|
|
85
|
+
**Node.js**:
|
|
86
|
+
```bash
|
|
87
|
+
# npm
|
|
88
|
+
npm install
|
|
89
|
+
|
|
90
|
+
# yarn
|
|
91
|
+
yarn install
|
|
92
|
+
|
|
93
|
+
# pnpm
|
|
94
|
+
pnpm install
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**Python**:
|
|
98
|
+
```bash
|
|
99
|
+
# pip (virtualenv 推奨)
|
|
100
|
+
python -m venv .venv
|
|
101
|
+
source .venv/bin/activate # Windows: .venv\Scripts\activate
|
|
102
|
+
pip install -r requirements.txt
|
|
103
|
+
|
|
104
|
+
# poetry
|
|
105
|
+
poetry install
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**Ruby**:
|
|
109
|
+
```bash
|
|
110
|
+
bundle install
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### 4. 環境変数の設定
|
|
114
|
+
|
|
115
|
+
#### 4.1. 環境変数ファイルの確認
|
|
116
|
+
|
|
117
|
+
**質問5: 環境変数ファイルの存在**
|
|
118
|
+
- 「`.env.example` または `.env.sample` ファイルが存在しますか?」
|
|
119
|
+
|
|
120
|
+
**環境変数ファイルをコピー**:
|
|
121
|
+
```bash
|
|
122
|
+
cp .env.example .env
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
#### 4.2. 環境変数の設定
|
|
126
|
+
|
|
127
|
+
**質問6: 必要な環境変数**
|
|
128
|
+
- 「設定が必要な環境変数は何ですか?」
|
|
129
|
+
|
|
130
|
+
必要な環境変数の例:
|
|
131
|
+
- `DATABASE_URL` - データベース接続文字列
|
|
132
|
+
- `REDIS_URL` - Redis 接続文字列
|
|
133
|
+
- `API_KEY` - 外部 API キー
|
|
134
|
+
- `JWT_SECRET` - JWT シークレット
|
|
135
|
+
- `NODE_ENV` - 環境(development, production)
|
|
136
|
+
|
|
137
|
+
**環境変数を対話的に設定**:
|
|
138
|
+
```bash
|
|
139
|
+
# .env ファイルを編集
|
|
140
|
+
nano .env
|
|
141
|
+
# または
|
|
142
|
+
code .env
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**例**:
|
|
146
|
+
```env
|
|
147
|
+
# Database
|
|
148
|
+
DATABASE_URL=postgresql://user:password@localhost:5432/dbname
|
|
149
|
+
|
|
150
|
+
# Redis
|
|
151
|
+
REDIS_URL=redis://localhost:6379
|
|
152
|
+
|
|
153
|
+
# API Keys
|
|
154
|
+
OPENAI_API_KEY=your_api_key_here
|
|
155
|
+
|
|
156
|
+
# JWT
|
|
157
|
+
JWT_SECRET=your_secret_key_here
|
|
158
|
+
|
|
159
|
+
# Environment
|
|
160
|
+
NODE_ENV=development
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### 5. データベースのセットアップ
|
|
164
|
+
|
|
165
|
+
#### 5.1. データベースサーバーの起動
|
|
166
|
+
|
|
167
|
+
**Docker Compose を使用する場合**:
|
|
168
|
+
```bash
|
|
169
|
+
docker-compose up -d postgres
|
|
170
|
+
# または
|
|
171
|
+
docker-compose up -d
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**ローカルにインストールされている場合**:
|
|
175
|
+
```bash
|
|
176
|
+
# PostgreSQL
|
|
177
|
+
sudo service postgresql start
|
|
178
|
+
|
|
179
|
+
# MySQL
|
|
180
|
+
sudo service mysql start
|
|
181
|
+
|
|
182
|
+
# MongoDB
|
|
183
|
+
sudo service mongod start
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
#### 5.2. データベースの作成
|
|
187
|
+
|
|
188
|
+
**質問7: データベース作成**
|
|
189
|
+
- 「データベースを作成する必要がありますか?」
|
|
190
|
+
|
|
191
|
+
**PostgreSQL**:
|
|
192
|
+
```bash
|
|
193
|
+
createdb <database_name>
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
**MySQL**:
|
|
197
|
+
```bash
|
|
198
|
+
mysql -u root -p -e "CREATE DATABASE <database_name>;"
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
#### 5.3. マイグレーションの実行
|
|
202
|
+
|
|
203
|
+
**Node.js (Prisma)**:
|
|
204
|
+
```bash
|
|
205
|
+
npx prisma migrate dev
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
**Node.js (TypeORM)**:
|
|
209
|
+
```bash
|
|
210
|
+
npm run migration:run
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
**Python (Django)**:
|
|
214
|
+
```bash
|
|
215
|
+
python manage.py migrate
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
**Python (Alembic)**:
|
|
219
|
+
```bash
|
|
220
|
+
alembic upgrade head
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
**Ruby (Rails)**:
|
|
224
|
+
```bash
|
|
225
|
+
rails db:migrate
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### 6. サンプルデータの投入(オプション)
|
|
229
|
+
|
|
230
|
+
**質問8: サンプルデータの投入**
|
|
231
|
+
- 「開発用のサンプルデータを投入しますか?」
|
|
232
|
+
|
|
233
|
+
**Node.js (Prisma)**:
|
|
234
|
+
```bash
|
|
235
|
+
npx prisma db seed
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
**Python (Django)**:
|
|
239
|
+
```bash
|
|
240
|
+
python manage.py loaddata fixtures/sample_data.json
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
**Ruby (Rails)**:
|
|
244
|
+
```bash
|
|
245
|
+
rails db:seed
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
**カスタムスクリプト**:
|
|
249
|
+
```bash
|
|
250
|
+
npm run seed
|
|
251
|
+
# または
|
|
252
|
+
node scripts/seed.js
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
### 7. ビルド・コンパイル(必要に応じて)
|
|
256
|
+
|
|
257
|
+
**質問9: ビルドが必要**
|
|
258
|
+
- 「初回ビルドが必要ですか?」
|
|
259
|
+
|
|
260
|
+
**TypeScript プロジェクト**:
|
|
261
|
+
```bash
|
|
262
|
+
npm run build
|
|
263
|
+
# または
|
|
264
|
+
tsc
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
**Webpack/Vite プロジェクト**:
|
|
268
|
+
```bash
|
|
269
|
+
npm run build
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
### 8. 開発サーバーの起動
|
|
273
|
+
|
|
274
|
+
**開発サーバーを起動してテスト**:
|
|
275
|
+
```bash
|
|
276
|
+
# Node.js
|
|
277
|
+
npm run dev
|
|
278
|
+
# または
|
|
279
|
+
yarn dev
|
|
280
|
+
|
|
281
|
+
# Python (Django)
|
|
282
|
+
python manage.py runserver
|
|
283
|
+
|
|
284
|
+
# Python (Flask)
|
|
285
|
+
flask run
|
|
286
|
+
|
|
287
|
+
# Ruby (Rails)
|
|
288
|
+
rails server
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
**質問10: サーバー起動確認**
|
|
292
|
+
- 「開発サーバーが正常に起動しましたか?」
|
|
293
|
+
- ブラウザで `http://localhost:<port>` にアクセスして確認
|
|
294
|
+
|
|
295
|
+
### 9. テストの実行
|
|
296
|
+
|
|
297
|
+
**すべてのテストを実行して環境が正しくセットアップされたことを確認**:
|
|
298
|
+
```bash
|
|
299
|
+
npm test
|
|
300
|
+
# または
|
|
301
|
+
pytest
|
|
302
|
+
# または
|
|
303
|
+
rails test
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
**質問11: テスト結果**
|
|
307
|
+
- 「すべてのテストが通りましたか?」
|
|
308
|
+
- 失敗した場合、環境設定を見直す
|
|
309
|
+
|
|
310
|
+
### 10. 開発ツールのセットアップ(オプション)
|
|
311
|
+
|
|
312
|
+
#### 10.1. エディタ設定
|
|
313
|
+
|
|
314
|
+
**VS Code 拡張機能**:
|
|
315
|
+
- `.vscode/extensions.json` が存在する場合、推奨拡張機能をインストール
|
|
316
|
+
|
|
317
|
+
**EditorConfig**:
|
|
318
|
+
- `.editorconfig` が存在する場合、エディタで読み込まれることを確認
|
|
319
|
+
|
|
320
|
+
#### 10.2. Git Hooks
|
|
321
|
+
|
|
322
|
+
**Husky のセットアップ**:
|
|
323
|
+
```bash
|
|
324
|
+
npm run prepare
|
|
325
|
+
# または
|
|
326
|
+
npx husky install
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
**pre-commit フックの有効化**:
|
|
330
|
+
```bash
|
|
331
|
+
pre-commit install
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
### 11. ドキュメントの確認
|
|
335
|
+
|
|
336
|
+
**質問12: ドキュメントの確認**
|
|
337
|
+
- 「README.md に追加のセットアップ手順が記載されていますか?」
|
|
338
|
+
- 追加手順がある場合、それに従う
|
|
339
|
+
|
|
340
|
+
### 12. セットアップ完了の確認
|
|
341
|
+
|
|
342
|
+
**チェックリスト**:
|
|
343
|
+
- [ ] 依存関係がすべてインストールされた
|
|
344
|
+
- [ ] 環境変数が正しく設定された
|
|
345
|
+
- [ ] データベースが作成され、マイグレーションが実行された
|
|
346
|
+
- [ ] サンプルデータが投入された(オプション)
|
|
347
|
+
- [ ] 開発サーバーが起動した
|
|
348
|
+
- [ ] テストが通った
|
|
349
|
+
- [ ] ブラウザでアプリケーションが表示された
|
|
350
|
+
|
|
351
|
+
## 完了条件
|
|
352
|
+
|
|
353
|
+
- すべての依存関係がインストールされている
|
|
354
|
+
- 環境変数が適切に設定されている
|
|
355
|
+
- データベースがセットアップされ、マイグレーションが完了している
|
|
356
|
+
- 開発サーバーが正常に起動する
|
|
357
|
+
- テストが全て通る
|
|
358
|
+
- ブラウザでアプリケーションが正しく表示される
|
|
359
|
+
- README.md の手順がすべて完了している
|
|
360
|
+
|
|
361
|
+
## エスカレーション
|
|
362
|
+
|
|
363
|
+
- **依存関係のインストールが失敗する場合**:
|
|
364
|
+
- 「依存関係のインストールに失敗しました。以下を確認してください:」
|
|
365
|
+
- インターネット接続
|
|
366
|
+
- npm/yarn/pnpm のバージョン
|
|
367
|
+
- ネットワークプロキシ設定
|
|
368
|
+
- `npm cache clean --force` でキャッシュをクリア
|
|
369
|
+
|
|
370
|
+
- **データベース接続エラー**:
|
|
371
|
+
- 「データベースに接続できません。以下を確認してください:」
|
|
372
|
+
- データベースサーバーが起動しているか
|
|
373
|
+
- `DATABASE_URL` が正しいか
|
|
374
|
+
- データベースユーザーの権限
|
|
375
|
+
- ファイアウォール設定
|
|
376
|
+
|
|
377
|
+
- **ポート競合エラー**:
|
|
378
|
+
- 「ポートが既に使用されています。以下を確認してください:」
|
|
379
|
+
- `lsof -i :<port>` で使用中のプロセスを確認
|
|
380
|
+
- 別のポートを使用するか、プロセスを停止
|
|
381
|
+
|
|
382
|
+
- **環境変数が不足している場合**:
|
|
383
|
+
- 「必要な環境変数が設定されていません。`.env.example` を参照して、`.env` に必要な変数を設定してください。」
|
|
384
|
+
|
|
385
|
+
- **マイグレーションが失敗する場合**:
|
|
386
|
+
- 「マイグレーションに失敗しました。以下を確認してください:」
|
|
387
|
+
- データベースが作成されているか
|
|
388
|
+
- マイグレーションファイルが存在するか
|
|
389
|
+
- データベーススキーマの競合がないか
|
|
390
|
+
|
|
391
|
+
## トラブルシューティング
|
|
392
|
+
|
|
393
|
+
### Node.js バージョンの不一致
|
|
394
|
+
```bash
|
|
395
|
+
nvm install <version>
|
|
396
|
+
nvm use <version>
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
### Python 仮想環境の問題
|
|
400
|
+
```bash
|
|
401
|
+
# 仮想環境を削除して再作成
|
|
402
|
+
rm -rf .venv
|
|
403
|
+
python -m venv .venv
|
|
404
|
+
source .venv/bin/activate
|
|
405
|
+
pip install -r requirements.txt
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
### データベースリセット
|
|
409
|
+
```bash
|
|
410
|
+
# PostgreSQL
|
|
411
|
+
dropdb <database_name>
|
|
412
|
+
createdb <database_name>
|
|
413
|
+
npm run migration:run
|
|
414
|
+
|
|
415
|
+
# Rails
|
|
416
|
+
rails db:drop db:create db:migrate db:seed
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
### キャッシュのクリア
|
|
420
|
+
```bash
|
|
421
|
+
# npm
|
|
422
|
+
npm cache clean --force
|
|
423
|
+
rm -rf node_modules package-lock.json
|
|
424
|
+
npm install
|
|
425
|
+
|
|
426
|
+
# pip
|
|
427
|
+
pip cache purge
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
## ベストプラクティス
|
|
431
|
+
|
|
432
|
+
- **ドキュメント化**: README.md にセットアップ手順を明確に記載
|
|
433
|
+
- **自動化スクリプト**: `npm run setup` のようなスクリプトで一括セットアップ
|
|
434
|
+
- **Docker 活用**: Docker Compose でデータベースなどの依存サービスを管理
|
|
435
|
+
- **環境変数テンプレート**: `.env.example` を最新の状態に保つ
|
|
436
|
+
- **CI/CD でテスト**: セットアップ手順が正しいことを CI で定期的に検証
|
|
437
|
+
- **Makefile**: 複雑なセットアップ手順を `Makefile` にまとめる
|