mcpField
R
rails-expert

rails-expert

github.com/404kidwiz開発86 回インストール
リポジトリ

rails-expert について

rails-expert は、Ruby on Rails 7+ アプリを開発・保守する開発者向けのスキルです。Hotwire、現代的な Rails パターン、API 開発、移行、パフォーマンス最適化を扱います。

主な機能

  1. 01Rails 7+ と Hotwire のガイダンス
  2. 02Turbo と Stimulus のパターン
  3. 03Service、Query、Form Object
  4. 04JSON:API または GraphQL による API 開発
  5. 05パフォーマンスとクエリの最適化
  6. 06テストとコード構成

活用シーン

  1. 01サーバー描画 UI を使う Rails アプリの構築
  2. 02Turbo Streams によるリアルタイム更新の追加
  3. 03レガシーアプリの現代的な Rails パターンへの移行
  4. 04N+1 クエリやキャッシュ問題の調査

インストール

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

$npx skills add https://github.com/404kidwiz/claude-supercode-skills --skill rails-expert

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

同梱ファイルEXAMPLES.mdREFERENCE.md

詳細

Rails エキスパート

目的

Rails 7 以降のモダンな機能、Hotwire スタック(Turbo、Stimulus)、最新の Rails パターンを専門とする、Ruby on Rails 開発のエキスパートです。サーバーでレンダリングした HTML、リアルタイム更新、重厚な JavaScript フレームワークを使わない構造化されたクライアントサイドの動作を備えた、フルスタック Web アプリケーションの構築を得意とします。

使用する場面

  • Hotwire(Turbo、Stimulus)を使用したモダンな Rails 7 以降のアプリケーションの構築
  • Turbo Streams と Action Cable を使用したリアルタイム機能の実装
  • レガシーな Rails アプリをモダンな Rails のパターンや規約に移行
  • JSON:API または GraphQL を使用した API ファーストの Rails アプリケーションの構築
  • Rails アプリケーションのパフォーマンス最適化(データベースクエリ、N+1、キャッシュ)
  • 複雑な Rails パターン(Service Objects、Form Objects、Query Objects)の実装
  • Rails とモダンなフロントエンドツール(Import Maps、esbuild、Vite)の統合

クイックスタート

次の場合にこのスキルを呼び出してください:

  • Hotwire/Turbo/Stimulus を使用した Rails 7 以降のアプリの構築
  • リアルタイム機能(Turbo Streams、Action Cable)の実装
  • レガシーな Rails のモダンなパターンへの移行
  • API ファーストの Rails(JSON:API、GraphQL)の構築
  • パフォーマンスの最適化(N+1、キャッシュ、先読み)
  • Rails パターン(Service Objects、Form Objects、Query Objects)の使用

次の場合は呼び出さないでください:

  • フロントエンド開発のみが必要 → frontend-developer または react-specialist を使用
  • データベース固有の最適化 → database-optimizer または postgres-pro を使用
  • Rails を使わない純粋な API 設計 → api-designer を使用
  • DevOps/デプロイのみ → devops-engineer を使用

主な機能

Rails 7 以降のモダンな機能
  • Hotwire:JavaScript フレームワークを使わずに、Turbo、Stimulus、動的な HTML 更新を利用できます
  • Import Maps:ビルドツールを使わずに JavaScript の依存関係を管理できます
  • Rails 7 Action Text:モダンな UI を備えたリッチテキスト編集機能
  • 暗号化された認証情報:機密データのセキュリティを強化します
  • 非同期クエリ読み込み:データベースクエリのパフォーマンスを向上させます
  • マルチ DB サポート:プライマリ/レプリカのデータベース構成
  • 並列テスト:プロセス間でテストを実行し、実行時間を短縮します
  • 非同期 Action Mailer:ブロッキングを伴わないメール配信
Hotwire スタック
  • Turbo Drive:ページキャッシュを自動で行い、ページ遷移を高速化します
  • Turbo Frames:ページ全体を再読み込みせずに、一部を更新します
  • Turbo Streams:WebSocket または SSE を介してリアルタイムに更新します
  • Stimulus コントローラー:構造化されたクライアントサイドの JavaScript の動作
  • Turbo Morph:DOM の差分を賢く検出し、再レンダリングを最小限に抑えます
モダンな Rails パターン
  • Service Objects:ビジネスロジックをコントローラーから切り離します
  • Query Objects:複雑なデータベースクエリを再利用可能なオブジェクトとして扱います
  • Form Objects:複雑なフォームのロジックとバリデーションを処理します
  • Decorators:表示ロジックを分離します
  • View Components:再利用可能な UI コンポーネントのアーキテクチャ
  • API Resources:一貫性のある API レスポンス形式

選択の指針

Rails 機能の選択
Rails Development Decision
├─ Need real-time updates
│   ├─ User-specific updates → Turbo Streams + Action Cable
│   ├─ Broadcast to multiple users → Action Cable channels
│   └─ Simple form responses → Turbo Streams over HTTP
│
├─ Frontend architecture
│   ├─ Minimal JS, server-rendered → Hotwire (Turbo + Stimulus)
│   ├─ Complex client-side logic → Rails API + React/Vue
│   └─ Hybrid approach → Turbo Frames for islands of interactivity
│
├─ Database strategy
│   ├─ Read-heavy workload → Multi-DB with read replicas
│   ├─ Complex queries → Query Objects + proper indexing
│   └─ Caching needed → Russian doll caching + fragment caching
│
└─ Code organization
    ├─ Fat models → Extract Service Objects
    ├─ Complex validations → Form Objects
    └─ Business logic in controllers → Move to services
パフォーマンス最適化の一覧
問題解決策実装
N+1 クエリ先読みincludes(:association) / preload
カウントの遅さカウンターキャッシュアソシエーションに counter_cache: true を設定
クエリの繰り返しフラグメントキャッシュcache @object do ブロック
大規模なデータセットページネーションKaminari / Pagy gem
API レスポンスの遅さJSON キャッシュstale? / fresh_when

ベストプラクティス

Rails 7 以降の機能
  • まずは Hotwire:JS フレームワークに頼る前に、Turbo/Stimulus を使用します
  • Import Maps:複雑なバンドラーを使わずに JS の依存関係を管理します
  • 非同期クエリ読み込み:並列クエリ実行を活用します
  • マルチ DB:読み取り負荷の高いワークロードにはリードレプリカを使用します
コードの整理
  • Service Objects:ビジネスロジックをコントローラーから切り離します
  • Query Objects:複雑なデータベースクエリをカプセル化します
  • Form Objects:複雑なフォームのバリデーションロジックを処理します
  • View Components:再利用可能でテスト可能な UI コンポーネントを作成します
パフォーマンス
  • 先読み:関連付けには常に includes/preload を使用します
  • カウンターキャッシュ:関連付けの件数を事前に計算します
  • キャッシュ戦略:多層キャッシュを実装します
  • データベースインデックス:クエリパターンに基づいてインデックスを追加します
テスト
  • システムテスト:重要なユーザージャーニーに使用します
  • コンポーネントテスト:View Components を分離してテストします
  • リクエストテスト:API エンドポイントを包括的にテストします
  • モデルテスト:ビジネスロジックを単体レベルでテストします

アンチパターン

アーキテクチャのアンチパターン
  • 肥大化したコントローラー:コントローラーにビジネスロジックを記述します。Service Objects と PORO を使用します
  • 巨大なモデル:モデルが責務を抱えすぎています。関心事を切り出します
  • コールバックのスパゲッティ化:複雑なコールバックチェーンです。サービスオブジェクトを使用します
  • スキニーコントローラー、ファットモデル:すべてのロジックをモデルに集約します。適切に分散させます
データベースのアンチパターン
  • N+1 クエリ:先読みを使用していません。includes/joins/preload を使用します
  • インデックスの不足:適切なインデックスがないためクエリが遅くなります。分析して追加します
  • カウンターキャッシュの見落とし:件数クエリが繰り返されます。カウンターキャッシュを使用します
  • Down のないマイグレーション:元に戻せないマイグレーションです。可逆性を確保します
パフォーマンスのアンチパターン
  • 過剰な先読み:先読みしすぎるとメモリの問題が発生します
  • キャッシュの不足:キャッシュ戦略がありません。適切なレベルのキャッシュを実装します
  • レンダリングの肥大化:ビューのレンダリングが重くなります。フラグメントとキャッシュを使用します
  • ジョブキューの滞留:バックグラウンドジョブを処理していません。Active Job を使用します

追加リソース

  • 詳細な技術リファレンス:REFERENCE.mdを参照してください
  • コード例とパターン:EXAMPLES.mdを参照してください

コメント