考虑解耦架构的 Drupal 社区

已发表: 2015-12-12
碟形分离 - 图片来源:Memory Alpha
飞碟分离——信用:记忆阿尔法

本周早些时候,Drupal 的创建者和项目负责人 Dries Buytaert 在他的博客上发表了一篇题为“我们应该将 Drupal 与客户端框架解耦吗? ”的文章,讨论了 Drupal 架构的未来。

Buytaert 认为,鉴于用户与 Facebook 新闻提要、Gmail 收件箱和 Twitter 的实时流交互的体验,用户已经开始期待网站提供类似应用程序的体验。

“Drupal 的许多管理界面和 Drupal 站点都可以从类似的无缝、即时用户体验中受益,”Buytaert 说。 “作为 Drupal 的项目负责人,我问自己:我们的社区如何才能感到有动力和鼓励开始构建丰富的用户体验?”

将 Drupal 与客户端框架解耦的讨论出现在一个有趣的时刻,因为 Matt Mullenweg 的 State of the Word 地址预示着 JavaScript 将成为 WordPress 和 Web 的未来。 他的结束语鼓励开发人员学习 JavaScript 并开始为未来构建基于 WordPress 的应用程序。

Buytaert 帖子的评论者与 Automattic 发布的 Calypso 相关:

感觉这篇文章至少部分是对 WordPress 宣布 Calypso 的反应。 希望我们可以专注于为 Drupal 的未来做出正确的决定,而不是仓促地对另一个 CMS 正在做的事情做出反应,尤其是当您一遍又一遍地谈论 WordPress 如何不是 Drupal 的真正竞争对手时。

Buytaert 坚持认为,他对 Drupal 的考虑是独立的,这不是他第一次写关于分离后端和前端的文章。

“至于 WordPress 宣布 Calypso ——我实际上是在宣布 Calypso 之前开始写这篇博文的,”他说。 “我不相信我的职位受到卡里普索的影响。”

Buytaert 在本次讨论的开场白中指出,用户已经将类似应用程序的体验视为理所当然的网站交互的基准。 整个网络都在朝着这个方向发展,如果想要保持相关性,像 Drupal 和 WordPress 这样的 CMS 现在就被迫爬上这座山。 这两个项目都在后面,试图赶上用户的期望。

标准化框架的挑战

在很多方面,Buytaert 帖子上的讨论都与 WordPress 的发展方向有关,尤其是考虑对特定框架进行标准化。

Buytaert 提倡逐步解耦 Drupal 的管理员和最终用户体验,同时还支持在平台之上构建完全解耦的体验。 他建议做到这一点的最佳方式是“正式标准化功能齐全的 MV* 框架(例如 Angular、Ember、Backbone 和 Knockout)或基于组件的视图库(例如 React、Vue 和 Riot)。 ”

由于他不是前端开发人员,Buytaert 正在征求 Drupal 社区的意见,以了解哪种框架最适合渐进式解耦。 他还承认从长远来看可能不建议对特定框架进行标准化的原因:

尽管有潜在的好处,但也有充分的理由不采用单一的客户端框架。 正在以不可持续的速度创建新的前端框架; 每九个月就会有一个新孩子出现。 像 Drupal 这样大的项目在无法保证其寿命的情况下很难采用单一技术。

尽管如此,Buytaert 认为,对框架进行深思熟虑的选择和定期重新评估可以克服这些缺点。

在鼓励 WordPress 开发人员学习 JavaScript 时,Matt Mullenweg 并没有确定一个单一的框架,而是将其保持开放。 由于 Automattic 的 Calypso 是基于 React 构建的,因此它似乎是早期的最爱。

如果 WordPress 核心最终采用 Calypso(或类似 Calypso 的替代方案)背后的技术来提供更好的发布体验,核心是否会标准化框架/库,还是会继续支持和鼓励扩展开发人员使用任何框架?

一位评论者指出 Drupal 选择框架的潜在问题,有些人可能认为这是官方认可:

已经有很多企业项目使用解耦的 Drupal 方法,它们自然会使用很多不同的框架,但我看到使用最多的是 React。 事实上,在我现在正在进行的项目中,该组织正在全力以赴地使用 React。 例如,如果 Drupal 选择了 Angular,它将如何影响那些在其他框架上进行大量投资的组织? 也许我不完全理解它是如何工作的,但是单一框架的选择似乎会造成分裂和破坏——破坏性很差,而不是 SV 方式。

我认为让解耦架构变得更容易很好,应该是 Drupal 做的事情,但它应该以一种与所使用的 FE 框架无关的方式来做。

Buytaert 确定了一些使用 Drupal 核心交付客户端框架的替代方案,包括推荐一个框架但不附带它,或者将其包含在核心中,但可以很容易地替换为开发人员选择的另一个框架。

他的帖子和随后的评论是一场生动、深思熟虑的讨论的开始,这将有助于塑造 Drupal 开发的未来。 今天,Buytaert 正在征集提案,为渐进式解耦的工作版本勾勒出原型。

WordPress 和 Drupal 目前都在努力实现技术飞跃,为用户提供更多类似应用程序的体验。 围绕解耦 Drupal 架构的讨论对于 WordPress 开发人员来说是值得关注和学习的重要话题。