`
cvu
  • 浏览: 104916 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

《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也是因为我一直在等待这样的东西。

分享到:
评论
1 楼 木哥哥 2009-10-08  
尊敬的译者,第3章52页的脚手架,现在已经不能使用了,可有修正通知么?
现在执行ruby script/generate scaffold Publisher 'admin/publisher' 会出现:
      exists  app/models/
      exists  app/controllers/
      exists  app/helpers/
      create  app/views/publishers
      exists  app/views/layouts/
      exists  test/functional/
      exists  test/unit/
      exists  test/unit/helpers/
      exists  public/stylesheets/
      create  app/views/publishers/index.html.erb
wrong number of arguments (1 for 2)

希望能有个解决方案啊!

相关推荐

Global site tag (gtag.js) - Google Analytics