Mar 13 2008

《Ruby on Rails电子商务实战》译者序

Tag: railscaoweiyuan @ 12:22 pm

《Ruby on Rails电子商务实战》[豆瓣] [卓越] [当当] 是我翻译的第一本书,在译者序中为本网站做了个广告,那么也在这里为这本书做个广告吧。

《Ruby on Rails电子商务实战》译者序

这是最重要的时间,也是了解未来的关键。这一事件的意义正如一万年前农业文明掀起了第一次浪潮,工业革命带来了惊天动地的第二次浪潮一样,我们是下一次浪潮变化“第三次浪潮”的子女。

——阿尔文·托夫勒,《第三次浪潮》

人类社会用了一万多年时间才来到第三次浪潮的前线,而在软件行业的几十年历史中已经悄然完成前两次浪潮的更替,向第三次浪潮推进。

第一次浪潮的软件开发就好像农业文明中盖房子,一砖一瓦都要靠自己。开发者要考虑通风排水(底层技术),力学支撑(系统强壮性);砖瓦的平整契合(代码可 读性); 进度的协调,什么时候装窗,什么时候上梁(开发流程管理);工程监理(QA)等等。 一套软件就像一件艺术品,充满了巧妙的构思,和完美的实现。那时候的开发者需要有木匠、泥水匠、铁匠、漆匠的等十八般手艺(各种编程语言的技巧),都必须 是能工巧匠。他们有自由发挥的余地,很有成就感,但是生产力很低。

第二次浪潮的软件开发就像在工业社会里造高楼大厦。高楼大厦的很多基础设施都做在了钢筋水泥的框架里面,包括总体结构、承重抗震、通风排水,消防安全等 等。而流行的软件框架(Framework) ,比如.Net,J2EE,也包括了底层支持、项目模板、开发规范、甚至一些基本功能。软件开发就是一个构建框架和内部装修的过程。开发者被分为程序员、 界面设计师、系统分析员、架构师、管理人员等等。每人只用一种手艺,负责一种工作,通过分工协作来完成任务。他们不需要知道所有的细节,也不需要是能工巧 匠,只要按照流程安全施工即可。第二次浪潮的软件开发很强,可以做出很复杂的系统,但是他们的开发者很可怜,没有一点儿自由。

Ruby on Rails掀起了软件开发的第三次浪潮,一个很小的团队就可以做出一套先进的Web系统。做软件就像玩乐高积木:需要支付功能,插上一块Payment gem(第9章),就把Paypal网站的所有功能集成进来了。需要目前流行的标签(Tag)功能,插上一个acts_as_taggable插件(第7 章),开发者只需要写几行代码即可。听上去像高科技一样的Ajax已经被集成到Rails中,所以给购物车加上拖放效果也只需要十几行代码(第5章)。本 书中最常用的句式就是“要完成A很简单,只需要……,要完成B也很简单,只需要……”。

第一次浪潮的艺术性被做入一块块乐高积木中,第二次浪潮工业品的精密通过每块积木的凸起和凹槽的契合来实现。第三次浪潮的开发者不需要很深入地了解复杂的框架,他需要的是一些搭积木式的编程能力,更需要一些创意。第三次浪潮的开发者更强,并重获自由。

在翻译这本书的同时,我辞去了研发部经理的职务,创建了activescaffold.com.cn网站。当然,是关于Rails的。创业的过程对我理解本书帮助很大。

致谢

这是我第一次翻译一整本书,期间碰到了各种意想不到的困难和挫折,能及时完成真是奇迹。感谢上帝帮助我完成这个翻译任务,更感谢他通过新的浪潮带给我的力量和自由,让我迫不及待地与读者们分享。

台湾著名的出版人博客老猫,在他的一篇博文中建议出版社编辑不要请短篇译者翻译一整本书,说那就像让一个短跑运动员跑马拉松一样。所以,特别感谢人民邮电出版社的傅志红编辑对我的信任,给了我这次“马拉松”的机会,以及翻译过程中不懈的指导。

衷心感谢我的家人,在翻译和创业的过程中,一直给予我支持和鼓励。特别是妻子刘英华,还担任了部分章节的审校工作。

感谢原书的作者Christian和Jarkko,写了一本像小说一样丝丝入扣引人入胜的技术书。虽然译者的翻译经验不足,技术水平有限,难免有些错误,但本书仍然值得推荐。也要感谢每一位阅读本书的读者,你们使我的工作有意义。

译者

2007年初秋

  • 致谢的第一段,因为我国出版政策原因,在实际出版中改为:“这是我第一次翻译一整本书,期间碰到了各种意想不到的困难和挫折,能及时完成真是奇迹。感谢赋予我爱和力量,不断鼓励我”忘记背后,努力面前”的人,使我最终坚持下来,直到最后完工。” 好吧,虽然好像在猜谜语,毕竟我能够对最重要的那位神表达了感谢。
  • 这篇译者序参考了两年前的一篇blog:后现代编程。喜欢ruby和rails也是因为我一直在等待这样的东西。

Mar 12 2008

ActiveScaffold走向Rails2.0

Tag: activescaffold, railscaoweiyuan @ 11:54 am

最近的trunk代码显示ActiveScaffold正在开发支持Rails2.0的版本,这里是最近的svn log:

------------------------------------------------------------------------
r736 | edwin.moss | 2008-03-08 12:17:16 +0800 (Sat, 08 Mar 2008) | 1 line
Fix template_format
------------------------------------------------------------------------
r735 | edwin.moss | 2008-03-08 11:20:07 +0800 (Sat, 08 Mar 2008) | 1 line
OK, eventually, I will remove what needs removing.
------------------------------------------------------------------------
r734 | edwin.moss | 2008-03-08 11:09:46 +0800 (Sat, 08 Mar 2008) | 1 line
Oops, missed the r in rhtml.
------------------------------------------------------------------------
r733 | edwin.moss | 2008-03-08 11:06:02 +0800 (Sat, 08 Mar 2008) | 1 line
How did that left_handed get in there?
------------------------------------------------------------------------
r732 | edwin.moss | 2008-03-07 08:44:52 +0800 (Fri, 07 Mar 2008) | 1 line
Adopting Rails 2.0 - the beginning.
------------------------------------------------------------------------
r728 | rrwhite | 2008-02-25 10:22:10 +0800 (Mon, 25 Feb 2008) | 1 line
Moved the asset copying code out of install.rb and install_assets.rb. That way I
 could have init.rb call install_assets.rb every time the server is started with
out compromising the intent of install.rb (only run once). I also add an install
 counter to install.rb that "phones home" using a GET request so we can keep tra
ck of SVN installs. Feel free to edit my copy in install.rb that explains to the
 developer what and why we're doing with the install counter.
------------------------------------------------------------------------

所以,如果你想在Rails2.0的环境下使用ActiveScaffold,请跟踪trunk上的最新版本:

svn checkout http://activescaffold.googlecode.com/svn/trunk/ activescaffold

如果你像我一样还是留在Rails1.2系列版本中,可以:

svn checkout -r728 http://activescaffold.googlecode.com/svn/trunk/ activescaffold

或者,如果你使用svn:externals属性的话:

svn propedit svn:externals vendor/plugins
activescaffold -r728 http://activescaffold.googlecode.com/svn/trunk/

目前我们的工作,包括中文化、安装包和其他扩展程序,都没有在支持Rails2.0的版本中测试过,请谨慎使用。也欢迎你帮助我们做Rails2.0支持度的测试,谢谢。


Jan 13 2008

Introduce ActiveScaffold to ShanghaiOnRails (Jan 2008)

Tag: activescaffold, railscaoweiyuan @ 12:00 am

这是在ShanghaiOnRails第二次活动中做的Presentation。这里share的是第一个版本,比较详细。后来Jon建议我在演讲的时候做些Demo,这个建议很好,所以我把PPT改简单了,就是后来大家看到的。不过这第一个版本用来做会后的分享还是不错的,即使没去的朋友也能看得明白。

下面两个文件应bigapple的要求分享出来。before_as_demo是demo前的rails project,在demo做的改动发生以后,就是after_as_demo里面的rails project。

P.S. 这两个zip包中的相关插件是demo当天所用的版本,最新版本可以在首页获取。


Jan 10 2008

About ActiveScaffold.com.cn

Tag: activescaffold, chinese, ddd, enterprise, railscaoweiyuan @ 12:00 am

ActiveScaffold.com.cn即将上线。本网站将涉及以下几个方面的内容:
1. ActiveScaffold
介绍Rails的ActiveScaffold插件,以及文档中文化。
2. Enterprise Rails
Rails在企业开发中的应用。
3. DDD on Rails
使用Rails开发,可以更快捷地实现Domain Driven Design(领域驱动设计)思想。但是,这需要做一些基础工作,比如一些Rails插件,可以使各种设计模式易于实现。ActiveScaffold是一个很好的基础。

希望能对中国中小企业的软件应用、Rails社区特别是中文社区、以及DDD设计开发等做出贡献。