在理论上讨论REST & HATEOAS或描述超媒体驱动应用架构都很好,但在软件开发中,最终重要的是实际效果:它有效吗?它能改进现状吗?
我们可以肯定地说htmx有效,因为我们自己的软件中就在使用它。但很难说它比其他方法有改进,因为我们还没有一个公平的比较来说明htmx与例如React相比如何。
直到现在。
David Guillot在Contexte展示了我们称之为"htmx演示之母"的内容,在DjangoCon 2022上:
在真实SaaS产品中从React转向htmx:我们做到了,而且很棒!
我们迈出了这一步,用简单的Django模板和htmx在几个月内替换了我们SaaS产品经过2年开发的React UI。我们想与您分享我们的经验,提供各方面的具体指标,并说服您的CTO!
您应该在这里观看整个演示:
这些数字令人瞠目结舌,反映了Contexte应用程序非常适合超媒体:它是一个以内容为中心的应用程序,显示大量文本和图像。我们并不期望每个Web应用程序都能看到这类数字。
然而,我们确实期望许多应用程序通过采用超媒体/htmx方法能看到显著改进,至少在其系统的部分功能上。
迁移中一个容易被忽视的方面是它对团队结构的影响。当Contexte使用React时,后端和前端之间存在严格的分工,两名开发人员完全负责后端,一名完全负责前端,还有一名是"全栈"开发人员。
(这里的"全栈"意味着他们能够同时在前端和后端工作,因此能够独立开发跨越整个"堆栈"的功能。)
在迁移到htmx后,整个团队变成了"全栈"开发人员。这意味着每个团队成员都更有效率,能够贡献更多价值。这也使开发更有趣,因为开发人员可以拥有整个功能。最后,它可以带来更好的优化软件,因为开发人员可以在堆栈的任何地方进行优化,而无需与其他开发人员协调。
演示的幻灯片可以在这里找到(一定要查看优秀的演讲者注释!)
https://docs.google.com/presentation/d/1jW7vTiHFzA71m2EoCywjNXch-RPQJuAkTiLpleYFQjI/edit?usp=sharing