这一节非常关键。
#误区 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 的安全文档反复强调:
- 不要执行不可信输入
- 不要对不可信数据乱做危险解码
- 访问控制不能只靠页面隐藏
- 认证和授权要进正式边界
也就是说,城邦治理再好,门禁仍然要认真做。