Rails源于社区的力量.
众所周知,Rails框架从诞生之日起,就没有一个强大的公司充当其坚实的后盾。尽管如此,在Rails框架近几年的发展成熟过程中——对于开发者来说——依然显现出了不可思议的吸引力和极其强大的生命力。
Rails的普及流行,并非因为这项技术被夸大或高估。毫无疑问,这是源自于社区的支持,源自于社区开发者对于Rails框架的认可。Rails框架发展到今天,一直是依靠社区的力量推动着Rails不断向前迈进,也正是来自于社区的反馈,影响着Rails框架未来发展的方向。
本书之所以出版,归根结底,同样是源自于Rails开发者社区。在Web开发过程中,对于那些希望在Rails之路深入下去的程序员来说——不管你是否顺利——总会有这样那样的问题会突然间跳出在你面前,在未曾打招呼的情况下,便把你在之前成功运行的示例中获得的那点成就感无情蚕食掉。于是,当我们在帮助手册中一无所获时,便开始寄期望于社区,希望找到被同样的问题折磨过,又坚强探索出路的人,期望他们留下经验与启示,让我们的编程道路经历荆棘坎坷之后最终能涅槃重生。
如同你预想的那样,本书的作者皆来自于开发者社区,或者是在技术博客上的执着耕耘者,或者就是你曾在技术论坛中常会遇见却又从未留意的一个普通ID,就是这些平凡的技术布道者,构筑起了你的坚强后盾。小小的一株草无法成长为参天大树,但是将我们的力量凝聚在一起,这些点点滴滴,会让你感觉你不是一个人在战斗,在你摔倒的地方,同样曾有人顽强地爬起来开拓前行。
有趣的是,在本书策划之前,我与其他5位作者从未谋面,但却在技术论坛或在Google Reader中订阅的博客里神交已久。有时我会想,为了一个共同的目标,一群志趣相投的人联系在一起共同努力,必然是一件非常有价值的事情,目标实现时的感觉也必将是非常奇妙的。于是,经历数月的辛勤撰写,便有了你手上的这本书。
记得关于书稿写作的几次讨论,都是在北大东门的万圣书园进行的。万圣书园一直被誉为学子的精神家园,二楼的“醒客咖啡”(Thinker’s Bar)安静舒适,博文视点的周筠老师更是对此处偏爱有加,常约作者来此商讨书稿。从目录讨论到章节划分,从分工撰写再到统稿审校,本书的几位作者利用有限的时间和精力,都力争做到自己的最好水平。参与书籍撰写的骆古道、王大力、董彬、黄翀、苏锐,每人在Rails开发的不同方面都各有专攻,也各有关注擅长的领域,字里行间,已点滴体现在书稿之中。
骆古道是一位令人尊敬的技术布道者,在Ruby语言和Rails技术普及方面一直笔耕不辍,尽管身居德国,但在本书的写作中,一直与其他作者保持邮件交流与联系,骆老师对于Rails及其发展趋势的判断,许多观点都十分独到。
一直活跃在国内Rails社区中的王大力(bd7lx),在我刚开始进入Rails世界起,就从他的技术传播中获益良多。在本书统稿审校的过程中,这位铁道播客也给了我很多指导与帮助。
曾经以Rails创业的董彬也是一位技术先行者,还记得他把写的书稿用LaTex排版成漂亮的文档,还记得在CSDN英雄会上与他讨论书稿的进度,一切恍若昨日。
与董彬同在FreeWheel共事的黄翀(hideto)在博客上也撰写了大量的Rails框架实践的文章。
在书籍撰写过程中,为“多背一公斤”进行Rails站点开发并且热心公益的苏锐,顺利迎来小宝宝亮亮的出生,看见他在博客“一家四口”中对小宝宝专注的记录和细心的照顾,真为他们全家由衷地感到幸福。
从本书开始策划到终稿出版的这个过程中,还要感谢博文视点的编辑团队。感谢博文视点的杨绣国(lisa)编辑在文字加工与规范化方面所做的工作,她一次次地发来书稿的QA以帮助作者修改校正用词的不当之处;感谢陈宜从策划编辑的角度对文字提出的修改建议;感谢为这本书设计封面、进行营销推广,以及进行校对排版的各位博文朋友。正是博文视点编辑团队认真细致的工作,才有了这本书今天的面貌。
我谨代表本书的六位作者,感谢同样在社区中给予我们无私帮助的开发者们,正是你们智慧的结晶,构建了这本书的坚实基础。
正如技术的更新换代永无止境,Web开发也同样是一个永远也说不尽的话题。我们试图让捧在你手上的这本书,涵盖使用Rails框架进行Web开发的方方面面,但我们也清楚地认识到,本书还远不是一本Web开发的百科全书,仅希望书中包含的内容,可以涵盖使用Rails框架进行Web开发过程中关键的环节, 当你在开发中遇到问题时能给予启迪,成为你在深入Rails开发过程中的有力帮手。
好了,让我们翻开接下来的章节,一同踏上愉悦的Rails开发之旅。旅途中所遇到的任何挫折,请不要犹豫,直接用邮件——各位作者的联系方式已在“关于本书”部分附上——与我们联系,将问题反馈给我们。
作者朋友就在你身边。
高昂
2008年6月于北京
.推荐序一
Rails的创造者David Heinemeier Hansson这样说:“我从来不会为了学一种语言而学一种语言。我学习新的编程语言一定是要用它来做点什么事。”同样的道理,很少有人只是为了学习漂亮的设计而开始接触Rails,大部分人——就像我一样——是抱着一个“功利”的念头开始自己的铁道之旅的。“我要做一个网站,听说有个叫Ruby on Rails的东西做网站又快又好,我得看看这是个什么玩意。”大抵是这样的念头。
所以,Rails的学习者们真正要的不是深入理解Rails,而是又快又好地做出自己设想中的网站。..
这年头的网站创业者们想要的不是“Ruby on Rails做的网站”,而是一个具有各种2.0特质的、很酷的网站。“什么Mashup啦、Widget啦、Ajax啦、REST啦,能用的全给它用上。你要是URL里还带一问号啊,都不好意思跟人打招呼。每个页面放一地图,甭管有事没事都往地图上标记,倍儿有面子。这网站就够牛了吧?那是基本要求,还得在多种环境部署,高性能的服务器环境一个脚本就得部署好。你想啊,那些做一个功能都只花15分钟的程序员,根本没心思用俩小时做一次部署。所以我们的要求是:不但要酷,还要敏捷。”程序员们面临的大概就是这样的挑战。
诚然,作为入门手册的《Web开发敏捷之道》(Agile Web Development with Rails)在实用性方面做得已经不错了,一位初学者可以跟着那本书做出一个像模像样的玩具网站,同时能对Rails的方方面面有个大致的认识。不过当他们尝试动手做自己真正想要的那个网站时,就会突然发现面前赫然立着两只拦路虎:第一,真正的网站不是玩具,有太多真实世界里的常见问题他们不知该如何解决;第二,Rails一向秉承“做一件事并且做好”的Unix设计传统,这也就意味着要实现一些真实有用的功能往往需要很多Rails之外的相关知识。这可真是件令人沮丧的事情:花了好几天工夫来学习Rails,自以为已经习得一身好武艺,一出山门却发现面前摆着那么多难题不会解决,甚至想翻书都不知该从何翻起。
简而言之,他们没有套路。
这本《Web开发大全——Ruby on Rails版》就是帮这些踌躇满志的“网站初哥们”解决套路问题的。几位实战经验丰富的作者各出高招,简单介绍Rails之后,立即把用户管理、内容展示、文件上传、搜索、RSS等等网站“家常菜”给抽丝剥茧地细细解说一遍,再把各种常见的Mashup逐一介绍,尤其是为地图服务这个重要的2.0元素单辟章节(值得一提的是,撰写这一章的高昂乃是中科院地理所的博士,从他的专业角度来介绍互联网上的地图服务,可谓高屋建瓴、鞭辟入里,不可不读)。讲完开发的内容,部署工作也没有被忽视,第10章“部署演练”介绍了各种曾经或正在或即将流行的Rails应用部署方案,特别是关于JRuby on Rails的介绍引人注目:这是将Ruby on Rails和J2EE两个世界结合起来的纽带,ThoughtWorks的第一个商业产品Mingle就采用了这种部署方式。
这是一本有套路的书。看完这书的读者应该能学到网站开发的套路。
最后我还得夸赞一下这几位作者。从中国有Ruby on Rails社区开始,他们就个顶个的是社区里的积极分子。他们为Rails在中国的发展起了重要的推动作用。有骆古道这样远赴重洋心系祖国的爱国程序员,有王大力这样组织和掺和全国各地各种技术活动的热心大叔,有董彬、苏锐这样长年在互联网一线奋战的技术中坚,有黄翀、高昂这样醉心技术,深度广度俱佳的有为青年,这么一群靠谱的人和博文视点这么一家靠谱的出版公司一起创作的作品,理当是一本靠谱的书。
所以,怀揣梦想的Rails爱好者们,拿起这本靠谱的书,上路吧。
熊节
2008年6月于北京
推荐序二
很荣幸应邀为本书写推荐序。
看到样章时,我的第一感觉是亲切,本书的作者都是我的老熟人,而且他们的名字在业内颇具影响力,全书共分10章,虽然未能包含Ruby on Rails的所有方面,但每一章都是从实际经验中总结出的精华。可以毫不夸张地说,只要跟着本书进行学习并且付诸实践,你一定能完成一个功能全面的网站建设。
我做了十年的程序开发,前三年主要使用Turbo C 2.0,之后七年都在做Web开发,分别使用过ASP、PHP、.NET、Java。2005年底,自从我尝试使用Ruby on Rails开发了一个Mashup应用后,我为ROR在Web Framework方面的惊人表现力欣喜不已。相对于用Java开发Web来说,Ruby on Rails终于让我在奔波了几年后,找到了一双合脚而又好看的皮鞋。
大家都知道21世纪最缺乏的是什么,现在这种形式依然没有改变,在过去的一年时间里,我们在招聘Ruby on Rails方面的人才时仍然感到非常困难。究其原因,我想一方面是学校教育和市场需求的脱节,另一方面是行业协会的无所作为。这本书是继两本引进版图书(《Programming Ruby中文版(第2版)》和《应用Rails进行敏捷Web开发》)之后,由中国人自己撰写出版的书籍,它对前两本书进行了经验串联,为人才的自我成长提供了良好的工具。
Ruby on Rails 1.0发布至今已有两年多的时间,在这段时间里,推动Ruby on Rails不断发展的源动力是热情高涨的Ruby on Rails社区。本书的作者们就是来自于各个ROR中文社区,书中的部分内容也是与社区紧密相联的,这种出书的形式颇具创造力。在互联网时代读书,不仅要掌握知识点,更要学会到社区寻求解决问题的途径。
我始终认为,最有效的学习模式是师傅带徒弟,无论铁匠还是“武林高手”。但名师难求,而多位名师同时施教则更为难求。现在博文视点将这个行业里的名师都请到了,并且让各位名师把自己的“绝招秘籍”整理成书,让读者更容易掌握要点,为知识的传承创造了一个新的模式。
生逢佳世,何其有幸!
蔡望勤
P1.cn CTO
2008年6月于北京...