Handover
明日引き継いでも動く。属人化ゼロ設計。
リポジトリ構成
Turborepo Monorepo
upload2door/ ├── apps/ │ ├── web/ # 顧客向けNext.js (Pages Router) │ ├── studio/ # 事務所向けNext.js (App Router) │ ├── factory/ # 工場向けNext.js (App Router) │ └── api/ # Cloudflare Workers (Hono) ├── packages/ │ ├── ui/ # 共通UIコンポーネント (shadcn/ui) │ ├── db/ # D1スキーマ + Drizzle ORM │ ├── validators/ # Zodバリデーション │ ├── types/ # 共通TypeScript型定義 │ └── config/ # 共通設定 (ESLint, TSConfig) ├── docs/ │ ├── SSOT/ # 仕様書 (Single Source of Truth) │ ├── ADR/ # アーキテクチャ決定記録 │ └── API/ # OpenAPI仕様書 ├── .github/ │ └── workflows/ # CI/CD設定 ├── turbo.json └── package.json
SSOT(Single Source of Truth)
5ファイルで仕様を完全定義
00_project_overview.md
プロジェクト概要、スコープ、制約
01_system_architecture.md
技術選定、構成図、インフラ
02_user_flows.md
画面遷移、ユーザーストーリー
03_data_contracts.md
APIスキーマ、DBテーブル定義
04_implementation_notes.md
実装詳細、トラブルシュート
コードよりドキュメントを先に読む
新しいメンバーは5ファイル読むだけでシステム全体を理解可能
ADR(Architecture Decision Records)
なぜそう決めたかを記録
| ADR# | タイトル | 決定 |
|---|---|---|
| 001 | コンピューティング選定 | Cloudflare Workers(Cold Start 0ms) |
| 002 | ストレージ分離戦略 | PII→Firestore、画像→R2、業務→D1 |
| 003 | 認証方式 | Firebase Auth(パスワードレス) |
| 004 | 決済プロバイダ | Stripe + Paidy(掛け売り対応) |
| 005 | モノレポ構成 | Turborepo(Vercel製) |
| 006 | ORMの選択 | Drizzle ORM(軽量 + Edge対応) |
開発環境セットアップ
5分で開発開始
# 1. リポジトリクローン git clone https://github.com/your-org/upload2door.git cd upload2door # 2. 依存関係インストール pnpm install # 3. 環境変数設定 cp .env.example .env.local # → 最小限の設定のみ(本番シークレットは不要) # 4. 開発サーバー起動 pnpm dev # → http://localhost:3000 で動作確認
Wrangler
Workers/R2/D1ローカルエミュレート
Firebase Emulator
Auth/Firestoreローカル実行
Stripe CLI
Webhook開発・テスト
コーディング規約
自動化されたルール
ESLint- コード品質チェック
Prettier- フォーマット統一
TypeScript- strict mode必須
Husky- コミット前自動チェック
lint-staged- 変更ファイルのみ検証
命名規則
ファイル名kebab-case.ts
コンポーネントPascalCase.tsx
関数camelCase()
定数UPPER_SNAKE_CASE
型PascalCase
Git運用
ブランチ戦略
main → 本番環境
develop → 開発環境
feature/* → 機能開発
hotfix/* → 緊急修正
コミットメッセージ
feat: 新機能
fix: バグ修正
refactor: リファクタリング
docs: ドキュメント
chore: 雑務
属人化ゼロの実現
ドキュメント先行
- SSOT形式で仕様を一元管理
- ADRで決定理由を記録
- OpenAPIで契約を明文化
自動化徹底
- CI/CDで手動作業を排除
- IaCでインフラをコード化
- テストで動作を保証
知識共有
- PRレビュー必須
- 週次技術共有会
- 障害時ポストモーテム
サポート体制
| フェーズ | 対応内容 | 連絡手段 |
|---|---|---|
| 開発中 | 技術相談、設計レビュー、ペアプロ | Slack / 週次MTG |
| リリース後3ヶ月 | バグ修正、機能追加サポート | Slack / GitHub Issues |
| 保守フェーズ | 緊急対応、定期アップデート相談 | メール / 月次MTG |