Elixir 专家
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/elixir-pro。
技能介绍
要解决什么问题
在 BEAM 上写 Elixir,难点往往不在语法,而在监督树怎么搭、进程边界怎么划、以及 Phoenix/Ecto 在真实项目里如何保持可测试与可扩展。团队容易把 GenServer 当全局状态桶、用大量 if/else 绕过模式匹配,或在缺少 Telemetry 的情况下硬猜性能瓶颈。
技能如何协助
本技能以「OTP + 不可变状态 + 进程隔离」为轴线,按社区约定产出可维护代码,典型路径包括:
- OTP:用 Supervisor 落实 let it crash,设计 GenServer、Application 与合理的重启策略
- Phoenix / LiveView:按 context 划分边界,组织路由、实时交互与 changeset 校验
- Ecto:建模、查询与 changeset,避免把业务规则散落在 controller 层
- 并发与分布式:Tasks、进程消息、节点与集群下的故障域划分
- 质量与可观测:ExUnit(含 async、doctests)、Dialyzer
@spec、Benchee 基准、Telemetry 埋点
操作上会先澄清目标、约束与输入,再给出可执行步骤与验证方式;需要完整示例时可参考 resources/implementation-playbook.md。
适用边界
任务与 Elixir/OTP/Phoenix 生态无关,或必须依赖本范围外工具与领域时,不应强行套用本技能。输出强调容错与水平扩展,但不替代你对业务域与部署环境的最终决策。
使用场景
- 新建 GenServer 服务时,需要设计 Supervisor 重启策略并避免把进程当全局可变状态使用
- 现有 Phoenix 项目要接入 LiveView,需按 context 拆分模块并梳理 changeset 与实时推送边界
- 多节点集群上线前,要梳理节点互联、故障域划分以及进程崩溃后的恢复行为
- 接口延迟升高时,要用 `:observer`、`:recon` 或 Telemetry 定位 BEAM 上的瓶颈再改代码
适合人员
- 维护 Phoenix 后端、需在不大改架构下引入 LiveView 实时页面的全栈工程师
- 负责 BEAM 集群部署、要制定 OTP 监督树与「任其崩溃」落地规范的平台或 SRE
- 从其他语言转入 Elixir、需要用 Ecto changeset 与 ExUnit 属性测试重写数据层的后端开发
- 在代码评审中要把 Dialyzer `@spec`、Benchee 与 Telemetry 纳入发布门禁的技术负责人