| 犬者 |
| “说了你又不听,听又不懂,懂又不做,做又做错,错又不认,认又不改,改又不服,不服也不说,那叫我怎么办?!” |
|
【电脑】Ruby on Rails - 细节中的精彩 自从看了Ruby on Rails官方网站上面的视频介绍后,我便被它吸引住了,当时便做了一堆关于ruby/ruby on rails的网摘。不过,那个视频,在15分钟里面做一个博客引擎,看上去的确很酷……开发效率的确很快,但是它只是看上去而已……要说服程序员们拿ruby on rails来做东西,这个video是远远不够的……有太多太多的细节没有提到…… 似乎唯一的一个中文教程,也是存在这样的问题,它们只是让Ruby on Rails看上去很美……而实质性的东西都没有提到…… 最近一直看Ruby on Rails的详细教程:《Agile Web Development with Rails》 (英文版,中文翻译就不知道猴年马月才能出来了……) 目前之看来快一半,这才深深被Ruby on Rails吸引了…… 全书主要分三个部分: 第一部分“Getting Started”只是将如何安装Ruby on rails等……首先是讲Windows,然后再讲Linux/Mac……明显Ruby on Rails是想要吸引Windows下的程序员的……只是,它漏了一个很重要的地方,便是如何在IIS上面跑Rails……但这偏偏是一个很实际的问题……在windows下面跑web application,不是asp便是asp.net,IIS是铁定有的……如果是apache下面跑php的话,那服务器大都是Linux……也许,作者也不想漏掉它,而是暂时还没有官方的解决办法吧……虽然,已经有人做出来Rails on IIS的安装程序了……书里面提到的链接MS SQL的方法也是有问题的……至少,在我的电脑上有问题……不过我已经解决了……什么时候我再把解决方法写出来……Rails on IIS也是有用fast CGI的……没有做过压力测试,但,看上去,要拿来做网站还是可行的…… 第二部分"Buiild an Application"是很精彩的……让我看到了很多细节上面的精彩…… 教程非常好读……假想了有一个客户,要求做一个购物网站……从用户需求分析讲到程序通过测试……教程本身不仅是要展现如何用Ruby on Rails去做网站,并且还在过程中体现了做网站的整个流程、思考方式……分析需求、发现问题、找出解决方法……教程还经常展示一些开发过程可能遇到的问题……说明错误出现的原因,然后再讲正确的解决方法……这样子的教学方式是很好的……学习一个东西,不仅要知其然,还要知其所以然……而在展示问题,再讲解“正确的解决方法”也更能体现Ruby on Rails在处理这些问题上的精彩…… 教程过程中有一个细节特别让我惊讶……在%>之前加入“-”号,比方说,有这样的代码: <%for i=0 to 10 -%> Hello world!<br> <% end for%> 加入“-”号后,会去掉最终输出的多余空格、空行……也就是说,最终html代码是连续的Hello world!<br>Hello world!<br>……而不是: Hello world!<br> Hello world!<br> …… 这几乎是微不足道的细节……因为,不管多余的空格空行是否存在,都不影响浏览器的最终显示……虽然,去除之后能够减小最终html页面的大小,但是现在的带宽已经不在乎这么点差别……在源文件中加入这些空格、空行方便开发人员阅读才更加重要……事实上,vs.net也是会修改aspx的代码,使其更容易阅读…… 不过,我自己遇到过这样的事情: 1. 在一个asp页面里面手动的去除所有的这些空格、空行……因为那个文件中的循环输出了数百次……去除之后体积小了一半! 2.在一个asp.net的页面里面,我需要获得一个datagrid中某Template Item的内容……而vs.net自动给我加上的空格、空行也照样被程序获取了,使得程序出错……搞的我不敢用vs.net打开那个文件……否则每次都要重新用editplus打开文件,去除空格、空行…… 小小的一个“-”,便完美的解决了这个细节问题…… 强烈的感觉到rails是资深的web程序员设计出来的……他们设计的时候,考虑到了很多很多web开发中可能遇到到细节……而且,他们将自己做开发多年经验也融入进去Rails了…… 看了书中的这第二部分……才能体会到“Convention over configuration 约定高于配置”、“DRY - Don't Repeat Yourself 不自我重复”在Ruby on Rails的实际开发中是如何体现其优势的……看ruby on rails的介绍时,这两点是经常被提到的……但是,都缺乏实际例子的支撑……而书中各个例子则将Ruby on Rails这两个特点表现得淋漓尽致……它们所强调的是一种优秀的开发方式……Rails所接受的convention/约定是设计者们开发时采用的良好的约定……说穿了,它是一个默认配置,并且是一些被广泛采用的配置……遵守这些,可以保证程序的良好风格……并且,它节省了我们很多很多多余、并且一直被重复的代码……这可以大幅的提高开发速度……DRY……是的,不应该重复自己……但是,如果实现这点?要如何利用现有的东西?OO为的便是实现免除重复劳动……但是,我写程序的时候还是经常做一些重复的东西……而这个教程,则告诉了读者哪些地方是重复的,是可以避免的,并且如何避免…… 其实,要实现这些,重要的是有一个优秀的框架……框架必须提供实现"DRY"的支持才行……教程便是一直在体现Rails框架在这方面的努力……而且,它还强调了MVC的重要……哪些事情应该在Model中做……哪些应该在View中做……哪些事情应该在Controller中做……全部都一清二楚……如何返回错误、如何添加链接等等等等……书中都给了实际介绍……教导读者如何在恰当的地方添加恰当的代码,不仅快捷,而且体现了设计之美…… 至少,我自己……在做网页的时候,便一直hard code过"/..."这样的路径,这使得网站如果从根目录改变到子目录里面后变得一塌糊涂……太多太多细节了……都是我在开发网站时曾经遇到过,并且用很难看的方式去解决了的……而在看教程的过程中,我一遍一遍的发现,Rails的设计者们注意到这些细节,并且在Rails里面提供了很好的解决方式…… 书的第三部分则是:The Rails Framework 这部分也占了全书的大半部分……暂时还没有看……相信,过两天看了,也是会为Rails到精彩而兴奋的…… 问天 @9/23/2005 3:43:41 AM View blogs in this category:电脑 Please leave your comment here |
Navigation
Blogwind犬者首页 Contact 个人档案 ![]() “说了你又不听,听又不懂,懂又不做,做又做错,错又不认,认又不改,改又不服,不服也不说,那叫我怎么办?!”
Categories
死结(27)电脑(171) 心情(175) 天影(25) 乱弹(205) 博客(80) 音乐(18) 饕餮(30) 读书(19) 电影(27) 网摘(5) 希望(32) 汕头(10) 经济(5) 苹果(19) 跋涉(3)
Archive
2008年8月2008年7月 2008年6月 2008年5月 2008年4月 2008年3月 2008年2月 2008年1月 2007年12月 2007年11月 2007年10月 2007年9月 2007年8月 2007年7月 2007年6月 2007年5月 2007年4月 2007年3月 2007年2月 2007年1月 2006年12月 2006年11月 2006年10月 2006年9月 2006年8月 2006年7月 2006年6月 2006年5月 2006年4月 2006年3月 2006年2月 2006年1月 2005年12月 2005年11月 2005年10月 2005年9月 2005年8月 2005年7月 2005年6月 2005年5月 2005年4月 2005年3月 2005年2月 2005年1月 2004年12月 2004年11月 2004年10月 2004年9月 2004年8月 2004年7月 2004年6月 2004年5月 2004年4月 2004年3月 2004年2月 2004年1月 2003年12月
My Links
5Gbloglines 时尚摄影师奇科的博客 我们的漫画 颜如玉 最爱卫斯理 |