以一个javaEE程序员的身份来学ruby


    作为一个javaEE的程序员,在看关于ruby的资料的时候,不免会以一个对比的眼光来学习ruby,每看到一个和java不同的地方,就会产生某些想法,先记录下来,待往后来验证。另外,都说Ruby在不少地方都作的比java好,我也想知道Ruby比java究竟好在什么地方。java

     当我看到"Ruby!"*3这个表达式的返回值是"Ruby!Ruby!Ruby!"的时候,我不由想到,ruby的字符串应该不单单式支持+这一种运算符,还应该支持其余的运算符,看来学习ruby应该重点学下ruby对字符串的处理,ruby应该更重视对字符串的额处理.程序员

    当我看到 ruby 能够以这种形式:1.upto(3) {|x| puts x} 来实现循环的时候,我以为很难以想象,但仔细思考下,ruby无非是定义了这样的一种语法:他使用户能定义一种专门用于循环的方法,用户将具体的循环体写在后面的大括号中,而且定义了循环体接受参数的方式。这种方式有点相似于java中的回调函数,不过我仍是以为java的回调函数的方式更整洁,逻辑性更强。不过显然这种方式更间接,更容易使用。ruby

    Ruby关于程序编码的制定,规定了几种方式。Ruby自己是脚本语言,在要解释执行制定的程序的时候,要先肯定以什么样的编码方式来读取源文件的内容。文本文件没有一种标注自身编码方式的规范,真是太遗憾了。函数

    Ruby经过在标识符中加入标点符号的方式来表示此表识符的不一样含义:学习

 

 

    Ruby关于字符串的操做:编码

        “<<” 符号会将右侧的字符串追加到左侧的字符串后面。该符号修改了左侧的字符串,并不像java建立了一个新的对象并返回,因此该类操做并未产生大量的对象。spa

    既然说Ruby是纯面向对象的,那在学习其然和知识的时候,要先考虑下其相关的对象是什么。设计

    Ruby中的block能够当作方法的一个特殊的参数来理解。orm

    Ruby某教程中找到的,关于面向对象的经典的解释:对象

在面向过程的程序语言里,好比 C,注重的是程序逻辑,而不是数据自己。

那么在面向对象的语言里,对象是关键,也是重点。你能够从对象获得信息,可让对象执 行特定的任务;可让它执行某些运算并把结果返回给你;还可让多个对象协同工做。

在设计类的时候,首先要想到,基于这个类的对象会有哪些属性,以及这个对象能作什么。 对象所具备的属性也能够叫实例变量,它表明的是对象的状态。每一个类能够有好多实例对象, 并且每一个对象所具备的状态能够是不一样的。 而对象能执行的动做,咱们叫作方法,方法能改变对象的状态。 

    ruby中能够以这方式来定义属性的访问器:

attr_wirter :name 

attr_reader :name,width,height

    这种方式看起来比java简单,但java中的getter方法和setter方法中能够加入逻辑代码,而这种方式的属性访问器,我暂时还不知道该如何实现上述的需求。


    Ruby On Rails 中的ORM:

an ORM layer maps tables to classes, rows to objects, and columns to attributes of those objects. Class methods are used to perform table-level oper- ations, and instance methods perform operations on the individual rows. 

    Ruby On Rails 中的类继承了ActiveRecord



    Rails 的多对多关系用了中间表,解决了java中的n+1问题?????? 问下胡文杰

相关文章
相关标签/搜索