深入体会Ruby的String类型有哪些强项

Python027

深入体会Ruby的String类型有哪些强项,第1张

在Java中,对于字面量的字符串,jvm内部维持一张表,因此如果在Java中,str1和str2是同一个String对象。而在Ruby中, str1和str2是完全不同的对象。同样,在java中对于String对象的操作都将产生一个新的对象,而Ruby则是操纵同一个对象,比如:

str="abc"

str.concat("cdf")

此时str就是"abccdf"。Ruby对String是怎么处理的呢?我们只谈谈c ruby中的实现,有兴趣的先看看这篇文章《管窥Ruby——对象基础》。在ruby.h中我们可以看到String对象的结构,Ruby中的对象(包括类也是对象)都是一个一个的struct,String也不能例外:

struct RString {

struct RBasic basic

long len

char *ptr

union {

long capa

VALUE shared

Ruby on Rails其实是一套以Ruby程式语言开发的网页应用程式架构。Ruby是由日本人松本行弘於1995年发布的一套程式语言,特色是完全物件导向、灵活有弹性、有丰富的程式库、简单易读的语法,还有各种小诀窍能够让程式码更简短。

而Ruby on Rails是由37 Signals的David Heinemeier Hansson在开发BaseCamp线上专案管理软体时,因为对既有的框架不满意,而为资料库网站开发量身定做出来的架构。Ruby on Rails於2004年7月时以开放原始码的方式发布,很快的就得到广大的回响。在Windows, Mac, Linux上都能够运作,资料库与Web Server的选择性也很多。

Ruby on Rails的观念在於利用惯例优於组态(convention over configuration),软体精简(less software)与越快越有生产力(programmer happiness ultimately leads to better productivity)。

Ruby on Rails是完全的Model-View-Control架构,资料库、程式逻辑与呈现完全清楚的分离。在档案名称与目录结构方面,也都定义的很清楚。资料库这部份(Active Record)是Ruby on Rails最强大的功能,只要设定好资料库连结,之后建立、调整Schema或是其他存取都是直接由Ruby on Rails去控制,不用由我们亲手去动资料库,资料库里的栏位也能和Ruby on Rails里的变数直接对应,不用再像用php的时候,和SQL语法一大堆冒号、引号奋战。另一个可以加快速度的特点在於自动产生使用者界面的程式码(scaffold功能),这代表我们只要把定义好资料库和要作的动作,Ruby on Rails就会为我们产生使用者界面,我们只要专注在真正要解决的问题上,而不用花太多时间在建立使用者界面上。

在测试方面也是Ruby on Rails的强项,它可以为我们自动建立测试档案及资料库,加速测试流程,确保程式品质。

不过它能带来的好处,还是要亲自试试看才知道!下一篇在和大家介绍怎麼用最简单的方式在Mac OS X建立Ruby on Rails的开发环境。

Ruby on Rail中文网站

http://rubyonrails.org.tw/

PS: 官方网站上的影片范例很精彩,15分钟就能开发一个部落格系统、5分钟就写好一个Flickr Mashup。

-----------------------------------------

一定要单独问,rail应该是支架的意思吧。不过不是很适合这样单独翻了。

Ruby 是开源的,在Web 上免费提供,但需要一个许可证。 Ruby 是一种通用的、解释的编程语言。 Ruby 是一种真正的面向对象编程语言。 Ruby 是一种类似于 Python 和 Perl 的服务器端脚本语言。 Ruby 可以用来编写通用网关接口(CGI)脚本。 Ruby 可以被嵌入到超文本标记语言(HTML)。 Ruby 语法简单,这使得新的开发人员能够快速轻松地学习 Ruby。 Ruby 与 C++ 和 Perl 等许多编程语言有着类似的语法。 Ruby 可扩展性强,用 Ruby 编写的大程序易于维护。 Ruby 可用于开发的 Internet 和 Intranet 应用程序。 Ruby 可以安装在 Windows 和 POSIX 环境中。 Ruby 支持许多 GUI 工具,比如 Tcl/Tk、GTK 和 OpenGL。 Ruby 可以很容易地连接到 DB2、MySQL、Oracle 和 Sybase。 Ruby 有丰富的内置函数,可以直接在 Ruby 脚本中使用。