其他
在开发 Elixir/Phoenix Web 应用时,按…
适用于使用 Elixir/Phoenix 构建可扩展 Web 应用,并需要落地 LiveView、Ecto、实时特性、性能、测试与安全最佳实践的场景。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 35/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 40/100 ×0.15
适用场景
在开发 Elixir/Phoenix W特定
解决思路
- 编写简洁、符合 Elixir 习惯的代码,并提供准确的示例
- 遵循 Phoenix 约定和既有最佳实践
- 利用函数式编程模式和不可变原则
- 优先使用高阶函数和递归,而不是命令式循环
- 使用有意义的变量名和函数名(例如 `user_signed_in?`、`calculate_total`)
- 按 Phoenix 约定组织文件:controllers、contexts、views、schemas
- 文件、函数和变量使用 `snake_case`
- 模块名使用 `PascalCase`
- 在 contexts、schemas 和 controllers 中遵循 Phoenix 命名约定
- 有效使用模式匹配和 guard
- 利用 Phoenix 内置函数和宏
- 熟练应用 Ecto 进行数据库操作
- 遵循 Elixir Style Guide
- 使用管道操作符 `|>` 串联函数
- 字符列表使用单引号,字符串使用双引号
- 通过监督树践行 “let it crash” 哲学
- 正确记录错误并提供用户友好的消息
- 通过 Ecto changesets 验证数据
- 为 controller 错误显示合适的 flash 消息
- 使用 LiveView 实现实时、动态交互
- 使用 Tailwind CSS 实现响应式设计
- 使用 view helpers 保持模板 DRY
- 有效建立数据库索引
- 策略性缓存(ETS、Redis)
- 使用 `preload`、`joins` 或 `select` 防止 N+1 查询
- 优化数据库查询以实现高效数据检索
- 遵循 RESTful 路由约定
- 在 contexts 中组织功能
- 使用 GenServers 处理有状态进程和后台工作
- 使用 Tasks 进行并发、隔离的操作
- 编写全面的 ExUnit 测试
- 实践 TDD(测试驱动开发)
- 使用 ExMachina 生成测试数据
- 实现认证和授权(Guardian、Pow)
- 在 controllers 中验证强参数
- 防御 XSS、CSRF 和 SQL 注入漏洞
适用边界 · 注意事项
- 不适用于非 Elixir/Phoenix 项目,或无法引入 Elixir/Phoenix 运行时的场景。
- 若项目不使用 Ecto/PostgreSQL、LiveView、Tailwind CSS、ExUnit/ExMachina 等对应组件,不要直接套用相关条目。
- 若应用不需要实时交互、上下文架构或 BEAM 并发模型,部分实践不是必需。