backend-developer について
API、データモデル、認証、サーバー基盤を構築する開発者向けのバックエンド開発スキルです。複数の言語とフレームワークを扱い、選定の指針、実装パターン、品質チェック項目を提供します。
主な機能
- 01REST・GraphQL API開発の指針
- 02データベーススキーマとORM設計
- 03認証・認可の実装ガイダンス
- 04言語とフレームワークの選定
- 05テスト・デプロイ・性能改善の助言
- 06セキュリティと品質のチェック項目
活用シーン
- 01バックエンド言語とフレームワークを選定
- 02スキーマとORM連携を設計
- 03APIの認証・認可を実装
- 04バックエンドのテストとデプロイを確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ 404kidwiz/ claude-supercode-skills --skill backend-developerインストール後、Claude Code で/backend-developerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
EXAMPLES.mdREFERENCE.mdreferences/api_patterns.mdbackend_frameworks.mdbest_practices.mddeployment_guide.mdtesting_strategies.mdtroubleshooting.mdscripts/create_middleware.pycreate_tests.pydeploy.sherror_handler.pygenerate_docs.pygenerate_model.pyscaffold_api.pysetup_auth.pysetup_logging.py詳細
バックエンド開発スキル
目的
複数のフレームワーク、言語、デプロイ戦略にわたるサーバーサイドアプリケーション開発の包括的な専門知識を提供します。スケーラブルな API、データベース設計、認証システム、本番環境に対応したバックエンドインフラストラクチャの構築を専門とします。
使用する場面
- REST または GraphQL API を構築する
- データベースのスキーマとモデルを設計する
- 認証と認可を実装する
- サーバーインフラストラクチャをセットアップする
- マイクロサービスまたはモノリシックなバックエンドを作成する
- バックエンドのパフォーマンスを最適化する
- サーバーアプリケーションを本番環境にデプロイする
- 複数のフレームワーク(Express、FastAPI、Django、Spring)に関するバックエンドのガイダンスが必要な場合
クイックスタート
このスキルを呼び出す場合:
- Node.js、Python、Java、Go でサーバーサイド API(REST、GraphQL)を構築する
- 認証/認可(JWT、OAuth2、セッションベース)を実装する
- データベーススキーマと ORM の統合を設計する
- バックエンドのテスト(ユニット、統合、E2E)をセットアップする
- ミドルウェア(ロギング、バリデーション、エラー処理)を実装する
- バックエンドサービスを Kubernetes、AWS、GCP、Azure にデプロイする
- バックエンドのパフォーマンス(キャッシュ、クエリ最適化、レート制限)を最適化する
呼び出さない場合:
- フロントエンド開発のみが必要 → frontend-developer または nextjs-developer を使用してください
- データベース固有の最適化が必要 → database-optimizer または postgres-pro を使用してください
- 実装を伴わない API 設計 → api-designer を使用してください
- GraphQL 固有のアーキテクチャ → graphql-architect を使用してください
- DevOps/インフラストラクチャのみ → devops-engineer または cloud-architect を使用してください
フレームワークのサポート
Node.js/TypeScript
- Express.js、NestJS、Koa.js、Fastify
Python
- FastAPI、Django、Flask、Tornado
Java
- Spring Boot、Quarkus、Micronaut
Go
- Gin、Echo、Fiber
選定フレームワーク
バックエンドフレームワークの選定
Backend Framework Selection
├─ JavaScript/TypeScript
│ ├─ Need rapid development + type safety → NestJS
│ ├─ Need lightweight/fast performance → Fastify
│ └─ Need simplicity + ecosystem → Express.js
│
├─ Python
│ ├─ Need async + high performance → FastAPI
│ └─ Need batteries-included → Django (+ DRF)
│
├─ Java
│ └─ Enterprise-ready → Spring Boot
│
└─ Go
└─ High-performance services → Gin or Fiber
認証戦略マトリックス
| シナリオ | 戦略 | 複雑さ | セキュリティ |
|---|---|---|---|
| ステートレス API(モバイル、SPA) | JWT | 低 | 中 |
| サードパーティーログイン | OAuth 2.0 | 中 | 高 |
| 従来型の Web アプリ | セッションベース | 低 | 高 |
| マイクロサービス | JWT + API Gateway | 高 | 高 |
| エンタープライズ SSO | SAML 2.0 | 高 | 非常に高 |
データベースと ORM の選定
Database & ORM Decision
├─ Relational (SQL)
│ ├─ Node.js/TypeScript
│ │ ├─ Need type safety + migrations → Prisma
│ │ └─ Need flexibility → TypeORM or Sequelize
│ ├─ Python
│ │ ├─ Async required → Tortoise ORM or SQLModel
│ │ └─ Sync / Django → Django ORM or SQLAlchemy
│ └─ Java
│ └─ JPA (Hibernate) or jOOQ
│
└─ NoSQL
├─ Document store → MongoDB (Mongoose for Node.js)
└─ Key-value → Redis (caching, sessions)
ベストプラクティス
- 必ず入力を検証する - 提供されているバリデーションミドルウェアを使用します
- エラーを適切に処理する - 生成されたエラーハンドラーを使用します
- テストを作成する - 一貫性を保つためにテストテンプレートを使用します
- 環境変数を使用する - シークレットをハードコードしないでください
- ロギングを実装する - 提供されているロギング設定を使用します
- パフォーマンスを監視する - メトリクスとアラートを設定します
- セキュリティを最優先する - 提供されている認証設定を使用します
- API をバージョン管理する - バージョン管理のパターンに従います
- コードをドキュメント化する - API ドキュメントを自動生成します
- 安全にデプロイする - 提供されているデプロイスクリプトを使用します
よく使われるパターン
リポジトリパターン
- 関心事の分離
- テストが容易
- 実装の差し替えが可能
サービスレイヤー
- ビジネスルールの一元管理
- トランザクション管理
- エラー処理
ミドルウェアスタック
- 認証
- 認可
- バリデーション
- ロギング
- エラー処理
トラブルシューティング
よくある問題
データベース接続エラー
- 接続文字列を確認する
- データベースが稼働していることを確認する
- ネットワーク接続を確認する
- コネクションプールの設定を確認する
認証の失敗
- JWT シークレットを確認する
- トークンの有効期限を確認する
- トークンの形式を検証する
- ミドルウェアの順序を確認する
ビルドの失敗
- TypeScript の設定を確認する
- 依存関係がインストールされていることを確認する
- エラーメッセージを確認する
- 構文エラーがないか確認する
デプロイの問題
- Docker イメージがビルドできることを確認する
- Kubernetes ポッドを確認する
- ログを確認する
- 環境変数を確認する
品質チェックリスト
セキュリティ
- すべてのエンドポイントで入力を検証する(Zod/Joi)
- パスワードをハッシュ化する(bcrypt のコストは 10 以上、または Argon2)
- SQL インジェクションを防止する(パラメーター化クエリ)
- 認証エンドポイントにレート制限を設ける
- セキュリティヘッダーを設定する(Helmet.js)
- シークレットには環境変数を使用する
認証と認可
- 強力な JWT シークレットを使用する(256 ビット)
- 有効期間の短いアクセストークンを使用する(15min)
- リフレッシュトークンをローテーションする
- 保護されたルートで認可チェックを行う
エラー処理
- グローバルエラーハンドラーを設定する
- 非同期エラー処理を行う(express-async-errors)
- わかりやすい入力検証エラーメッセージを表示する
- 存在しないエンドポイントに対して 404 を返す
パフォーマンス
- データベース接続プーリングを設定する
- クエリを最適化する(N+1 を発生させない)
- キャッシュを使用する(セッションとレート制限には Redis)
- レスポンスを圧縮する(gzip/brotli)
テスト
- サービス/リポジトリの単体テスト
- API エンドポイントの統合テスト
- 重要なパスのカバレッジを 80% 超にする
- テスト専用のデータベースを用意する
その他のリソース
- 詳細な技術リファレンス:REFERENCE.mdを参照してください
- コード例とパターン:EXAMPLES.mdを参照してください
コメント
Markdown 対応