`
ytfei
  • 浏览: 86674 次
社区版块
存档分类
最新评论

Ruby 初探1

    博客分类:
  • ruby
阅读更多

以下内容来自网络:

 

一、介绍

 

在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不能代替人,但是它把人从次要复杂性的泥潭之中解救了出来。 

参考资料:南京赛威信息科技

 

 

二、

学习书籍推荐:http://www.iteye.com/topic/107479 

分享到:
评论

相关推荐

    ruby笔记1ruby笔记1ruby笔记1

    ruby笔记1ruby笔记1ruby笔记1ruby笔记1ruby笔记1ruby笔记1

    ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码

    ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码

    ruby DBI ruby DBI ruby DBI

    ruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ...

    Ruby完全自学手册 下

    《Ruby完全自学手册》是一本完全覆盖Ruby和Ruby on Rails的完全自学手册。《Ruby完全自学手册》的特色是由浅入深、循序渐进,注重理论和实践的结合。虽然定位为入门手册,但是依然涉及许多高级技术和应用,覆盖到的...

    Ruby 基础语法 视频教程1

    ruby-4-variables.mp4 ruby-5-variables-rules.mp4 ruby-6-expression.mp4

    ruby2ruby.zip

    ruby2ruby 提供一些用来根据 RubyParser 兼容的 Sexps 轻松生成纯 Ruby 代码的方法。可在 Ruby 中轻松实现动态语言处理。 标签:ruby2ruby

    ruby源代码 ruby源代码 ruby源代码 ruby源代码2

    ruby源代码 ruby源代码 ruby源代码 ruby源代码2

    Ruby编程,Ruby编程,

    Ruby编程,Ruby编程,Ruby编程,Ruby编程,Ruby编程,

    ruby测试代码1

    ruby测试代码1

    ruby源代码 ruby源代码 ruby源代码 ruby源代码4

    ruby源代码 ruby源代码 ruby源代码 ruby源代码4

    Ruby-rubybuild编译和安装Ruby

    ruby-build - 编译和安装Ruby

    ruby源代码 ruby源代码 ruby源代码 ruby源代码3

    ruby源代码 ruby源代码 ruby源代码 ruby源代码3

    ruby打包文件ruby入门通

    ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件ruby打包文件

    ruby学习资源(Programming Ruby, Learning Ruby, The Ruby Way)

    内含以下4个文档: 1、Addison.Wesley.The.Ruby.Way.2nd.Edition.Oct.2006.chm 2、O'Reilly.Learning.Ruby.May.2007.chm 3、Programming Ruby 2e.pdf 4、ruby中文文档.chm

    Ruby Under a Microscope

    ruby interpreter 原理探討 At first glance, learning how to use Ruby can seem fairly simple. Developers around the world find Ruby’s syntax to be graceful and straightforward. You can express ...

    Ruby语言中英文教程.rar

    内含 12 本 Ruby 语言中英文教程资源,本资源下载后解压缩将得到以下图书: Programming Ruby 2nd.pdf Agile Web Development with Rails 2nd ed.pdf Agile Web Development ...RubyCourse_1.0-1.pdf rubyonrails.pdf

    Ruby中文文档.zip

    Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp ...

    ruby-2.6.6.1.rar

    一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp 语言。...

    ruby开发的基本流程.doc

    Ruby开发流程涉及多个关键步骤,从环境搭建到项目部署,下面是一个大致的流程概述: Ruby开发环境搭建:首先,需要在计算机上安装Ruby开发环境。推荐使用macOS或各种发行版本的Linux作为运行环境,尽管Windows下也...

Global site tag (gtag.js) - Google Analytics