用途:在构建 Elixir Phoenix Web 应用时,按最佳实践组织代码结构,包括应用架构、Context 边界设计、REST API 控制器、认证授权与可复用 Plug 管道。
主要能力:Context 设计——用专门模块暴露并分组相关功能,如 MyApp.Accounts 提供 list_users、get_user!、get_user_by_email、create_user、update_user、delete_user、change_user 等函数,内部调用 Repo 与 changeset。控制器模式——控制器保持精简,通过 action_fallback 统一错误处理,使用 with 处理成功与失败分支,创建资源时返回 :created 并设置 location 响应头。Fallback Controller——集中处理 :not_found、Ecto.Changeset 校验错误与 :unauthorized 等错误,映射到对应状态码与视图。Plug 管道——在 Router 中定义 :browser、:api、:admin 等 pipeline,分别处理 HTML、JSON 与管理员权限,并用 scope 与 pipe_through 组合路由。自定义 Plug——如 Authenticate 从 authorization 头解析 Bearer token,验证后 assign :current_user,失败则返回 401 并 halt。
使用方式:作为技能在需要时调用,适用于搭建 Phoenix 应用架构、设计 Context 边界、实现 REST API 控制器、创建自定义认证授权、构建可复用 Plug 管道等场景。
最佳实践:控制器薄、Context 厚;用 action_fallback 处理错误;按功能分组 Context;用 Plug 处理横切关注点;路由遵循 RESTful 约定;分离 API 与浏览器管道。
常见陷阱:把业务逻辑放进控制器;不用 Context 组织代码;Context 过大;忘记正确处理错误;未有效使用管道;在单个 Plug 中混合多种关注点。
限制:资料未提供安装命令、依赖要求、版本兼容性、收费或平台信息,暂未提供。