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. 01设计 Elixir 应用
  2. 02构建 Phoenix Web 应用
  3. 03实现 LiveView 界面
  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. 使用 releases 部署
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 hooks

最佳实践

  • 让它崩溃——为故障恢复而设计
  • 使用监督树实现容错
  • 尽量精简 GenServer 状态
  • 使用上下文组织业务逻辑
  • 优先采用不可变数据转换
  • 使用 async: true 测试并发代码

反模式

反模式问题正确做法
GenServer 状态过大内存和序列化开销外部存储、ETS
防御式编码掩盖错误让它崩溃并进行监督
阻塞 GenServer进程瓶颈使用异步任务处理 I/O
没有监督机制崩溃后无法恢复建立合适的监督树
可变思维模式错误和竞态条件拥抱不可变性

评论

支持 Markdown