Phoenix 1.0 – 现代 Web 框架正式发布

发布于 2015 年 8 月 28 日,作者 Chris McCord


经过一年半的开发,2500 次提交和 30 个版本发布,Phoenix 1.0 终于来了!Phoenix 1.0 的发布标志着 Phoenix 准备好征服世界,无论您是构建 API、HTML5 应用程序还是为原生设备构建网络服务。Phoenix 使用 Elixir 编写,拥有简洁的语法、高效的工具和快速的运行时。在此过程中,我们见证了 许多公司在生产环境中使用 Phoenix 的成功案例,并在两届 ElixirConf 上展示了 Phoenix 的进展。

致谢

在深入了解 Phoenix 的一些出色功能之前,我们首先要感谢所有帮助实现这一目标的人。

José Valim

尽管他可能会试图淡化自己的努力,但 José 对 Phoenix 的贡献是不可估量的,为 Phoenix 铺平了道路。他不仅编写了 Elixir,还用 Plug 库启动了 Phoenix,用 Ecto 开启了数据库访问,并且为 Phoenix 本身贡献了数千行代码。在此过程中,他精心打造了 Elixir 版本,并帮助构建了一个令人愉快的社区,我很荣幸能成为其中的一员。感谢你!

phoenix-core

核心团队献出了无数个夜晚和周末,才让我们走到今天。无论是 Lance Halvorsen 编写精彩的 Phoenix 指南,Jason Stiebs 帮助完善了最初的通道层,Eric Meadows-Jönsson 致力于 hex.pm 并确保我们对旧版浏览器有良好的回退机制,还是 Sonny Scroggin 在多个领域做出贡献的同时培训新手,这些人都是今天 Phoenix 的功臣。

实时 Web

从一开始,Phoenix 就致力于应对实时 Web 的挑战。我们的目标是让实时通信变得像编写 REST 端点一样简单。通过通道,我们实现了这一目标。这段 90 秒的协作编辑片段展示了 Phoenix 的可能性

通道为服务器提供了一种多路复用连接,用于双向通信。Phoenix 还抽象了传输层,因此您不再需要担心用户如何连接。无论是 WebSocket、长轮询还是自定义传输,您的通道代码保持不变。您可以针对抽象的“套接字”编写代码,Phoenix 会负责其余的工作。即使在机器集群中,您的消息也会自动在节点之间广播。Phoenix 的 JavaScript 客户端还提供了一个 API,使客户端/服务器通信变得非常简单。以下是示例代码

超越浏览器

作为一种“Web 框架”,Phoenix 针对传统的浏览器应用程序,但所谓的“Web”正在不断发展。我们需要一个能够与之共同进化的框架。Phoenix 通过连接浏览器、iPhone、Android 手机和智能设备等设备,超越了浏览器。Justin SchneckEoin ShanaghyDavid Stump 为 Phoenix 实现了这一目标,他们为 objC、Swift、C# 和 Java 编写了通道客户端。为了更好地理解其意义,Justin 演示了一个 Phoenix 聊天应用程序,它运行在 Apple Watch、iPhone 和 Web 浏览器上,所有这些都由原生 Phoenix 通道客户端驱动。

短期和长期的生产力

除了高连接性外,Phoenix 还提供了一组舒适的功能,让您能够快速上手并与您的团队一起提高效率。但是,软件不仅仅关乎短期利益。Elixir 利用久经考验的模式来实现长期的项目成功和可维护性。Erlang 运行时专为系统持续运行多年而设计,同时将停机时间降至最低。利用这些模式和运行时创新,您可以部署自我修复的系统,支持热代码上传,并拥有支持 _数百万_ 个连接用户的功能。Phoenix 提供以下开箱即用的功能:

短期生产力

  • 使用 mix phoenix.new my_app 生成项目
  • 开发环境中的实时重载。更改任何模板、视图或资产,您将在浏览器中立即看到结果
  • 通过 Ecto 集成,支持 Postgres、MySQL、MSSQL 和 MongoDB 资源
  • 资源生成器,例如 mix phoenix.gen.html User users name:string age:integer,用于引导项目并学习 Phoenix 最佳实践
  • 使用 EEx 模板的预编译视图层,实现闪电般的响应速度,通常以 _微秒_ 为单位
  • 通道,用于实时通信
  • 等等

长期生产力

下一步

我们只是刚刚开始使用 1.0 版本。有了强大而稳定的核心,我们将构建通道存在功能、国际化等功能。请务必 注册参加 10 月的 ElixirConf,了解 Phoenix 1.1 及其后版本的未公布计划以及 Elixir 生态系统中发生的其他有趣事情。José Valim 还将在 9 月 4 日举办一个 Phoenix 网络研讨会,讨论 Phoenix 并回答观众的问题。

入门

那么,您如何加入这个有趣的旅程呢?Phoenix 指南 将带您了解基础知识并快速入门。如果您是 Elixir 新手,以下是一些资源,可帮助您在开始使用 Phoenix 之前快速掌握 Elixir

这是一段非凡的旅程,我们才刚刚开始。让我们向世界展示 Elixir 和 Phoenix 的强大功能。

–Chris