Phoenix框架实战示例与指南Skill phx:examples

这个技能提供了Phoenix Web框架的实践示例、工作流程和最佳实践指南,帮助开发者快速上手并优化Elixir后端开发,适用于构建高性能、可扩展的Web应用程序。关键词:Phoenix框架,Elixir开发,Web开发,后端开发,实战指南,最佳实践。

后端开发 0 次安装 0 次浏览 更新于 3/11/2026

name: phx:examples description: 实用示例和详细指南。参考官方 Phoenix 指南以获取标准模式,记录插件特定工作流程。

示例与实战指南

官方 Phoenix 指南(参考)

对于标准实现模式,首先总是检查官方指南:

主题 指南
上下文 hexdocs.pm/phoenix/contexts
Ecto 基础 hexdocs.pm/phoenix/ecto
LiveView hexdocs.pm/phoenix_live_view
认证 mix phx.gen.auth
通道 hexdocs.pm/phoenix/channels
测试 hexdocs.pm/phoenix/testing
部署 hexdocs.pm/phoenix/deployment

插件特定模式

不在官方指南中的模式(本插件独有):

Tidewave 集成工作流程

# 1. 检查 Tidewave 是否运行中
/mcp

# 2. 如果已连接,使用运行时工具调试
# 获取 YOUR 依赖版本的精确文档
mcp__tidewave__get_docs "Ecto.Query"

# 在运行的应用中执行代码
mcp__tidewave__project_eval "MyApp.Accounts.list_users() |> length()"

# 直接查询数据库
mcp__tidewave__execute_sql_query "SELECT count(*) FROM users"

多智能体审查工作流程

# 1. 与专业智能体规划功能
/phx:plan 添加带有 S3 上传的用户头像

# 2. 实施后,从多角度审查
/phx:review lib/my_app/accounts.ex  # Elixir 习惯用法
# 安全分析器在认证代码上自动运行

# 3. 部署前
# 部署验证器检查生产就绪情况

铁律强制执行

本插件在所有智能体中强制执行非协商的规则:

Elixir 习惯用法:

  • 没有运行时原因时不使用进程
  • 消息被复制(保持小型)
  • 变更集用于外部数据

LiveView:

  • 永远不在 mount 中查询数据库
  • 总是使用流处理列表
  • 在每个 handle_event 中重新授权

Oban:

  • 作业必须是幂等的
  • 总是处理 {:error, _} 返回
  • 使用唯一键进行去重

安全:

  • 在边界处验证
  • 永远不要在查询中插值用户输入
  • 到处授权(不仅限于 mount)

示例工作流程

错误调查

# 1. 从明显检查开始
/phx:investigate 密码重置后登录失败

# 2. 智能体检查 Ralph Wiggum 列表:
#    - 文件保存了?编译了?迁移了?
#    - 原子键 vs 字符串键?
#    - 数据预加载了?

# 3. 如果复杂,升级到 Ralph Wiggum 循环(如果安装)
/ralph-loop:ralph-loop "修复登录测试。输出 <promise>完成</promise> 当绿色时。"

功能规划

# 1. 研究阶段
/phx:research Oban 唯一作业最佳实践

# 2. 通过上下文分析规划
/phx:plan 添加每日摘要邮件作业

# 3. 智能体协调:
#    - hex-library-researcher 评估依赖
#    - oban-specialist 设计工作者
#    - ecto-schema-designer 规划数据模型

安全审计

# 1. 在认证代码上运行安全分析器
/phx:review lib/my_app_web/controllers/session_controller.ex

# 2. 检查常见漏洞:
#    - SQL 注入(参数化查询?)
#    - XSS(正确转义?)
#    - CSRF(令牌存在?)
#    - 授权(事件中重新检查?)

何时使用官方文档 vs 插件

情况 使用
“如何创建上下文?” 官方 Phoenix 指南
“我的上下文设计是否符合习惯?” 插件的 /phx:review
“如何添加 LiveView?” 官方 LiveView 指南
“我的 LiveView 是否有内存问题?” 插件的铁律
“如何部署到 Fly.io?” 官方部署指南
“我的发布配置是否生产就绪?” 插件的部署验证器