Claude-skill-registry developing-backend

バックエンド API 実装、認証・認可、キャッシング戦略を支援します。セキュアな実装、パフォーマンス最適化、テスト戦略を提供します。API実装、バックエンドサービスの開発が必要な場合に使用してください。

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/developing-backend" ~/.claude/skills/majiayu000-claude-skill-registry-developing-backend && rm -rf "$T"
manifest: skills/data/developing-backend/SKILL.md
source content

バックエンド開発と信頼性エンジニアリング

概要

バックエンド開発、API設計、データベース設計、セキュリティ実装、信頼性構築を包括的に支援するスキルです。

実行フロー

Step 1: システム設計の基礎

アーキテクチャ判断

モノリスを選ぶ場合:
- チームが小規模(<10人)
- ドメインが明確に分離されていない
- 初期MVP段階

マイクロサービスを選ぶ場合:
- 独立したスケーリングが必要
- チームが大規模で分散している
- ドメイン境界が明確

Step 2: API設計

RESTful API設計原則

GET    /api/v1/users          # 一覧
POST   /api/v1/users          # 作成
GET    /api/v1/users/:id      # 取得
PUT    /api/v1/users/:id      # 更新
DELETE /api/v1/users/:id      # 削除

HTTPステータスコード:

コード用途
200成功
201リソース作成成功
400クライアントエラー
401認証エラー
403認可エラー
404リソース不存在
500サーバーエラー

エラーレスポンス標準化:

{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Invalid input parameters",
    "details": [...],
    "request_id": "req_abc123"
  }
}

Step 3: データベース設計

インデックス戦略

-- 頻繁に検索されるカラム
CREATE INDEX idx_users_email ON users(email);

-- 複合インデックス
CREATE INDEX idx_posts_user_created ON posts(user_id, created_at DESC);

Step 4: 認証・認可

JWT認証の実装

function generateToken(userId) {
  return jwt.sign({ userId }, process.env.JWT_SECRET, { expiresIn: '24h' });
}

RBAC(Role-Based Access Control)

function authorize(...allowedRoles) {
  return (req, res, next) => {
    if (!allowedRoles.includes(req.user.role)) {
      return res.status(403).json({ error: 'Insufficient permissions' });
    }
    next();
  };
}

Step 5: パフォーマンス最適化

キャッシング戦略

async function getCachedUser(userId) {
  const cached = await redis.get(`user:${userId}`);
  if (cached) return JSON.parse(cached);

  const user = await db.users.findById(userId);
  await redis.setex(`user:${userId}`, 3600, JSON.stringify(user));
  return user;
}

接続プーリング

const pool = new Pool({
  max: 20,
  idleTimeoutMillis: 30000,
  connectionTimeoutMillis: 2000,
});

Step 6: セキュリティ実装

入力バリデーション(Zod)

const userSchema = z.object({
  email: z.string().email(),
  password: z.string().min(8).max(100),
});

SQLインジェクション防止

// パラメータ化クエリ
const result = await db.query('SELECT * FROM users WHERE email = $1', [email]);

Step 7: 監視とロギング

Four Golden Signals

シグナル説明目標
Latencyレスポンスタイムp95 < 200ms
Trafficリクエスト数監視
Errorsエラー率< 0.1%
Saturationリソース使用率CPU < 70%

出力成果物

  1. API設計書: OpenAPI/Swagger仕様書
  2. データベーススキーマ: ER図、マイグレーションスクリプト
  3. 実装コード: API実装、ビジネスロジック
  4. テストコード: ユニットテスト、統合テスト
  5. ドキュメント: セットアップガイド、API使用例
  6. 監視設定: ログ、メトリクス、アラート設定

ベストプラクティス

  1. 信頼性優先: データ整合性を何よりも重視
  2. セキュリティファースト: すべての入力を検証・サニタイズ
  3. スケーラビリティ: 水平スケーリングを念頭に設計
  4. 観測可能性: 構造化ロギング、メトリクス収集
  5. テスト駆動: ユニット・統合・パフォーマンステスト

関連ファイル