使用 LiveView 和 Phoenix 1.5 在 15 分钟内构建实时 Twitter 克隆
发布于 2020 年 4 月 22 日,作者 Chris McCord
Phoenix v1.5 已发布,包含 LiveView 集成。此版本使构建交互式实时应用程序比以往更容易。我们制作了一个简短的屏幕录制,展示了您在 15 分钟内使用 LiveView 可以完成多少事情。
除了 Phoenix LiveView 集成之外,此版本还带来了其他令人兴奋的功能,包括与新的 Phoenix LiveDashboard 集成。有一些弃用,但大多数人应该可以快速轻松地完成升级。
Phoenix LiveDashboard
随着官方 LiveDashboard 发布的发布,Phoenix 1.5 项目现在默认情况下附带 LiveDashboard,用于实时性能监控和调试工具。在此,我也要欢迎 Michael Crumm 加入 phoenix-core 团队!他一直与 José Valim 一起领导着 Dashboard 的工作,我们感谢他们为我们今天取得的惊人成果所付出的努力。
Dashboard 可让您立即洞悉您的 Phoenix 应用程序,重点关注生产数据。即使您刚开始使用 Phoenix,我们也为小部件提供了工具提示,以便您了解有关它们的更多信息,以及您何时应该担心系统限制和系统的健康状况。通过遥测集成,我们还包括 Phoenix 事件的图表,以及用户定义的指标。
查看 José 的 Twitter 线程,以查看功能和屏幕截图的细分:https://twitter.com/josevalim/status/1250846714665357315
Dashboard 还包括一个流式请求记录器。这对于在生产环境中诊断问题非常方便,您需要特定请求的日志,但常规日志会淹没您的请求。只需点击一个按钮,您就可以将所有自己的请求日志流式传输到仪表板,而无需筛选大量的生产日志。
我们还包括一个进程选项卡,它类似于观察器,允许您对系统中的进程进行排序,以查找大型消息队列、内存占用过高进程等。
我们是否提到这对分布式节点集群Just Works™?使用节点下拉选择器,您可以访问集群中任何节点上的所有数据/功能,无论您在加载仪表板时负载均衡到哪个 Web 节点。
Phoenix LiveView 生成器
phx.new
项目生成器现在包含一个 --live
标志,其中包含您开始使用 LiveView 开发所需的一切。此外,我们还添加了一个 phx.gen.live
生成器,用于引导类似于 phx.gen.html
/phx.gen.json
的 CRUD LiveView 上下文/界面。我们建议您试用这些生成器,以查看最近发布的 LiveView 中的所有现有改进。
- 改进了 LiveViewTest API,以实现更强大的、以工作流程为驱动的测试。
- 针对 LiveView 模板进行深度差异跟踪,在许多情况下显着减少了服务器负载。
- 客户端渲染性能大幅提升。
- LiveView 闪光导航。
PubSub 2.0
Phoenix.PubSub 2.0 已发布,它具有更灵活、更强大的快速通道机制。我们借此机会将 Phoenix.PubSub 从端点中移出,并显式地将其置于您的监督树中。这可以防止启动时的竞争条件,并使您的 PubSub 系统与端点分离。请遵循下面链接的升级指南以了解最新信息。
改进了指南等等
由于 José Valim 的努力,Phoenix 内置指南已得到重新构建和改进,提供了更好的导航结构和更多内容。如果您想刷新您的 Phoenix 知识,请务必查看。
其他值得注意的改进包括通过 tds
适配器内置支持 MSSQL 数据库,以及在新的项目中包含 Phoenix.Ecto.CheckRepoStatus
插件,以便直接从浏览器舒适地检测和提示数据库创建/迁移。
与往常一样,我们提供了升级指南,以使您的现有应用程序保持最新状态:https://gist.github.com/chrismccord/e53e79ef8b34adf5d8122a47db44d22f
有关更改的完整列表,请参阅 CHANGELOG.
如果您有任何疑问,请在 elixir slack/irc 上联系我们。祝您编码愉快!