关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » UI前端 »Rails 5 几大新特性总结

    Rails 5 几大新特性总结

    2015-06-27 00:00:00 出处:ITJS
    分享

    Rails 5 即将在 2015 年秋季发布,新版本拥有很多令人激动的特性。假如你使用 Rails 开发商城,那你必须使你的应用准备好迎接新的 Rails 新特性。

    别担心!我们会在新版本到来之前让你了解新特性,现在就让我们让你了解有哪些新特性,这将会大大提高你的开发能力。

    主要改进

    有很多新特性将从根本上改变我们使用 Rails 的方式。比如说 Action Cable 和改进的 Turbolinks 新特性,能够立马提高我们开发 Rails 应用的工作流程。让我们看一些这两个新特性的细节。

    合并 Rails API

    在过去的几年中,得益于 Backbone.JS 和 Angular.JS 类库,单页面应用程序(SPA)得到了发展。我在近期开发的几个单页面应用程序借助了 Rails 的威力。我曾经尝试涉猎 Sinatra 项目甚至纯粹的 Rack 项目,但是最终的结果都是写了大量 的boilerplatee 项目。我的做法没有参照 Rails,而且需要处理很多安全缺陷。我不得不在 rails-api 的社区驱动上层和传统的 rails 上进行开发。

    在 Rails 5 中,rails-api 被整合到核心包中,并且能够像简单 JSON API 那样子使用 Rails。结合个人经历,我认为这是一个伟大的改进。我不再用为我的 JavaScript 客户端建立后台 API 发愁了。

    Ruby 2.2.1

    Ruby 2.2 是 Ruby 社区的一个新版本。不仅仅带来了Ruby巨大的性能提升,还引入了大量的新功能。此外,symbols的垃圾收集获取了广泛的好评。有这样一个传说,当这个声明发布的时候,龙族的Valeria在Seventh王国落下了玫瑰雨。OK!也许我扯得太远了,但是一般来说是这样的。

    注意:在迁移你的Rails 5之前你需要确认你的应用可以在Ruby 2.2.1上工作。

    由于这些增强功能,Ruby 2.2+对Rails 5来说是一个可靠的选择。Rails 5将仅支持在Ruby 2.2.1以上的版本上工作。

    Turbolinks 3

    传统的 web 应用一般整页加载,而导致响应比较慢。解决这个问题的一个办法是只加载最小的内容区域。 Turbolinks 只从服务器重载某个区域而不是刷新整个页面。 这个改进虽然一定程度上改进了性能,但是相对还是比较慢。Turbolinks 3 将解决这个问题。

    Tubolinks 3 让你可以有选择性的更新部分区域(通过 partial),而大部分页面都不更新。这很像 SPA的工作。你可以选择直接在 server 端完成所有这样的工作,是不是很棒?

    这是一个很赞的特性,目前的趋势朝着单页应用发展。然而,乍一看,它好像需要你去手动管理。这意味着你必须在特定的点上记住程序需要重载的部分。对我来说,这增加了不少代码累赘,而且容易搞砸。就我个人而言,我更喜欢使用React类似的东西,它通过虚拟DOM处理这个很在行。

    备注: React的工作方式是:它维护了一个所发生操作的虚拟DOM。然后,比较虚拟DOM和实际DOM的差异,然后只做需要的变更。它确保DOM只有在绝对必要才发生变化且是最小化的。

    不得不说的是,对于那些不喜欢围着JS转的人,这提供了一个即时的性能提升。

    Action Cable

    现在需要项目使使用 Websockets 来推送实时更新到客户端。虽然大多数浏览器已经开始支持这一点,我们任然需要服务器上一个强大的客户端来,管理用户和适当的发送更新信号。这种功能在一些新的框架中已经出现,像 Phoenix for Erlang。Rails 社区需不得不需要求助于第三方解决方案来实现这个,像Pushr.

    注意:对于新手来说,Websockets从浏览器开启双工连接是W3C的标准.服务器端可以在需要的时候和客户端通信(比如推送更新)并且同步更新客户端状态而不需要整个页面重新加载.举例来说,这就是Gmail如何在不重新加载真个页面的情况下加载新的邮件.

    通常 Rails 都提供了所有需要建立应用的开箱即用的工具。这也是它为什么如此流行的原因,特别是在一些初创团队。对 Websocket 支持的缺乏社是区中主要的不满的主要原因之一。看起来 Rails 核心团队已经注意到这一点并且开始讨论Action Cable。我们不得不等待一段时间看它是如何在现实生活中工作的,但它任然令人振奋。

    一些新的细节

    Rails 内置 Rake

    对于许多 Rails 新手来说,困惑的原因来自于不得不想出什么时候是有 rake 什么时候使用 rails。现在你不再需要在 rake 和 ralis 命令的上下文直接切换。你可以使用 ralis 命令运行所有的 Rake 任务。比如说:

    rake db:migrate

    将会变成:

    rails db:migrate

    这表面上看起来不太相同,但是对于许多初学者来说会变得简单。Rails 5 也会添加 restart 命令来快速重启应用。

    活动记录(Active Record)的改变

    一个改变是大多数时候忽略了对 tobelongs_to 的更新。当你创建一个 Student 类是 belongs_to 的关联类,创建一个 student 没有相关联的类是可行的。这导致了大量数据的不一致。对 Rails 5 来说,它的父类已经变成强制性的了。假如你在这里尝试插入一个空的记录,活动记录(Active Record)将会抛出异常。

    改变对控制器(Controller)的测试

    假如你测试你的模板并将其渲染到你的控制器,那你就做错了。对你的模板做个简单的变更将会留给你一个不眠之夜,抓住那个罪魁祸首。这就是为什么在 Rails 5 中,assert_template 被废弃的原因。但是,在目前你还会继续使用 assert_select 去检查特定的 DOM 元素。

    假如你已经在一个控制方法内测试了实例变量,你就应该记得 assigns 也应该消失了。

    假如你正在写控制器的测试用例,需要关注 cookies 的新命令,HTTP 返回值和 DB 调用。假如有得话,等等,这听起来像一个集合测试。好吧,你知道我想表达什么了。。。在将来的集成测试中会去掉控制器测试。

    注意:点击链
    Rails Dom testing取等多详细内容和最佳实践

    专注

    在 web 开发中 javascript 扮演着统治地位的今天,web 框架仅仅是在降低更少的 api 服务。Rails 核心团队意识到这点并且在朝向正确的方向。欢迎在评论中加入我们的讨论行列。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    正版 Windows 11产品密钥怎么查找/查看?

    还有3个月,微软将停止 Windows 10 的更新

    Windows 10 终止支持后,企业为何要立即升级?

    Windows 10 将于 2025年10 月终止技术支持,建议迁移到 Windows 11

    Windows 12 发布推迟,微软正全力筹备Windows 11 25H2更新

    Linux 退出 mail的命令是什么

    Linux 提醒 No space left on device,但我的空间看起来还有不少空余呢

    hiberfil.sys文件可以删除吗?了解该文件并手把手教你删除C盘的hiberfil.sys文件

    Window 10和 Windows 11哪个好?答案是:看你自己的需求

    盗版软件成公司里的“隐形炸弹”?老板们的“法务噩梦” 有救了!

    IT头条

    公安部:我国在售汽车搭载的“智驾”系统都不具备“自动驾驶”功能

    02:03

    液冷服务器概念股走强,博汇、润泽等液冷概念股票大涨

    01:17

    亚太地区的 AI 驱动型医疗保健:2025 年及以后的下一步是什么?

    16:30

    智能手机市场风云:iPhone领跑销量榜,华为缺席引争议

    15:43

    大数据算法和“老师傅”经验叠加 智慧化收储粮食尽显“科技范”

    15:17

    技术热点

    商业智能成CIO优先关注点 技术落地方显成效(1)

    用linux安装MySQL时产生问题破解

    JAVA中关于Map的九大问题

    windows 7旗舰版无法使用远程登录如何开启telnet服务

    Android View 事件分发机制详解

    MySQL用户变量的用法

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。