经过多年的策划,最新的网页应用程序开发框架RubyonRails7.0,实现了真正全端网页开发方法,官方提到,在数年前,这个全端愿景是不可能实现的,因为Rails并没有到位的核心技术,但是随着浏览器对ES6/ESM的支持、HTTP/2广泛采用以及更多的新标准,使得这项目标成为可能。
Rails7特别改进前端开发,其提供一种无Node的默认方法,在不牺牲对Npm组件和现代JavaScript访问的状况下,使得前端开发更为方便。其所包含的网页前端开发框架Hotwire,由Turbo和Stimulus组合而成,这提供了出色的开发体验,此为用来取代Turbolinks和RailsUJS的Rails应用程序默认选项。
Rails7所加入的Hotwire,是由RubyonRails的创始人DHH(DavidHeinemeierHansson)所创建的Basecamp,在年底的时候,所发布用来减少使用JavaScript,并且加速页面加载的前端框架,其通过发送HTML来达到快速加载页面的效果。由于Hotwire不使用大量JavaScript,因此能加快加载初次访问的页面,且通过服务器渲染模板,开发者仍可以灵活地开发网页程序,来提升生产力。
另外,Webpack不再紧密捆绑Webpacker,开发者可以使用任意JavaScript打包器,像是esbuild、rollup.js甚至是Webpack,借由新的jsbundling-rails集成,开发者可以随心所欲使用熟悉的工具。在CSS打包工具也一样,使用Rails7时,只要开发者能够良好编译应用程序CSS文件,便能够顺利集成在一起,无论是使用TailwindCSS、Bootstrap还是PostCSS都没问题。
Rails7.0默认了前端开发最佳选项,官方提到,不使用Node带来更简单的开发体验,具有同样强大的功能,但比起过去更轻巧更符合规范。
除了前端开发大革新之外,取自Basecamp所开发的电子邮件应用Hey,Rails7.0在ActiveRecord中添加了加密属性,因此开发者的应用程序在静态和传输中,都能够对资料进行加密,官方提到,加密带来最直接的好处,是提供额外的安全保护,当数据库遭到攻击时,即便攻击者取得数据库、快照甚至是应用程序日志,也无法理解其中的信息,而且即便不考虑攻击事件,检查应用程序日志时,也不应该暴露用户个人信息。
而且通过使用ActiveRecord加密功能,开发者可以在程序代码等级,定义应用程序中的敏感信息组成,而这能够控制访问这些信息的方式,并且依此构建相关的服务。