Ruby on Rails 7.1 扩充Docker支援,并计划采用Trilogy作为预设MySQL转接器

2023年 9月 25日 81.7k 0

2023年9月19日,Ruby on Rails 7.1 Beta版本发布,引进多项重要更新,包括改良Docker部署、非同步查询强化、支援MySQL转接器Trilogy及新的JavaScript执行环境Bun。

Ruby on Rails即将迈入20岁,官方着手准备7.1庆生版本,现在先释出Beta版本供开发者测试。Ruby on Rails 7.1 Beta版本加入了一系列重要更新,其包括改善Docker部署,强化身分验证工具、扩充Active Record的非同步查询功能,并新增MySQL转接器(Adapter)Trilogy的支援。此外,这个版本还在Active Job和自动载入方面进行最佳化,还加入了新的JavaScript执行环境Bun。

当开发者使用指令建立新应用程式时,Ruby on Rails现在会自动生成所有需要的Docker档案,供开发者使用Kamal或是其他以Docker为基础的工具来部署应用程式。官方提到,这些Docker档案都经过调整,使其适用于生产环境,具备正确的快取层并通过多阶段建构减少映像档大小,而且无论开发者是否使用JavaScript建置环境,Docker档案都会包含所需相依项目。

在现代网页开发中,JavaScript建置环境已经变得相当重要,可用来转换、压缩甚至是最佳化前端程式码,而在使用Docker时,Docker档案需要确保容器内包含正确的工具和设定,来处理JavaScript工作流程。Ruby on Rails所生成的Docker档案不只考虑到Rails应用程式在伺服器端的部分,同时考虑前端建置需求,Ruby on Rails 7.1这项新功能,无论开发者在Rails应用程式中是否使用JavaScript建置流程,其生成的Docker档案都能确保应用程式在容器中顺利运作。

Ruby on Rails新版本内建对MySQL转接器Trilogy的支援。Trilogy是由GitHub开发,目标是成为mysql2的替代品,提供更好的效能、灵活性,以及嵌入的简易性。官方提到,现在GitHub与Shopify生产环境都已经采用Trilogy,官方提到,在此新版Rails先提供Trilogy支援,而下一个主要版本,Trilogy可能就会成为预设选项。

Ruby on Rails中负责操作资料库和定义资料库模型的核心元件Active Record,能够将资料库中的资料表映射到Ruby物件中,让开发者能够以物件导向的方式操作资料库。而在7.1版本中,Active Record非同步查询获得强化,开发者能够在同一时间内,平行执行多个、速度较慢的查询,特别是那些着重运算的操作,并以非同步的方式继续处理其他请求。

同时,Ruby on Rails也支援了对复合主键功能。依据Shopify的实际经验,复合主键能提高常见的查询效能5到6倍,并且慢速查询的数量减少80%。尽管复合主键使资料插入操作明显变慢,但是当读取操作远多于写入的大型资料表来说,这样的效能提升非常有价值。

Ruby on Rails中的Active Job增加了一种新方法,使得伫列大量工作更有效率,开发者可以一次性将一大批工作放入伫列中,减少伫列资料储存多次往返所产生的成本开销。另外,新版本还增加新的配置方法,强化应用程式自动载入功能,特别是包含lib目录的情况。

值得注意的是,Ruby on Rails从这个版本开始支援使用Bun作为JavaScript执行环境,生成新的应用程式。Bun是一款诉求快速的JavaScript执行环境与多合一工具包,才刚释出1.0正式版,官方称Bun可达Node.js的5倍速。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论