mcpField
D
django-expert

django-expert

github.com/vintasoftware開発1665.8k 回インストール14 週間前に更新
リポジトリ

django-expert について

Django バックエンド開発者向けのスキルで、モデル、API、セキュリティ、テスト、パフォーマンス、 本番デプロイを案内します。タスク別の資料と実装チェックも含みます。

主な機能

  1. 01モデルと ORM の設計ガイダンス
  2. 02ビューと DRF API のパターン
  3. 03認証とセキュリティの実践
  4. 04テストと品質の戦略
  5. 05クエリ性能の最適化
  6. 06本番デプロイのガイダンス

活用シーン

  1. 01モデルとマイグレーションの設計
  2. 02権限付き DRF エンドポイントの構築
  3. 03低速クエリと N+1 問題の診断
  4. 04セキュリティと本番設定のレビュー

MCP 対応

`django-ai-boost` MCP サーバーを利用できる場合、プロジェクト構成と既存のパターンの把握に使うよう提案しています。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/vintasoftware/django-ai-plugins --skill django-expert

インストール後、Claude Code で/django-expertを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
drf-guidelines.md
examples.md
models-and-orm.md
performance-optimization.md
production-deployment.md
README.md
security-checklist.md
testing-strategies.md
views-and-urls.md

詳細

Django エキスパート

概要

このスキルでは、モデル、ビュー、Django REST Framework、フォーム、認証、テスト、パフォーマンス最適化を幅広く網羅し、Django バックエンド開発に関する専門的なガイダンスを提供します。Django の公式ベストプラクティスと最新の Python 規約に従って、堅牢で保守しやすいアプリケーションの構築を支援します。

主な機能:

  • 最適な ORM パターンを用いたモデル設計
  • ビューの実装(FBV、CBV、DRF ビューセット)
  • Django REST Framework を使った API 開発
  • クエリの最適化とパフォーマンス調整
  • 認証と権限
  • テスト戦略とパターン
  • セキュリティのベストプラクティス

使用するタイミング

次のような要望があった場合に、このスキルを呼び出してください。

モデルとデータベースの作業:

  • 「次のような Django モデルを作成して……」
  • 「このクエリセット/データベースクエリを最適化して」
  • 「マイグレーションを生成して……」
  • 「次のデータベーススキーマを設計して……」
  • 「N+1 クエリの問題を修正して」

ビューと API の開発:

  • 「次の API エンドポイントを作成して……」
  • 「次のような Django ビューを構築して……」
  • 「DRF シリアライザー/ビューセットを実装して」
  • 「API にフィルタリング/ページネーションを追加して」

認証とセキュリティ:

  • 「認証/権限を実装して」
  • 「カスタムユーザーモデルを作成して」
  • 「このエンドポイント/ビューを保護して」

テストと品質:

  • 「この Django アプリのテストを書いて」
  • 「この Django のエラー/問題をデバッグして」
  • 「問題がないか Django のコードをレビューして」

パフォーマンスと最適化:

  • 「この Django ビューの動作が遅い」
  • 「データベースクエリを最適化して」
  • 「次の処理にキャッシュを追加して……」

本番環境へのデプロイ:

  • 「Django を本番環境にデプロイして」
  • 「Django を本番環境向けに設定して」
  • 「Django に HTTPS/SSL を設定して」
  • 「本番環境向け設定のチェックリスト」
  • 「本番環境のデータベース/キャッシュを設定して」

手順

Django 開発の依頼に対応する際は、次のワークフローに従ってください。

1. 依頼を分析し、コンテキストを収集する

タスクの種類を特定します:

  • モデル設計(データベーススキーマ、リレーションシップ、マイグレーション)
  • ビュー/API の開発(FBV、CBV、DRF ビューセット、シリアライザー)
  • クエリの最適化(N+1 問題、データベースのパフォーマンス)
  • 認証/権限(ユーザーモデル、アクセス制御)
  • テスト(単体テスト、統合テスト、フィクスチャ)
  • セキュリティレビュー(CSRF、XSS、SQL インジェクション、権限)
  • 本番環境へのデプロイ(設定、HTTPS、データベース、キャッシュ、監視)
  • テンプレートのレンダリング(Django テンプレート、コンテキストプロセッサー)

利用可能なコンテキストを活用します:

  • django-ai-boost MCP サーバーを利用できる場合は、プロジェクトの構造と既存のパターンを把握するために使用します
  • 規約を把握するため、関連する既存のコードを読みます
  • 互換性を考慮して Django のバージョンを確認します
2. 関連するリファレンスドキュメントを読み込む

タスクの種類に応じて、適切な同梱ドキュメントを参照してください。

  • モデル/ORM 関連の作業 -> references/models-and-orm.md

    • モデル設計パターンとフィールドの選択
    • リレーションの設定(ForeignKey、ManyToMany)
    • カスタムマネージャーと QuerySet メソッド
    • マイグレーション戦略
  • ビュー/API の開発 -> references/views-and-urls.md + references/drf-guidelines.md

    • FBV と CBV の判断基準
    • DRF のシリアライザー、ビューファイルセット、ルーター
    • URL 設定のパターン
    • ミドルウェアとリクエスト/レスポンスの処理
  • パフォーマンスの問題 -> references/performance-optimization.md

    • クエリの最適化手法(select_related、prefetch_related)
    • キャッシュ戦略(Redis、Memcached、データベースキャッシュ)
    • データベースのインデックスとクエリのプロファイリング
    • コネクションプーリングと非同期パターン
  • 本番環境へのデプロイ -> references/production-deployment.md

    • 重要な設定(DEBUG、SECRET_KEY、ALLOWED_HOSTS)
    • HTTPS と SSL/TLS の設定
    • データベースとキャッシュの設定
    • 静的ファイル/メディアファイルの配信
    • エラー監視とログ記録
    • デプロイプロセスとヘルスチェック
  • セキュリティ上の懸念 -> references/security-checklist.md

    • CSRF/XSS/SQL インジェクションの防止
    • 認証と認可のパターン
    • 安全な設定方法
    • 入力の検証とサニタイズ
  • テスト関連のタスク -> references/testing-strategies.md

    • テストの構造と整理
    • フィクスチャとファクトリー
    • 外部依存関係のモック
    • カバレッジと CI/CD の統合
3. Django のベストプラクティスに従って実装する

コード品質の基準:

  • PEP 8 と Django のコーディングスタイルに従います
  • 可能な場合は、サードパーティーパッケージより Django の組み込み機能を使用します
  • ビューは薄く保ち、ビジネスロジックにはサービス/マネージャーを使用します
  • 説明的な変数名を使い、複雑なロジックには docstring を追加します
  • 適切な例外を使って、エラーを適切に処理します

Django 固有のパターン:

  • FK/OneToOne には select_related()、逆 FK/M2M には prefetch_related() を使用します
  • クラスベースビューとミックスインを活用して、コードを再利用します
  • 検証には Django のフォーム/シリアライザーを使用します
  • Django のマイグレーションワークフローに従います(適用済みのマイグレーションは編集しないでください)
  • Django の組み込みセキュリティ機能(CSRF トークン、認証デコレーター)を使用します

API 開発(DRF):

  • 標準的な CRUD 操作には ModelSerializer を使用します
  • 適切なページネーションとフィルタリングを実装します
  • 適切な権限クラスを使用します
  • エンドポイントには RESTful の規約に従います
  • 互換性を損なう変更を行う際は、API をバージョン管理します
4. 検証とテストを行う

解決策を提示する前に、次の項目を確認してください。

コードレビュー:

  • N+1 クエリの問題がないか確認します(Django Debug Toolbar を使うつもりで確認します)
  • エラー処理とエッジケースが適切か検証します
  • セキュリティのベストプラクティスに従っていることを確認します
  • マイグレーションがクリーンで、元に戻せることを確認します

テストで考慮すること:

  • 新しい機能に対する適切なテストを提案または作成します
  • 重要な処理経路のテストカバレッジを検証します
  • フィクスチャ/ファクトリーが保守しやすいことを確認します

パフォーマンスの確認:

  • データベースクエリの効率を確認します
  • キャッシュを利用できる機会を検討します
  • データベースインデックスが適切に使用されていることを確認します

同梱リソース

references/ - 必要に応じてコンテキストに読み込む、包括的な Django ドキュメント

これらのリファレンスファイルでは、この SKILL.md の概要に加え、詳細なガイダンスを提供します。

  • references/models-and-orm.md(約11,000語)

    • モデルのフィールド型とベストプラクティス
    • リレーションの設定(ForeignKey、OneToOne、ManyToMany)
    • カスタムマネージャーと QuerySet メソッド
    • マイグレーションのパターンとよくある落とし穴
    • データベースレベルの制約とインデックス
  • references/views-and-urls.md(約17,000語)

    • 関数ベースビューとクラスベースビューのトレードオフ
    • CBV のミックスインと継承パターン
    • URL ルーティングと逆引き解決
    • ミドルウェアの実装
    • リクエスト/レスポンスのライフサイクル
  • references/drf-guidelines.md(約18,000語)

    • シリアライザーパターン(ModelSerializer、ネストされたシリアライザー)
    • ViewSet とルーターの設定
    • ページネーション、フィルタリング、検索
    • 認証クラスと権限クラス
    • API のバージョニング戦略
    • API のパフォーマンス最適化
  • references/testing-strategies.md(約18,000語)

    • テストの編成と構成
    • ファクトリーパターンとフィクスチャ
    • ビュー、モデル、シリアライザーのテスト
    • 外部サービスのモック化
    • テストデータベースの最適化
    • CI/CD との統合
  • references/security-checklist.md(約12,000語)

    • CSRF 保護の実装
    • XSS の防止手法
    • SQL インジェクション対策
    • 認証のベストプラクティス
    • 権限と認可のパターン
    • セキュアな設定
  • references/performance-optimization.md(約14,000語)

    • クエリの最適化(select_related、prefetch_related、only、defer)
    • データベースのインデックス戦略
    • キャッシュ層(Redis、Memcached、データベースキャッシュ)
    • データベースのコネクションプーリング
    • プロファイリングとモニタリングのツール
    • 非同期ビューとバックグラウンドタスク
  • references/production-deployment.md(約20,000語)

    • 重要な設定(DEBUG、SECRET_KEY、ALLOWED_HOSTS)
    • データベースの設定とコネクションプーリング
    • HTTPS/SSL の設定とセキュリティヘッダー
    • 静的ファイルとメディアファイルの配信
    • Redis/Memcached によるキャッシュ
    • 本番環境向けのメール設定
    • Sentry によるエラー監視
    • ロギングとヘルスチェック
    • ダウンタイムなしのデプロイ戦略
  • references/examples.md - 実践的な実装例

    • カスタムマネージャーを使ったモデル設計
    • N+1 クエリの最適化
    • DRF API エンドポイントの実装
    • Django テストの作成

補足事項

Django のバージョン互換性:

  • 本番環境では LTS リリース(4.2、5.2)を検討してください
  • アップグレード時は非推奨警告を確認してください
  • 自動マイグレーションには django-upgrade ツールを使用してください

避けるべきよくある落とし穴:

  • 循環インポート(遅延参照を使用してください)
  • リレーションで related_name を指定し忘れる
  • 頻繁にクエリされるフィールドにデータベースインデックスを付け忘れる
  • 例外処理なしで get() を使用する
  • テンプレートやシリアライザーで N+1 クエリが発生する

コメント