Agent Skills by ALSEL
Anthropic Claudeソフトウェア開発⭐ リポ 0品質スコア 50/100

backend-dev-guidelines

Node.js / Express / TypeScript によるマイクロサービス開発のための包括的なバックエンド開発ガイドです。ルート・コントローラー・サービス・リポジトリ・ミドルウェアの作成、またはExpress API・Prisma・Sentryエラートラッキング・Zodバリデーション・unifiedConfig・依存性注入・非同期パターンを扱う際に使用します。レイヤードアーキテクチャ(routes → controllers → services → repositories)、BaseControllerパターン、エラーハンドリング、パフォーマンス監視、テスト戦略、レガシーパターンからの移行までを網羅します。

description の原文を見る

Comprehensive backend development guide for Node.js/Express/TypeScript microservices. Use when creating routes, controllers, services, repositories, middleware, or working with Express APIs, Prisma database access, Sentry error tracking, Zod validation, unifiedConfig, dependency injection, or async patterns. Covers layered architecture (routes → controllers → services → repositories), BaseController pattern, error handling, performance monitoring, testing strategies, and migration from legacy patterns.

SKILL.md 本文

バックエンド開発ガイドライン

目的

モダン Node.js/Express/TypeScript パターンを使用して、バックエンドマイクロサービス (blog-api, auth-service, notifications-service) 全体の一貫性とベストプラクティスを確立します。

このスキルを使う場合

以下の作業時に自動的に起動します:

  • ルート、エンドポイント、API の作成または変更
  • コントローラー、サービス、リポジトリの構築
  • ミドルウェアの実装 (認証、検証、エラーハンドリング)
  • Prisma を使用したデータベース操作
  • Sentry によるエラートラッキング
  • Zod を使用した入力検証
  • 設定管理
  • バックエンドテストとリファクタリング

クイックスタート

新規バックエンド機能チェックリスト

  • ルート: クリーンな定義、コントローラーへの委譲
  • コントローラー: BaseController を継承
  • サービス: DI を伴うビジネスロジック
  • リポジトリ: データベースアクセス (複雑な場合)
  • 検証: Zod スキーマ
  • Sentry: エラートラッキング
  • テスト: ユニット + 統合テスト
  • 設定: unifiedConfig を使用

新規マイクロサービスチェックリスト

  • ディレクトリ構造 (architecture-overview.md を参照)
  • Sentry 用の instrument.ts
  • unifiedConfig セットアップ
  • BaseController クラス
  • ミドルウェアスタック
  • エラーバウンダリー
  • テストフレームワーク

アーキテクチャ概要

レイヤー型アーキテクチャ

HTTP リクエスト
    ↓
ルート (ルーティングのみ)
    ↓
コントローラー (リクエスト処理)
    ↓
サービス (ビジネスロジック)
    ↓
リポジトリ (データアクセス)
    ↓
データベース (Prisma)

重要原則: 各レイヤーは 1 つの責務を持ちます。

完全な詳細については architecture-overview.md を参照してください。


ディレクトリ構造

service/src/
├── config/              # UnifiedConfig
├── controllers/         # リクエストハンドラー
├── services/            # ビジネスロジック
├── repositories/        # データアクセス
├── routes/              # ルート定義
├── middleware/          # Express ミドルウェア
├── types/               # TypeScript 型
├── validators/          # Zod スキーマ
├── utils/               # ユーティリティ
├── tests/               # テスト
├── instrument.ts        # Sentry (最初のインポート)
├── app.ts               # Express セットアップ
└── server.ts            # HTTP サーバー

命名規則:

  • コントローラー: PascalCase - UserController.ts
  • サービス: camelCase - userService.ts
  • ルート: camelCase + Routes - userRoutes.ts
  • リポジトリ: PascalCase + Repository - UserRepository.ts

コア原則 (7 つの重要ルール)

1. ルートはルーティングのみ、コントローラーが制御

// ❌ 禁止: ルートにビジネスロジック
router.post('/submit', async (req, res) => {
    // 200 行のロジック
});

// ✅ 必須: コントローラーへ委譲
router.post('/submit', (req, res) => controller.submit(req, res));

2. すべてのコントローラーが BaseController を継承

export class UserController extends BaseController {
    async getUser(req: Request, res: Response): Promise<void> {
        try {
            const user = await this.userService.findById(req.params.id);
            this.handleSuccess(res, user);
        } catch (error) {
            this.handleError(error, res, 'getUser');
        }
    }
}

3. すべてのエラーを Sentry に送信

try {
    await operation();
} catch (error) {
    Sentry.captureException(error);
    throw error;
}

4. unifiedConfig を使用、決して process.env を直接使用しない

// ❌ 禁止
const timeout = process.env.TIMEOUT_MS;

// ✅ 必須
import { config } from './config/unifiedConfig';
const timeout = config.timeouts.default;

5. Zod で入力をすべて検証

const schema = z.object({ email: z.string().email() });
const validated = schema.parse(req.body);

6. データアクセスにはリポジトリパターンを使用

// サービス → リポジトリ → データベース
const users = await userRepository.findActive();

7. 包括的なテストが必須

describe('UserService', () => {
    it('should create user', async () => {
        expect(user).toBeDefined();
    });
});

一般的なインポート

// Express
import express, { Request, Response, NextFunction, Router } from 'express';

// 検証
import { z } from 'zod';

// データベース
import { PrismaClient } from '@prisma/client';
import type { Prisma } from '@prisma/client';

// Sentry
import * as Sentry from '@sentry/node';

// 設定
import { config } from './config/unifiedConfig';

// ミドルウェア
import { SSOMiddlewareClient } from './middleware/SSOMiddleware';
import { asyncErrorWrapper } from './middleware/errorBoundary';

クイックリファレンス

HTTP ステータスコード

コード用途
200成功
201作成
400不正なリクエスト
401認証エラー
403禁止
404見つかりません
500サーバーエラー

サービステンプレート

Blog API (✅ 成熟) - REST API のテンプレートとして使用 Auth Service (✅ 成熟) - 認証パターンのテンプレートとして使用


避けるべきアンチパターン

❌ ルートのビジネスロジック ❌ 直接的な process.env 使用 ❌ エラーハンドリング欠落 ❌ 入力検証なし ❌ あちこちで直接 Prisma を使用 ❌ Sentry の代わりに console.log


ナビゲーションガイド

必要な場合このドキュメントを読む
アーキテクチャを理解したいarchitecture-overview.md
ルート/コントローラーを作成したいrouting-and-controllers.md
ビジネスロジックを整理したいservices-and-repositories.md
入力を検証したいvalidation-patterns.md
エラートラッキングを追加したいsentry-and-monitoring.md
ミドルウェアを作成したいmiddleware-guide.md
データベースアクセスdatabase-patterns.md
設定を管理したいconfiguration.md
非同期/エラーを処理したいasync-and-errors.md
テストを書きたいtesting-guide.md
例を見たいcomplete-examples.md

リソースファイル

architecture-overview.md

レイヤー型アーキテクチャ、リクエストライフサイクル、関心の分離

routing-and-controllers.md

ルート定義、BaseController、エラーハンドリング、例

services-and-repositories.md

サービスパターン、DI、リポジトリパターン、キャッシング

validation-patterns.md

Zod スキーマ、検証、DTO パターン

sentry-and-monitoring.md

Sentry 初期化、エラーキャプチャ、パフォーマンスモニタリング

middleware-guide.md

認証、監査、エラーバウンダリー、AsyncLocalStorage

database-patterns.md

PrismaService、リポジトリ、トランザクション、最適化

configuration.md

UnifiedConfig、環境設定、シークレット

async-and-errors.md

非同期パターン、カスタムエラー、asyncErrorWrapper

testing-guide.md

ユニット/統合テスト、モッキング、カバレッジ

complete-examples.md

完全な例、リファクタリングガイド


関連スキル

  • database-verification - カラム名とスキーマ一貫性の検証
  • error-tracking - Sentry 統合パターン
  • skill-developer - スキル作成と管理のためのメタスキル

スキルステータス: 完了 ✅ 行数: < 500 ✅ 段階的情報開示: 11 リソースファイル ✅

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
davila7
リポジトリ
davila7/claude-code-templates
ライセンス
MIT
最終更新
不明

Source: https://github.com/davila7/claude-code-templates / ライセンス: MIT

関連スキル

汎用ソフトウェア開発⭐ リポ 39,967

doubt-driven-development

重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 1,175

apprun-skills

TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。

by yysun
OpenAIソフトウェア開発⭐ リポ 797

desloppify

コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。

by Git-on-my-level
汎用ソフトウェア開発⭐ リポ 39,967

debugging-and-error-recovery

テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

test-driven-development

テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

incremental-implementation

変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。

by addyosmani
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: davila7 · davila7/claude-code-templates · ライセンス: MIT