"有模有样"的Web2.0
《精通正则表达式,第3版》译者 余晟
在Web开发的早期,我们常说,相对传统的软件开发,Web太简单、太简单了:没有复杂的业务逻辑,也没有高可靠性的苛求。于是,业务逻辑层可以和表现层混在一起,页面,接上一个数据库,弄一台主机,就结束了。
然而,随着技术的发展,时间的推移,特别是Web2.0成为潮流之后,Web开发越来越明显地体现出自己独特的属性:大数据量,交互复杂,高可靠性,低成本——要展示的东西多了,访客多了,数据量也就上去了(尤其是,Web2.0的应用往往还需要进行大量的数据挖掘工作);为了"盘活"网站,系统中的各个元素,甚至不同系统之间基本都要建立联系;要保证口碑,就必须随时都能访问,也就是说,程序(软件)和服务器(硬件)都不能出问题;更要命的是,Web2.0的公司一般规模都比较小,或者,退一步说,至少称不上"财大气粗",不会(愿意)烧掉太多的钱,无论是人力,还是物力。
对于广大的开发人员来说,这些问题,构成了不一样的领域,需要不一样的方案和思路,当然,需要最迫切,同时也是最实际的,就是经验。在这种情况下应运而生的《构建可扩展的Web站点》,甫一出版即大获好评,也就不足为奇了。
本书的作者Cal Henderson,是大名鼎鼎的Flickr的架构师和主力开发人员。无论是从规模、速度和复杂性上,Flickr都堪称Web
2.0网站中的翘楚,以它为背景,来讲解"可扩展的Web站点",无疑具有极强的说服力和示范效应。更为难能可贵的是,在本书中,Cal
Henderson不但给出了问题的解决方案,还讲解了解决问题时的各种考虑、权衡,授人以鱼不如授人以渔,有前人的思维痕迹作参照,我们的收获,显然要多得多。
而且,我发现,本书的内容,除去常见的"国际化"、"大数据量的处理"和"性能瓶颈"等话题之外,另有两大特点。
其一是,"软硬兼施"解决问题。Web2.0要求的低成本,并不是单纯的,极端意义上的"低成本",而是合理的"低成本"——要解决一个问题,什么时候该对软件下手,什么时候该对硬件下手,对这个问题的把握,相当程度上反应出技术人员的经验和水平(尤其是,Web2.0的公司往往不会明确地划分软件/硬件技术人员,许多时候你得身兼数职)。对这个问题,书中有许多讨论,并给出了若干原则,譬如"硬件平台初期设计时适用"的三条原则:购买经济型硬件;使用编译好的操作系统;使用编译好的软件。这些原则,或许不同于国内许多技术人员的观点,但细细看过作者的论证,还是不无道理的。
另一个特点是,本书用了相当篇幅讲解了API的设计。复杂的交互是Web2.0的特色之一,而且交互的范围不再局限于系统中的各个元素,也不再局限于事先定义好的操作,系统之间的交互,以及由不同交互关系构造出来的新应用、新功能,都是通过丰富的API实现的。然而,Web上的API——尤其是能适应时代的API——该如何设计和实现,大多数开发人员并没有太多的经验。对此,本书专门准备了一章来讲解,其中包括了数据订阅源、移动内容、Web方式、API的传输方式、API的滥用等内容,切合当前的应用方式和技术手段,告诉读者如何开发出丰富、安全、实用而又不会被滥用的API。这样的内容,在目前的技术图书中,是不多见的。
《西游记》里,观世音菩萨携带袈裟和钵盂寻找取经人,标准是"能识此宝者,分文不取;不识此宝者,千金不卖"。如果你希望构建一个高效、可靠、复杂的Web应用,或者说,一个"有模有样"的Web 2.0应用,这本书,建议你阅读。
加载中,请稍候......