elixir-expert
Elixir、Phoenix、OTPを活用し、並行処理や耐障害性に優れたリアルタイムアプリケーションを設計・構築するSkill。
📜 元の英語説明(参考)
Expert in Elixir, Phoenix Framework, and OTP. Specializes in building concurrent, fault-tolerant, and real-time applications using the BEAM. Use when building Elixir applications, working with Phoenix, implementing GenServers, or designing distributed systems on the BEAM.
🇯🇵 日本人クリエイター向け解説
Elixir、Phoenix、OTPを活用し、並行処理や耐障害性に優れたリアルタイムアプリケーションを設計・構築するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-17
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
[スキル名] elixir-expert
Elixir Expert
目的
Elixir開発、Phoenix Framework、およびOTPパターンに関する専門知識を提供します。並行プログラミング、LiveViewによるリアルタイム機能、BEAM VM上でのフォールトトレラントな分散システムの構築をカバーします。
使用する場面
- Elixirアプリケーションを構築する場合
- Phoenixウェブアプリケーションを開発する場合
- LiveViewでリアルタイム機能を実装する場合
- OTPパターン(GenServer、Supervisor)を使用する場合
- BEAM上で分散システムを構築する場合
- フォールトトレラントなアーキテクチャを設計する場合
- データベースアクセスにEctoを使用する場合
クイックスタート
このスキルを呼び出す場合:
- Elixirアプリケーションを構築する場合
- Phoenixウェブアプリケーションを開発する場合
- 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アプリケーションのセットアップ
- Phoenixプロジェクトを生成します。
- Ectoでデータベースを設定します。
- スキーマとマイグレーションを定義します。
- ビジネスロジックのコンテキストを作成します。
- コントローラーまたはLiveViewを構築します。
- 認証を追加します。
- リリースでデプロイします。
2. OTPアプリケーションの設計
- ステートフルなコンポーネントを特定します。
- 監視ツリーを設計します。
- 状態管理のためにGenServerを実装します。
- 適切なエラーハンドリングを追加します。
- グレースフルシャットダウンを実装します。
- 監視戦略をテストします。
3. LiveViewによるリアルタイム機能
- LiveViewモジュールを生成します。
- アサインと状態を定義します。
- handle_eventコールバックを実装します。
- ブロードキャストにpubsubを使用します。
- temporary_assignsで最適化します。
- 必要に応じてJSフックを追加します。
ベストプラクティス
- クラッシュさせましょう - 障害回復のために設計します。
- フォールトトレランスのために監視ツリーを使用します。
- GenServerの状態は最小限に保ちます。
- ビジネスロジックを整理するためにコンテキストを使用します。
- 不変なデータ変換を優先します。
async: trueで並行コードをテストします。
アンチパターン
| アンチパターン | 問題点 | 正しいアプローチ |
|---|---|---|
| 大規模なGenServerの状態 | メモリとシリアライゼーション | 外部ストレージ、ETS |
| 防御的なコーディング | バグを隠す | クラッシュさせ、監視する |
| ブロッキングGenServer | プロセスボトルネック | I/Oのための非同期タスク |
| 監視なし | 回復不能なクラッシュ | 適切な監視ツリー |
| 可変な考え方 | バグと競合状態 | 不変性を採用する |
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Elixir Expert
Purpose
Provides expertise in Elixir development, Phoenix Framework, and OTP patterns. Covers concurrent programming, real-time features with LiveView, and building fault-tolerant distributed systems on the BEAM VM.
When to Use
- Building Elixir applications
- Developing Phoenix web applications
- Implementing real-time features with LiveView
- Using OTP patterns (GenServer, Supervisor)
- Building distributed systems on BEAM
- Designing fault-tolerant architectures
- Working with Ecto for database access
Quick Start
Invoke this skill when:
- Building Elixir applications
- Developing Phoenix web applications
- Implementing real-time features with LiveView
- Using OTP patterns
- Designing fault-tolerant systems
Do NOT invoke when:
- Building Ruby on Rails apps (use rails-expert)
- Building Node.js backends (use javascript-pro)
- Building Python backends (use python-pro)
- Infrastructure automation (use terraform-engineer)
Decision Framework
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
Core Workflows
1. Phoenix Application Setup
- Generate Phoenix project
- Configure database with Ecto
- Define schemas and migrations
- Create contexts for business logic
- Build controllers or LiveViews
- Add authentication
- Deploy with releases
2. OTP Application Design
- Identify stateful components
- Design supervision tree
- Implement GenServers for state
- Add proper error handling
- Implement graceful shutdown
- Test supervision strategies
3. Real-Time with LiveView
- Generate LiveView module
- Define assigns and state
- Implement handle_event callbacks
- Use pubsub for broadcasts
- Optimize with temporary_assigns
- Add JS hooks if needed
Best Practices
- Let it crash - design for failure recovery
- Use supervision trees for fault tolerance
- Keep GenServer state minimal
- Use contexts to organize business logic
- Prefer immutable data transformations
- Test concurrent code with async: true
Anti-Patterns
| Anti-Pattern | Problem | Correct Approach |
|---|---|---|
| Large GenServer state | Memory and serialization | External storage, ETS |
| Defensive coding | Hides bugs | Let it crash, supervise |
| Blocking GenServer | Process bottleneck | Async tasks for I/O |
| No supervision | Unrecoverable crashes | Proper supervision tree |
| Mutable mindset | Bugs and race conditions | Embrace immutability |