译者序
Flickr是Web 2.0世界当之无愧的佼佼者。作为Flickr的架构师和主力开发人员,Cal Henderson在Web 2.0开发领域可谓大名鼎鼎。他所著的这本书集知识性、实践性和可读性于一身,一经出版即好评如潮。
本书中,作者不仅介绍了很多在Flickr开发过程中积累下来的宝贵经验,并且力图将Web开发实践中可能遇到或思考的方方面面的问题、所进行的种种权衡,以及所获得的一些好的解决方案与大家分享。也许在读完本书的那一刻,你会深深地感觉到他已成功地实现了这个目的。
Web 2.0时代,虽然Web开发会涉及很多不同的技术和标准,很多人仍然认为构建一个网站是一件比较容易的事,事实却并非如此。
如果你只是要实现一个有着绚丽界面的个人主页或者用户数量有限的小站点,那确实比较容易。如果构建的是一个每天有数百万流量的Web应用程序,显然就不怎么轻松了。比如,它必须能够为各种语言的用户提供服务,包括中文J;它必须能确保用户数据安全和承受恶意的攻击;它必须具备优秀畅通的电子邮件系统;它还必须能用各种方式(包括REST、XML-RPC和SOAP等)和外部的服务交互。这样的系统该如何设计呢?
如果为了给更多的用户提供服务,这样的系统必须进一步扩展。Web开发人员又该解决哪些问题,具备哪些能力呢?显然,开发人员必须具备找出和解决系统瓶颈的能力;必须能够做好系统的设计,让系统能够不断地扩展,最好是能够通过添加硬件(无需再次开发)就可以实现线性的扩展;还需要系统提供完善的监测和警告机制,让系统维护人员能够了解整体的状态,防患于未然。
应用程序的本质其实就是操作和共享数据,Web应用程序也不例外,只是它们被限定在网页上。作为Web 2.0的一个新特色,公用的API是许多Web 2.0网站成功的秘密武器之一。这些公开的API不仅拓宽了应用程序的受众,更丰富了用户使用方式和用户体验。那么该如何安全有效地为公开你站点的API,并承受公开API可能带来滥用的情形呢?
从上面的种种问题可以看出,Web2.0站点不是只靠新技术就可以方便快捷地搭建起来的。丰富的开发经验和设计经验、良好的团队合作(书中有一章专门介绍了如何建立良好的开发环境),甚至需要对硬件一定程度的了解都是构建起一个成功的大规模可扩展的Web 2.0站点所必需的。
本书很好地回答了上述种种问题,并且选用了一些优秀的开源软件搭建起整体技术框架,如MySQL、PHP和Subversion等,为大家提供了一套经济实用的Web站点开发的解决方案。我个人有一些Web开发经验,在翻译本书的过程中受益匪浅,觉得这是一本特别值得向广大正在或有志于Web开发的人员推荐的好书。
作者丰富的实际经验为本书奠定了坚实的基础。本书涉及的内容广泛,翻译欠缺之处还望大家见谅和不吝指正。此外,感谢在我翻译本书过程中朋友陈黎夫和博文视点各位编辑的帮助指导,以及我太太的支持和理解。
是为序。
徐 宁
2007年12月于上海






