posts - 114, comments - 1497, trackbacks - 85, articles - 9
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

学习 Ruby on Rails 真的很爽!

Posted on 2007-02-24 10:42 Cat Chen 阅读(3417) 评论(26)  编辑 收藏 所属分类: WebRubyRails

最近开始看《Agile Web Development with Rails 2nd Edition》,发觉感觉真的非常爽。虽然至今连Ruby语法都没完全懂,懂了的也没记住多少,但在看书过程中你会乐意模仿书中所有的例子,一个一个完成看看结果是怎样的,观察这个神奇的框架如何将你所书写的一点点代码转变为使用ASP.NET要不少代码才能实现的功能。

我不知道它是怎么实现的,但暂时我还不觉得我有必要知道它是怎么实现的,因为那种流畅的感觉太好了,所谓的"Convention over Configuration",让我完全可以凭感觉去写,而不是好像用ASP.NET的时候那样想着“你这buggy又trappy的家伙,幸好我知道你底层是怎样实现的,我可不会随便踩进你的陷阱”。既然我不用了解它,就能流畅用好,为什么我还急着去了解那么多呢?

至于"Don't Repeat Yourself"的好处,暂时没体会到。ASP.NET中要坚持DRY原则的话,要在设计上下点功夫,而我现在用RoR才写那么几行代码,根本谈不上设计。

已经很久没有一本书让我阅读过程之中有如此的兴奋感了。之前看《Programming Microsoft ASP.NET 2.0 Applications: Advanced Topics/ASP.NET 2.0高级编程》,虽然也很有feel,但那种feel不是学到新东西的兴奋,而是自己辛苦用reflector看代码查资料领会到的知识得到印证的感觉,觉得有这样一本系统讲述这些底层知识的书在手边,快速看一遍,以后就知道如何查找了,比用reflector慢慢最终慢慢理解要好多了。这种感觉准确来说,只是所谓的“松一口气”,ASP.NET给入门者的印象是很简单,然后你发现很复杂,接着你松一口气因为有人帮你将复杂的知识归纳好印成一本书方便你查阅。

看现在这本700多页的RoR的书,我能够一个晚上看50多页,因为一旦开始看了就真的不想停手。曾经有人评价RoR能让程序员惊叹“这不就是我梦寐以求的Web开发方式”,而阅读这本书的过程就让我信服了这个评价,并且推动着我一直想看下去,因为我总会想着“还有什么我梦寐以求的事情还没被我发现呢”。

Feedback

#1楼    回复  引用  查看    

2007-02-24 15:18 by JesseZhao      
我也翻阅了一点这本书,感觉还不错

#2楼    回复  引用  查看    

2007-02-24 18:59 by flyingchen      
原来我还快一步了,呵呵:)

#3楼    回复  引用  查看    

2007-02-24 19:16 by deerchao      
先别这么乐观,也许只是没有进行深层次地应用所表现出来的假像而已.
其实跟着asp.net的入门书一步一步地学习也可以觉得asp.net很简单的,不是吗?

一个框架,如果让做一些事情方便,那肯定会让做另一些事麻烦的.

#4楼 [楼主]   回复  引用  查看    

2007-02-24 20:02 by Cat Chen      
@deerchao
我用了3年ASP,然后又弄了1年ASP.NET,我都还是写文章说“我不懂ASP.NET”,然后一直研究,才有那么一些“深入理解”系列的文章。我一开始就不觉得ASP.NET是简单的,就算以3年ASP经验去看,每一个ASP.NET所谓的feature都是表面简单实际上难用的。

然后我现在以这么几年的Web开发经验去看RoR,就真的觉得在大多数场合它都能提供便利,所以我才赞这种技术的。

#5楼    回复  引用  查看    

2007-02-24 20:46 by deerchao      
我也是从asp走过来的,不可否认的是Web Forms确实让一些事情变得容易了许多,比如封装好的控件用起来很方便,比如集成的MemberShip Provider使跨应用的用户身份集成更容易实现,比如能比较方便地引入Ajax,等等.

当然,当你深入应用这些特性时会发现不少的问题:例如页面的生命周期与ViewState的一致性问题.但是,这是为了获得"控件封装Html"效果的必然支出,是无可避免的.Java世界里不是也出了个JSF嘛,据我所知,也是跟Web Forms很类似的一个东西,有其优点,就有其缺点.

Ruby On Rails我没有使用过, 只是从一些资料上知道了它的一些概念, 现在我也在学习.net版的ROR: Castle MonoRail. 说实在的,我觉得如果每个项目里你都得用HTML/Css/Javascript写一遍树控件的表现代码,写一遍菜单的表现代码,写一遍Tabs的表现代码;写一遍用户管理的代码(而且我们的代码未必有Asp.net集成的代码那么高的安全性/性能);我觉得这其实也是一个很麻烦的事情,对不对?

ROR给我的感觉就是代码生成器很厉害,至于其宣称的MVC模式,我觉得其实在Asp, Asp.net里都可以做到,只是Asp/Asp.net不强制你使用这样的模式而已.

#6楼    回复  引用  查看    

2007-02-25 10:18 by JesseZhao      
我也是asp过来的,看来这里asp的哥们很多啊

#7楼 [楼主]   回复  引用  查看    

2007-02-25 12:24 by Cat Chen      
@deerchao
Web Form确实为了表面的易用性而引入了内在的复杂性。例如Init和PreRender不能改动ViewState,这就增加了耦合度,让使用者的ViewState的读写和页面生命周期耦合起来。

RoR让我觉得好的地方就是它类似ASP那样保持着低耦合,即使完全不是MVC,好像ASP那样将代码全写到View里面也没问题,不过这个耦合是使用者自己加进去的,而不是框架自带的。然后如果采用MVC分离,那么框架耦合程度基本上没增加,而使用者自己的代码的耦合程度则能够大幅度下降。

#8楼 [楼主]   回复  引用  查看    

2007-02-25 12:27 by Cat Chen      
@JesseZhao
ASP其实挺好用的,如果抛开性能和ADO、XML调用的不再进步的话。

我自己有一套ASP的小框架,以规范自己的ASP代码在何处干何事,这样可以适当降低代码的耦合度。做一些小应用时,用ASP来RAD一下其实真的很快。

#9楼    回复  引用  查看    

2007-02-25 20:25 by gozh2002      
ROR 的 框架学起来是真的好爽,RUBY这个语言也真是好..
不过..如果写真实的应用程序时.. 缺少INTELLISENSE,很简单的东西
却不知道 怎么做(应为书上没讲)..那时真是让人发疯...

#10楼 [楼主]   回复  引用  查看    

2007-02-25 20:32 by Cat Chen      
Agile Web Development with Rails里面已经讲了很多常用的东西,不知道该用什么的时候就可以查。如果是书里面没有说的,就查官方文档,这和查MSDN的道理一致。

#11楼    回复  引用    

2007-02-25 21:31 by 怪怪 [未注册用户]
没深入研究过RoR,本不应该瞎说,但其实感觉为php、asp这些写一套代码生成器,搞一套约定,一点不会比RoR差。感觉Ruby绝对是垃圾语言,从本质上把人们带回了QBasic甚至是过去小孩子玩儿的那个什么小海龟Logo的时代,然后给点适用于Web构建的甜头。说白了就是现在各种框架,包括ASP.NET和Java那边比较经典的,都有点过渡设计,而大多数人开发的无论怎么吹,不过是些小应用,所以一看见返璞归真的东西,反而有种松口气的感觉罢了。这里有个深层次的问题,即Web开发根本没什么技术含量可言,本来就是小孩子就能玩得转的。这样ASP.NET这些东西,出发点本身就是错误的,自然造成很多让人不爽的结果。我觉得越是这样的东西出现(个人认为将来还会有更简约、更方便的形式),越得警示自己,是不是真的有价值,所谓的Web开发程序员/架构师的身份,还能持续几天?

#12楼 [楼主]   回复  引用  查看    

2007-02-25 22:07 by Cat Chen      
@怪怪
我认同一个好的框架和代码规范能在其他语言平台上实现RoR的效果,不过既然Rails选择了基于Ruby,而没有选择给予其他语言平台,那么肯定有它的原因。这有可能是因为Ruby的一些语言特性,也可能是因为Ruby优秀的跨平台设计。

#13楼    回复  引用    

2007-02-25 23:10 by 怪怪 [未注册用户]
反正谁弄,怎么弄,也不会选择微软的平台,大公司支持的Java也得放到后面..,动态、静态语言的区别和其它语言特性上的考虑,我想倒反而是其次的。然后再剩下的几种语言中挑选...。

不过你说的对,必然是有几个真正像样理由才导致Ruby或胜,应该保持一个开放的心态去看待新事物...

#14楼 [楼主]   回复  引用  查看    

2007-02-26 00:21 by Cat Chen      
@怪怪
假如这事情由我来做,我就会选择JavaScript了,同样是动态语言,而双端都用JavaScript就会让人很容易学习,JSON传递的解释也容易多了。

不过要做一个基于JavaScript的Web服务器应该比Ruby要难得多,首先JavaScript就不能像Ruby那样直接命令行执行脚本文件,也缺少IO相关的指令。

#15楼    回复  引用    

2007-02-26 03:33 by 怪怪 [未注册用户]
hehe,这个所见略同,我也觉得JavaScript最合适。其实JavaScript缺少的部分,基于其它几种语言所相关的平台实现也不会太费事,个人觉得还是随机性的因素,比如作者的个性... -_-

#16楼    回复  引用  查看    

2007-02-27 14:33 by 笨小苏      
@Cat Chen
让javascript 直接命令行执行脚本文件,和IO指令有很简单的办法实现滴。

#17楼    回复  引用    

2007-03-04 23:12 by 差沙 [未注册用户]
这本书真的非常爽,写的也很棒,也很诙谐。而且给你strp by step的感觉。
但是,但是看完后就没有机会发挥了,自己做了点小东西试试手,想找一个真正的项目实践一下都没机会,现在也不看了,忘得也差不多了。

哎~~~~ 还是环境不行呀。

#18楼    回复  引用    

2007-03-19 14:25 by 钢盅郭子 [未注册用户]
的确很爽

但是ROR的学习曲线并不总是平缓的

#19楼    回复  引用    

2007-04-02 18:29 by 欣欣 [未注册用户]
请问书中的mysql怎么下载。怎么安装啊?

#20楼 [楼主]   回复  引用  查看    

2007-04-02 21:09 by Cat Chen      
@欣欣
Google一下就知道MySql的官方网站了吧。

#21楼    回复  引用    

2007-06-22 17:46 by Ruby中国 [未注册用户]
我也刚刚看完这本书,只用了一周不到的业余时间。

欢迎一起到Ruby中文社区共同学习探讨。

http://www.ruby-lang.org.cn/

#22楼    回复  引用  查看    

2007-07-02 09:40 by 木野狐      
很多时候会觉得没有控件,怀念 asp.net
就像我现在用 django,上次为了一个 calendar 而发疯。最终还是自己些了一套,可也没法很好的重用。

#23楼 [楼主]   回复  引用  查看    

2007-07-02 09:47 by Cat Chen      
@木野狐
没有控件也可以自己写组件吧,用ASP的时候我也是自己写一个函数专门用来生成calendar的。

#24楼    回复  引用    

2007-08-21 13:37 by mad [未注册用户]
英文滴,看不懂@.@

#25楼 [楼主]   回复  引用  查看    

2007-08-21 14:09 by Cat Chen      
@mad
这本书的已经有中文版,不过是由第一版翻译而来的,不是第二版。

#26楼    回复  引用    

2007-11-27 00:25 by 沈蚊 [未注册用户]
第二版的中文版也出了。

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-03-16 09:14 编辑过


相关链接: