mcpField
E
elixir-expert

elixir-expert

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

elixir-expert について

elixir-expert は Elixir と Phoenix の開発を支援するスキルです。OTP、LiveView、並行処理、BEAM VM 上のフォールトトレラントなシステム設計を扱います。

主な機能

  1. 01Elixir と Phoenix の開発ガイダンス
  2. 02OTP パターンとスーパービジョンツリー
  3. 03LiveView によるリアルタイム機能
  4. 04Ecto のデータベースアクセス手順

活用シーン

  1. 01Elixir アプリケーションの設計
  2. 02Phoenix Web アプリケーションの開発
  3. 03LiveView インターフェースの実装
  4. 04フォールトトレラントな OTP システムの計画

インストール

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

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

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

詳細

Elixir エキスパート

目的

Elixir の開発、Phoenix Framework、OTP のパターンに関する専門知識を提供します。並行プログラミング、LiveView によるリアルタイム機能、BEAM VM 上での耐障害性に優れた分散システムの構築を扱います。

使用する場面

  • Elixir アプリケーションを構築するとき
  • Phoenix の Web アプリケーションを開発するとき
  • LiveView でリアルタイム機能を実装するとき
  • OTP のパターン(GenServer、Supervisor)を使用するとき
  • BEAM 上で分散システムを構築するとき
  • 耐障害性に優れたアーキテクチャを設計するとき
  • データベースアクセスに Ecto を使用するとき

クイックスタート

このスキルを呼び出す場合:

  • Elixir アプリケーションを構築するとき
  • Phoenix の Web アプリケーションを開発するとき
  • LiveView でリアルタイム機能を実装するとき
  • OTP のパターンを使用するとき
  • 耐障害性に優れたシステムを設計するとき

呼び出さない場合:

  • Ruby on Rails アプリを構築するとき(rails-expert を使用)
  • Node.js バックエンドを構築するとき(javascript-pro を使用)
  • Python バックエンドを構築するとき(python-pro を使用)
  • インフラストラクチャの自動化を行うとき(terraform-engineer を使用)

判断フレームワーク

Concurrency Pattern:
├── Stateful process → GenServer
├── Async work → Task
├── Background job → Oban or Task.Supervisor
├── Event streaming → GenStage / Broadway
├── Real-time UI → Phoenix LiveView
└── External service → Retry with exponential backoff

Supervision Strategy:
├── Process can crash independently → one_for_one
├── Processes depend on each other → one_for_all
├── Ordered restart needed → rest_for_one
└── Dynamic children → DynamicSupervisor

主なワークフロー

1. Phoenix アプリケーションのセットアップ
  1. Phoenix プロジェクトを生成します
  2. Ecto でデータベースを設定します
  3. スキーマとマイグレーションを定義します
  4. ビジネスロジック用のコンテキストを作成します
  5. コントローラーまたは LiveView を構築します
  6. 認証を追加します
  7. リリースを使用してデプロイします
2. OTP アプリケーションの設計
  1. 状態を持つコンポーネントを特定します
  2. スーパービジョンツリーを設計します
  3. 状態管理用の GenServer を実装します
  4. 適切なエラー処理を追加します
  5. グレースフルシャットダウンを実装します
  6. スーパービジョン戦略をテストします
3. LiveView によるリアルタイム機能
  1. LiveView モジュールを生成します
  2. assigns と状態を定義します
  3. handle_event コールバックを実装します
  4. ブロードキャストに pubsub を使用します
  5. temporary_assigns で最適化します
  6. 必要に応じて JS フックを追加します

ベストプラクティス

  • クラッシュを許容し、障害からの復旧を前提に設計します
  • 耐障害性を確保するためにスーパービジョンツリーを使用します
  • GenServer の状態は最小限に保ちます
  • ビジネスロジックの整理にはコンテキストを使用します
  • 不変データの変換を優先します
  • async: true を使用して並行コードをテストします

アンチパターン

アンチパターン問題正しいアプローチ
GenServer の状態が大きいメモリとシリアライズの負担外部ストレージ、ETS
防御的なコーディングバグを隠しますクラッシュを許容し、監督します
GenServer のブロッキングプロセスのボトルネックI/O には非同期タスクを使用します
スーパービジョンがない復旧できないクラッシュ適切なスーパービジョンツリー
可変を前提とした考え方バグや競合状態不変性を受け入れます

コメント