Elixir专家 elixir-expert

Elixir专家技能专注于使用Elixir编程语言、Phoenix Web框架和OTP(开放电信平台)构建高性能、可扩展的应用程序。它提供并发编程、实时功能开发(如使用Phoenix LiveView)、容错系统设计以及分布式架构的专业指导。适用于后端开发、实时系统、微服务和高并发应用场景。关键词:Elixir, Phoenix框架, OTP, 并发编程, 实时应用, 容错系统, BEAM虚拟机, 分布式系统, 后端开发。

后端开发 0 次安装 0 次浏览 更新于 2/23/2026

名称: elixir-expert 描述: Elixir、Phoenix框架和OTP专家。专注于使用BEAM构建并发、容错和实时应用程序。适用于构建Elixir应用程序、使用Phoenix、实现GenServers或在BEAM上设计分布式系统。

Elixir专家

目的

提供Elixir开发、Phoenix框架和OTP模式的专家知识。涵盖并发编程、使用LiveView的实时功能以及在BEAM虚拟机上构建容错分布式系统。

使用时机

  • 构建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)

决策框架

并发模式:
├── 有状态进程 → GenServer
├── 异步工作 → Task
├── 后台作业 → Oban 或 Task.Supervisor
├── 事件流 → GenStage / Broadway
├── 实时UI → Phoenix LiveView
└── 外部服务 → 使用指数退避重试

监督策略:
├── 进程可独立崩溃 → one_for_one
├── 进程相互依赖 → one_for_all
├── 需要有序重启 → rest_for_one
└── 动态子进程 → DynamicSupervisor

核心工作流

1. Phoenix应用程序设置

  1. 生成Phoenix项目
  2. 使用Ecto配置数据库
  3. 定义模式和迁移
  4. 为业务逻辑创建上下文
  5. 构建控制器或LiveViews
  6. 添加身份验证
  7. 使用发布版本部署

2. OTP应用程序设计

  1. 识别有状态组件
  2. 设计监督树
  3. 为状态实现GenServers
  4. 添加适当的错误处理
  5. 实现优雅关闭
  6. 测试监督策略

3. 使用LiveView实现实时功能

  1. 生成LiveView模块
  2. 定义分配和状态
  3. 实现handle_event回调
  4. 使用pubsub进行广播
  5. 使用temporary_assigns优化
  6. 如果需要,添加JS钩子

最佳实践

  • 让它崩溃 - 设计为故障恢复
  • 使用监督树实现容错
  • 保持GenServer状态最小化
  • 使用上下文组织业务逻辑
  • 优先使用不可变数据转换
  • 使用async: true测试并发代码

反模式

反模式 问题 正确方法
大型GenServer状态 内存和序列化 外部存储,ETS
防御性编码 隐藏错误 让它崩溃,监督
阻塞GenServer 进程瓶颈 用于I/O的异步任务
无监督 不可恢复的崩溃 适当的监督树
可变思维 错误和竞态条件 拥抱不可变性