Ruby的单元测试

Python020

Ruby的单元测试,第1张

在Ruby中,一切都是对象。这里有一个例子来说明这个功能更直观的Ruby语言。

在Java中,寻找一些低于绝对代码。

诠释C = Math.abs(-20)

在Ruby语言,一切都是对象,意为“-20”这个数字是一个对象,因此,寻求Ruby代码中的一些绝对值的形式如下。

C = -20.abs这个代码不写在一种风格的它的一些更多的图像?

Rails框架是一个需要更现实和更高效的Web开发框架,Rails的结合了PHP系统(快速发展)和Java系统(正常计划)的优点的优势。

Rails是一个全栈MVC框架,换句话说,可以通过Rails的MVC模式,在各级实现,并让他们一起工作完美地结合在一起。

在Web应用程序项目MVC模式的实际开发中,如果你使用Java开发,需要使用Struts,Hibernate和Spring框架等,也是另外三个框架的集成开发的内容。而使用相同的项目Ruby语言开发,只需要使用Rails框架就可以完成。

回报率的Java高效率肯定比一个数量级更好的,这的确是事实,至少比PHP高几倍,这也是事实,在本文中不进行,但为什么开发效率如此之高,我也想谈一谈,当然我的看法,仍然是不成熟的意见:

之一,主要红宝石语言的语法是非常强大的,我记得庄威说表视图: “框架强化语法”,即语法相对薄弱,有必要帧N多,如果语法是非常强的,非常小的框架。这是在Java和红宝石的身体已经得到了验证。

1,Ruby的公开课VS Java进行AOP,反射,动态代理,字节码增强技术引进JDK1.3反射,它已经打开了通往一个静态类型语言Java的这种动态类型语法潘多拉的盒子。那么动态代理技术,字节码增强技术,静态和动态AOP技术开始出现,为什么?是需要动态地改变在程序运行时对象的行为。但对于红宝石是公开课,上水平,支持程序运行对象行为矫正的语法,所以需要很复杂的Java技术实现的功能,红宝石,这是很简单的就搞定了。

2,红宝石的鸭打字VS Java的IoC的,通用的Java的IoC不用说,在库中的通用层面开始广泛使用。 IoC的是基于对象的行为的对象组件,通用的交互式对象,以确定下不确定的情况下的对象的行为。但是红宝石对象行为是在运行理所当然的通用行为不是一成不变的,所以没有国际奥委会确定。

3,红宝石的块,封VS Java的匿名内部类春季模板确保每个人都非常深刻的印象,但这是红宝石标准用法,所以各种资源的释放,异常处理在支持的语法水平是非常好的,这是非常简单的事情。

4,Ruby的元编程VS Java的大家耳熟能详的,缺乏method_missing的机制,Java是没有那么强的元编程,许多红宝石魔力发挥出来。

5,VS编译语言的脚本语言,这也是一个很大的优势,脚本的速度真快。

二,Rails框架确实做了伟大的工作,

1,全stackrails是一个概念性的框架一致fullstack不知道为什么,在Java世界目前只充斥着这一项可以比和回报率的fullstack框架,但执行并不好赖夫(作者PHP翻过来,口水战爆发DHH)。因为在Java中不同的底层语法的支持然而,就是制订的RoR框架。因此,它是做使用Groovy的Grails,但这些家伙不辜负大家的期望。

2,COC不用说,许多Java框架开始吸收这一点。

3,良好的量身定制,提供所有的Web开发人员Web开发需要使用多种技术,绝对私密,如果Java的,这些东西需要整合或实现自己的,节省了不少的麻烦。

4,快速部署的发展和这个就不多说了测试,Java是太明显的缺点

关于颁发的“源效率”,我的理解是,轻微的复杂度降低到极端的ROR。直截了当地说,没有ROR太聪明,但我们已经做了愚蠢的事情太多了。人们各种各样的xml,标签库,单元测试困难......登录到到网的项目下进行的都知道的很多,这些小的情况下,是真正可怕的复杂性。 ROR没有降低软件,这是业务问题的固有的复杂性。但它减少了的无限复杂复杂趋于业务,有一个称为ROR的DSL网络的发展。解决业务问题,其中人才是人,ROR无法取代人,但它把人从二级复杂的泥潭救出。

参考:南京赛威信息技术

在Ruby中,一切皆是对象。下面举一个例子来更直观地说明Ruby语言的这一特点。

在Java中,求一个数的绝对值的代码如下。

int c = Math.abs(-20)

而在Ruby语言中,一切皆是对象,也就是说“-20”这个数也是一个对象,因此,求一个数绝对值的Ruby代码形式如下。

c = -20.abs 这样的代码编写方式是不是更形象一些呢?

Rails 框架是一个更符合实际需要而且更高效的Web开发框架,Rails结合了PHP体系的优点(快速开发)和Java体系的优点(程序规整)。

Rails是一个全栈式的MVC框架,换句话说,通过Rails可以实现MVC模式中的各个层次,并使它们无缝地协同运转起来。

在实际开发一个MVC模式的Web应用项目时,如果使用Java开发,需要用到Struts、Hibernate和Spring等框架,而且需要额外整合3个框架开发出的内容。而使用Ruby语言开发相同的项目时,只需要用到Rails框架就可以完成。

RoR的效率肯定要比Java高一个数量级,这确实是事实,比PHP至少也要高好几倍,这也是事实,这一点在这篇文章中不展开了,但是为什么开发效率这么高,我也想谈谈我的看法,当然还很不成熟的看法:

一、主要原因是ruby语言的语法非常强大我记得庄表伟说过一个观点:“框架是强化的语法”,意思就是说语法比较弱,所以才需要n多框架,如果语法很强,框架就很少。这一点在Java和ruby身上得到了验证。

1、ruby的open class VS Java的AOP,反射、动态代理,字节码增强等技术JDK1.3开始引入反射,就已经打开了Java这种静态类型语言通往动态类型语法的潘多拉魔盒。随后的动态代理技术,字节码增强技术,静态和动态的AOP技术开始层出不穷,为什么呢?就是需要在程序运行期动态改变对象的行为。但是对于ruby来说是open class的,语法级别上就支持程序运行期修改对象行为,所以Java需要很复杂技术才能实现的功能对于ruby来说就是非常简单的搞定了。

2、ruby的duck typing VS Java的IoC,泛型Java的IoC不用说了,泛型在库级别也开始广泛使用。IoC就是根据对象行为来进行对象组装,泛型就是在不确定对象行为的情况下确定对象的交互。但是ruby的对象行为是在运行期才确定的,天然就是泛型的,行为不是静态的,所以不需要IoC。

3、ruby的block,closure VS Java的匿名内部类大家对spring的Template肯定印象很深刻,但是这是ruby标准的用法,所以各种资源释放,异常处理在语法级别上就支持的很好,做起来很简单。

4、ruby的Meta programming VS Java缺乏method_missing机制大家耳熟能详了,Java没有这么强的Meta programming,很多ruby magic耍不出来。

5、脚本语言 VS 编译语言这也是一个很大的优势,脚本编程速度确实快。

二、rails框架确实做的很棒

1、full-stackrails是一个概念一致的fullstack框架,不知道为什么,在Java世界目前只有Rife这一个可以和RoR相提并论的fullstack框架,但是Rife的实现并不好(作者从PHP转过来的,和DHH爆发过口水战)。不过因为底层语法支持的不同,用Java是做不出来RoR框架的。因此也有人用Groovy做Grails,不过这帮人不太争气。

2、CoC这个不用说了,现在很多Java框架开始吸收这一点。

3、为web开发良身打造web开发需要用到各种技术全部提供,绝对的贴心,如果用Java,这些东西都需要自己集成或者自己实现,省了一大堆麻烦事。

4、开发测试部署快速这个不说了,Java劣势太明显了

关于“效率提高的来源”问题,我的理解就是次要复杂性被ROR降低到了极致。说的难听一点,不是ROR太聪明,而是我们以前做得蠢事太多了。各种各样的xml, taglib,单元测试困难 ... ...

做过项目的人都知道这些次要复杂性很多情况下真的是要命的。ROR没有降低软件的内在复杂性,也就是业务问题。但是它把复杂性降低到无限趋近于业务复杂性,也有人称ROR是Web开发的DSL。而解决业务问题正是人发挥聪明才智的地方,ROR不能代替人,但是它把人从次要复杂性的泥潭之中解救了出来。