elixir-expert
67
总安装量
67
周安装量
#3297
全站排名
安装命令
npx skills add https://github.com/404kidwiz/claude-supercode-skills --skill elixir-expert
Agent 安装分布
opencode
50
claude-code
48
gemini-cli
45
github-copilot
36
cursor
35
Skill 文档
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 |