Phoenix Web 框架取得重大进展,1.0 版本发布了

阅读数:1526 2015 年 9 月 6 日

话题:JavaScript语言 & 开发

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,获取更多的信息请点这里

查看英文原文:Phoenix Web Framework Makes 1.0 Milestone