Chris McCord 日前发布了 Phoenix web 框架的 1.0 版本。
Phoenix 以 Elixir 语言写成,并实现了服务器侧的 MVC 模式,旨在将高开发效率与高应用性能结合起来。McCord 在博客文章里宣布了版本发布的消息,并提到为达成1.0 版本的发布,进行了“为时一年半的工作,提交代码2500 次,发布了30 个中间版本”。
Phoenix 1.0 版本包括了众多的更新和变化,其中一项是引入了“channel”,这让开发者拥有“一个到服务器的用于双向通信的多路复用连接”。
McCord 还表示,
Phoenix 还抽象化了传输层,这样开发者就不必再去关心用户的连接方式了。无论用的是 WebSocket、长轮询,还是自定义传输,使用 channel 的代码无需改变。
开发者只需针对抽象的“socket”编写代码,剩下的工作交给 Phoenix 处理。即使是在集群机器上,发出的消息都能自动地在节点间进行广播。Phoenix 的 javascript 客户端还提供了 API,支持客户端 / 服务器之间的简洁优雅的通信。
最新版本的 Phoenix 得到了开发社区的热烈回应。在 Hacker News 上,大量用户参与了 Phoenix 1.0 的讨论,其中一个用户 oomkiller 说:
“在 Ruby 和 Rails 圈混迹了近七年之后,我换了工作,近三个月来我在工作中一直使用 Elixir 和 Phoenix。对此我非常满意。Phoenix 社区棒极了,提供的工具无懈可击,尤其是对这样一个年轻的项目来说,它的开源库的水准和可用性都很高。”
用户 ghayes 在回复另一个用户 fierycatnet 提出的问题“设想一下,为什么会选择 Phoenix 而不是 Rails 去开发新的 app?”中说道:
“Phoenix 同样拥有许多 Ruby on Rails 的功能特性,比如,强大的 MVC 模型、集成的 ORM 以及路由系统等等。基于 Elixir 的 Phoenix 在并发和分布式计算上更有优势。对于应用程序来说,这意味着开发者能使用多个已激活的 web socket,举例来说,当有效连接太多时,Rails 应用程序就容易挂掉。而 Phoenix 使用轻量级的 erlang 进程来处理这些任务,在单台机器上能同时运行数以百万计的这样的 erlang 进程。”
此次 Phoenix 的发行版本还增加了许多用于提高开发效率的功能特性,包括且不限于:
- 通过 mix phoenix.new my_app 生成项目
- 通过 Ecto 集成了 Postgres、MySQL、MSSQL 和 MongoDB 资源
- 支持资源生成器,例如可用
mix phoenix.gen.html User users name:string age:integer 来完成项目引导,并获得
phoenix 的最佳输入输出
- 可使用 Erlang OTP 实时查看运行程序并进行问题诊断
Phoenix 社区在 freenode IRC 上的频道为#elixir-lang ,获取更多的信息请点这里。
活动推荐:
2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。
评论