使用完全面向对象的ruby开发代码的速度感,让人有一种快感。就像学武之人突然掉到一个鬼洞,获得一部九阳真经或者一把神器一样,武功突飞猛进的同时,心里面也充满了无限的期待。虽然如此,途中遇到的问题还是不少,这里列举如下,供参考。
1.读什么样的书?
虽然近两年有ruby和rails的书,但是相对于java之类的书,还是小巫见大巫。这就与rails框架在ruby的世界里独树一帜,而java的框架还在疯狂的竞争(最近随着ssh框架的成熟,似乎也趋于平静)。关键还在于视频资料的缺乏,一个没有任何经验的编程者,在看完马士兵的视频之后,都会对java开发说“熟悉java开发”。rails有什么?好像只有vtc的英语视频,或者一些短小的录屏视频,而且也是英文。
好在ruby和rails由于“出生纯粹”的特点,书的选择也少,但却少而精。这里推荐几本:
ruby的书:
ruby programming,这是必备的案头书。查询语法。有中文的。
ruby cookbook。也有中文的,但是英文的chm格式的书更好。中间有众多的案例。
rails的书:
Agile Web Development With Rails已经到了第三版了,支持2.0以上的rails。按图索骥式的学习开发过程不失为一本入门教材。
其他还有,Building.a.Social.Networking.Website.with.Ruby.on.Rails;Build Dynamic Web Applications with Ruby;Foundation.Rails.2;Professional Ruby on Rails;
如果对google地图开发、ajax开发感兴趣,可以看Beginning Google Maps Applications With Rails And Ajax;Ajax on Rails. Build Dynamic Web Applications with Ruby;
rails的书都秉承了agile的特点,以案例着手,迭代开发。对于ror的知识体系的建立非常有帮助。
英文的比翻译的要好些。逻辑和缘由说的更加清楚。
2.技术关口
a.安装、升级。
windows的instantrails,是非常好的类似lamp一样的东西。
linux下比较难一些。如果再涉及到部署,恐怕需要费点劲。
rails的升级。实际上包括各类插件的升级。这是经常要做的。安装或者升级需要掌握这些插件到底装在哪儿。有的在ruby/lib中,如rails;有的在应用的lib中,如authentication 插件,会安装在lib中一部分,当然根是在vendor下的。有的在vendor下的。
b.插件的应用
rails虽然年轻,但是大量的ruby发烧友们将php、java等已经常用的插件,ruby化放在网上供大家使用。
c。面向对象的理解。
使用agile教材最大的坏处,是让人的思维有一种“model”和“controller”是对应的。实际上两者是没有任何关系的。
同时model类和表之间关系也可以模糊化。尤其是模型类中的方法。
3.曾经遇到过的问题
a、附件如何上传。如果附件是图片,而且图片需要限制大小或者进行缩放。
b、view使用rich text,该如何处理。这涉及到前端技术和后端技术。可能还会有复杂的正则表达式。
c、flash、mp3、video如何保存、如何显示。
d、如何展现地图,地图的各类操作如何完成。
e、权限处理。
f、css div的设计。
g、模板和视图文件的关系问题。
h、如何调用jar包
i、如何绘制chart、统计报表。
j、如何发送email
上述问题在实践中都逐个解决。
4.以后还可能遇到的问题
a、如何设计daemon程序;
b、如何大规模部署rails应用。
c、如何应用工作流
d、如何利用java的数据挖掘开源项目做基于rails的数据挖掘。
。。。