全书目录

第三十八篇:Phoenix 完全指南 —— 实时频道城邦宇宙

第二十一章:Phoenix 最常见的误区

2 分钟 713 字 第 740 / 962 个阅读单元

这一节非常关键。

#误区 1:把 Phoenix 等同于 LiveView

Phoenix 是整个城邦。
LiveView 只是其中最亮眼的中控系统。

Phoenix 依然非常适合:

  • 纯 JSON API
  • 传统 HTML 应用
  • Channels 实时系统
  • 混合架构
#误区 2:把 LiveView 当“自动替代一切前端工程”

LiveView 很强,但不是浏览器图形引擎,也不是复杂前端生态的完全替身。

如果你的页面核心是:

  • 大型可视化编辑器
  • 重型离线优先逻辑
  • 复杂本地多媒体处理
  • 强设备侧能力

那你仍然可能需要更重的前端端侧架构。

#误区 3:把 Context 当文件夹分组

Context 不是“看起来整洁一点”。
它是业务边界,是你的城市职能划分。

#误区 4:在 LiveView 里直接堆满数据库与业务逻辑

LiveView 是值班室,不是档案局。
事件处理里可以调 Context,但不要让它自己变成 Context。

#误区 5:任何局部复用都上 LiveComponent

Phoenix 官方经验非常明确:
默认先函数组件。

LiveComponent 不是“更高级模板”,而是“有局部状态和事件的组件”。

#误区 6:把 Presence 当业务真相表

Presence 表示“观察到的在线状态”,不是强一致业务主库。
它适合在线名册,不适合作为结算、库存、权限真相源。

#误区 7:以为用了 Phoenix 就不需要安全设计

Phoenix 1.8 的安全文档反复强调:

  • 不要执行不可信输入
  • 不要对不可信数据乱做危险解码
  • 访问控制不能只靠页面隐藏
  • 认证和授权要进正式边界

也就是说,城邦治理再好,门禁仍然要认真做。