关闭 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 核心团队意识到这点并且在朝向正确的方向。欢迎在评论中加入我们的讨论行列。

    上一篇返回首页 下一篇

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

    别人在看

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

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

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

    帝国CMS7.5编辑器上传图片取消宽高的三种方法

    帝国cms如何自动生成缩略图的实现方法

    Windows 12即将到来,将彻底改变人机交互

    帝国CMS 7.5忘记登陆账号密码怎么办?可以phpmyadmin中重置管理员密码

    帝国CMS 7.5 后台编辑器换行,修改回车键br换行为p标签

    Windows 11 版本与 Windows 10比较,新功能一览

    Windows 11激活产品密钥收集及专业版激活方法

    IT头条

    无线路由大厂 TP-Link突然大裁员:补偿N+3

    02:39

    Meta 千万美金招募AI高级人才

    00:22

    更容易爆炸?罗马仕充电宝被北京多所高校禁用,公司紧急回应

    17:19

    天衍”量子计算云平台,“超算+量算” 告别“算力孤岛时代”

    18:18

    华为Pura80系列新机预热,余承东力赞其复杂光线下的视频拍摄实力

    01:28

    技术热点

    MySQL基本调度策略浅析

    MySQL使用INSERT插入多条记录

    SQL Server高可用的常见问题

    3D立体图片展示幻灯片JS特效

    windows 7上网看视频出现绿屏的原因及解决方法

    windows 7 64位系统的HOSTS文件在哪里?想用它加快域名解析

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

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