如果你是新项目,我建议这样建:
#第一步:起城
mix archive.install hex phx_new
mix phx.new city --livePhoenix 1.8 系列要按官方变更基线理解,生产上通常至少准备 Erlang/OTP 25+。
#第二步:先做身份与通行证
mix phx.gen.auth Accounts User users这样你会有:
- 用户体系
- 会话
- 当前 scope 主线
- LiveView 兼容的认证入口
#第三步:先定职能部门,再定页面
mix phx.gen.live Dispatch Incident incidents title:string status:string重点不是“为了省手工”,而是先让你看到 Phoenix 推荐的边界:
- Context
- Schema
- LiveView
- HTML/表单
- 测试
#第四步:优先把普通页面和 LiveView 页面跑通
也就是先问:
- 这个功能是一次性办事窗口?
- 还是持续在线中控台?
#第五步:只有在“频道协议”成立时才上 Channels
不要因为“Phoenix 擅长实时”就默认所有东西都用 Channel。
#第六步:跨页面同步才上 PubSub,在线名册才上 Presence
很多人会反过来:
一上来就先造一个超级广播系统,然后再找业务塞进去。
这通常是过度设计。