English

Web开发图书撷英(之五)

2007-08-08 来源:中华读书报 作者:主持人 雷厉风 我有话说

上月新闻不多,值得一提的,是今年IEEE的Richard W.Hamming(中译“汉明”)奖颁发给了LZW压缩算法的发明者之一Abraham Lempel。30年前,正是他与同事JacobZiv(1995年已经获得此奖)所发表的里程碑性的论文,奠定了目前应用最为广泛的压缩算法LZW的基础。要知道GIF、TIFF、PDF等众多文件格式中都使用了LZW算法

或其衍生算法。有趣的是,由于该算法受到专利保护(已在2003年到期),开源社区还专门开发了一种功能类似的算法DEFLATE,用在PNG格式和gzip中。Abraham Lempel是以色列理工学院教授,惠普公司以色列研究院负责人,他领导着惠普全球的基础研究。RichardW.Hamming奖创立于1986年,奖励对信息科学、系统和技术作出杰出贡献的人。此前获奖的还有信息论大师Thomas Cover,Huffman编码之父David A.Huffman,模糊数学之父Lotfia.Zadeh等。另外,IBM以7.45亿美元的价格收购著名的软件工程工具厂商Telelogic,这样,后者屡获大奖的需求管理产品线Doors、开发环境Rhapsody、变更和配置管理工具Synergy和建模工具Tau都将融入IBM Rational的大家族中。而这一新闻也带出了我们熟悉的一位作者――Bruce Powel Douglass博士。他撰写过许多实时系统建模和设计模式方面的书,包括《实时设计模式》、《实时UML》、《嵌入式与实时系统开发》,虽然因为内容总体超前国内的应用水平不少,这些书有些是叫好不叫座的,但是真正的有志者,应该不能错过。网上说他是I-Logix的首席科学家应该是误译,原文为chief evangelist,直译是首席传道士,不知道在华外企怎么翻译?请方家告知。有意思的是Douglass的成长经历,他是一个神童,12岁之前就掌握了微积分学,而在14岁时他退了学,花了几年时间游遍美国。他获得的是运动生物学硕士学位和神经生理学博士学位,并且写过一本关于乒乓球方面的简短教科书。而使他享誉世界的却是嵌入式系统领域的成就,他是对象管理组织(OMG)中的实时分析与设计工作组的两主席之一,是将UML和面向对象分析等软件高级技术引入嵌入式系统开发的世界权威。

我们这一系列的主题是Web图书,现在看,非常贴近目前的现实。软件Web化这个大趋势最近得到了更多验证。即使最常用的办公软件,完全基于Web的Google文件(具备了基本的Word和Excel的功能)已经得到越来越多的人使用;像Zoho这样的独立软件商也渐成气候。这使微软不得不变招应对,已有报道说,微软即将把原来以旧版Office为基础为苹果机开发的办公软件Works转为完全免费、由广告支持的Web软件。而基于OfficeLive显然也是微软的重头戏。

Web越来越重要,而开发人员也越来越意识到Web标准的重要性,这很大程度上是因为IE在浏览器市场上的垄断已经被Firefox和Safari等所打破。这在国外早已成了大气候。而最近CSDN所做的调查表明,国内开发人员中38.62%的人使用Firefox、34.98%的人使用Max鄄thon、15.29%的人使用IE、6.88%的人使用Opera、4.12%的人使用腾讯的TT,格局已经可以说是天翻地覆了。

这种大背景下,微软也在转身。有ASP.NET圣经之称的《ASP.NET2.0揭秘》的作者,名动江湖的微软社区最高荣誉“软件传奇人物”(Software Legend)Stephen Walther在书中就写到,虽然书的上一版为自己赢得了社区的广泛尊敬,然而,新的一版却完全不同于前一版。“还在打草稿的时候,我就把本书的第1版从便携电脑的硬盘中丢进了回收站。”其中的主要原因,就是要遵守Web标准。“编写本书第1版时,我根本不关心Web标准的问题……唯一需要关心的事情就是让页面在IE中正确地运行。然后Firefox出现了。每个人又不得不开始关心‘跨浏览器兼容’问题,而创建跨浏览器兼容网站最好方法就是遵守Web标准……”无独有偶,另一部ASP.NET名著《Programming ASP.NET中文版》的作者Dan Hurwitz和Jesse Liberty也在网上发表文章,强调ASP.NET程序员学习CSS等标准的重要性。什么叫大势所趋?这才叫大势所趋啊。

本文是系列的最后一篇,介绍Web服务器端技术方面的图书。Web服务器端技术其实有很多,比如Cold Fusion,比如最近又得到较多关注的服务器端Java Script。但国内占主流的目前只有三种,即ASP.NET(ASP其实还有比较广泛的群众基础,但是毕竟代表着过去)、Java Web技术和PHP。Rubyon Rails可以算作极有希望的未来之星。其中的ASP.NET我们在.NET系列中已经介绍过,Java Web技术在Java系列中已经介绍,但时过境迁,有些书必须予以必要的调整了,为了避免重复,我们这里只列出书目。如果以后有机会更新.NET系列和Java系列,我们再来详细讨论。

ASP.NET

综合巨著

ASP.NET 2.0揭秘(两卷)Stephen Walther著谭振林等译人民邮电出版社(即出)

入门

Programming ASP.NET中文版(第3版)Dan Hurwitz,Jesse Liberty 著瞿杰等 译电子工业出版社 99元

ASP.NET 第一步――基于C#和ASP.NET2.0朱晔 著 清华大学出版社 69元

ASP.NET2.0入门经典(第4版)Chris Hart,John Kauffman 著张楚雄 高猛 译清华大学出版社 78元

中高级、经验

Essential ASP.NET 2.0中文版Fritz Onion,Keith Brown著袁国忠译人民邮电出版社39元

实例

ASP.NET2.0电子商务开发实战CristianDariel,KarliWatson著施游、徐锋、陈绍继译人民邮电出版社 59元

Java Web 编程

Java Web开发详解孙鑫 著电子工业出版社; 99元

JSP程序设计Vivek Chopra等 著张文静; 林琪等 译人民邮电出版社; 45元

JSP设计(第三版)Hans Bergsten 著林琪; 朱涛江 译中国电力出版社; 79元

Head First Servlets & JSP中文版Bryan; Basham等 著苏钰函; 林剑 译中国电力出版社; 98元

精通Struts:基于MVC的Java Web设计与开发孙卫琴 著电子工业出版社; 49元

精通J2EE――Eclipse、Struts、Hibernate及Spring整合应用案例计磊; 李里等; 著人民邮电出版社 69元

JSF实战Kito Mann著铁手,程晓冬,何勇译人民邮电出版社 69元

PHP

PHP是本文介绍的重点。与ASP.NET和JSP这些由大公司推出和支持的技术相比,PHP当然只能算是草根阶层。但是自从1994年诞生以来,由于与Apache和My SQL的天然组合优势(所以不要奇怪为什么PHP的书几乎都要讲My SQL),PHP不断在Web开发领域攻城掠寨,已经成为最流行的服务器端技术。各种调查表明,PHP的市场份额是ASP/ASP.NET的2倍左右,更远远领先JSP等JavaWeb技术。到2007年4月,全球已经有2000多万个网域在使用PHP。而在所有编程语言的排名里,PHP也一直稳居前五。

来自草根的PHP最开始当然只是为了用于小型网站,Lerdorf最早为它取的全名是“Personal Home Page”(个人主页),可见并无什么雄心。但是两个以色列人Zeev Suraski和Andi Gutmans1999年对PHP进行了大幅改造,重写了内核(以两人名字的组合Zend命名),全名改名为自递归的“PHP:Hypertext Processor”(超文本处理器),终于使其登堂入室。随着2000年PHP4和2004年PHP5的发布,PHP已经有了比较全面的面向对象特性,开始进入大型应用领域。众所周知的是,phpBB、Discuz!等论坛软件,XOOPS等开源CMS应用,以及维基百科等超大型网站都是PHP开发的。

有些奇怪的是,在2004年到2005年很长时间内,PHP曾经被国内的出版界严重忽视了,差不多两年的时间里几乎没有出版一本像样的PHP图书。但是,最近两年情况得到迅速改善,我们也得以有足够的好书能够推荐。

综合巨著

我们以前介绍过的其他语言和技术往往都有泰山北斗级的大作,PHP也不例外。就目前看,比较全面深入而且口碑好的教程主要是以下两本。

PHP与My SQL 5程序设计(第2版)W.Jason Gilmore 著朱涛江 译人民邮电出版社 79元

PHP和My SQL Web开发(原书第3版)Luke Welling,Laura Thomson 著武欣 邵煜 译机械工业出版社 78元

两本书都有PHP圣经之誉,前者因为出版较晚,内容更新,而称为新圣经或者新约,后者当然就是老圣经或者旧约了。在Amazon上,前者排名4000左右,有78位读者给予4星半评价;后者因为正在新老接替(新版应该于近期出版),排名在1万左右,但后者读者评价很高,168名读者4星半――打了个平手。目前前者是国外PHP图书中的销售冠军,当然,这必须将后者有些青黄不接的因素考虑进去。

从很大程度来讲,两本书之间有较多互补性,但毕竟并不是每位读者都有那么宽松的经济实力,能够同时买两本。所以对这两本书进行比较,虽然有较大难度,但应该是非常有意义的。

两本书总体上的确不相伯仲,各有擅长。比较相同的地方是内容覆盖都比较广泛,同时兼顾了PHP和My SQL,而且都有大量代码,比较贴近实战。

但细分之下,“新圣经”《PHP与My SQL5程序设计》占了时间的便宜,在全面性上,可以说无人可以匹敌。尤其是PHP5的诸多新特性,如PEAR库、Smarty模板、SQLite、PDO等,不仅“老圣经”没有,目前几乎没有其他任何书讲到。此外,日期和时间功能、PHP的mysqli扩展、MySQL5的存储例程、触发器和视图等也介绍得比较详细。豆瓣网上有读者非常形象地将“新圣经”的风格称为“说明文”,详细严谨地逐步解释每个概念,使读者能够了解并熟悉各个细节,对函数做了大篇幅的说明,非常适合刚入门的初学者。

而《PHP和MySQLWeb开发》呢,风格类似散文,以“Web开发”为中心(这时你该注意到书名中的差异),将知识点打散,围绕着中心和体现这一中心的实例来讲。正如那位豆瓣读者所说:“粗看前两篇(记得是1~14章)会让人感觉‘东一榔头西一棒’,提了下显示动态内容,即刻就带到使用函数。这乍看让人觉得有些乱,但实际上却更好地体现了本书作者的思想――把实践看得很重,几乎每篇每节都是围绕一个实例在做诠释,因此本书的精髓则在后三篇。”的确,与“新圣经”相比,“老圣经”还有一个优点,就是最后有几个综合例子,能够使读者形成大局观。但是,它没有“新圣经”中那样详细的函数说明。总体上更适合有一定Web开发感性认识的读者。

从参考书角度来看,“新圣经”更像传统一点的工具书,“老圣经”也可以作为参考书查,但总体上更偏于任务导向――它的新版出版在即,读者们很快就可以看到它的真容。

入门

PHP与My SQL基础教程(第2版)Larry Ullman 著陈宗斌 译人民邮电出版社 59元

本书原版是国外非常畅销的系列Visual Quick Guide中的代表性著作,名列最畅销PHP图书之列,原版销售已经超过了10万册。在Amazon上,本书获得了100多位读者4星半评价。一部叫好叫座的名著。

作者是著名的技术作家Larry Ullman,拥有20多年编程经验,是朗讯和Oracle等公司的技术顾问,同时又在加州大学伯克利分校、宾州大学等名校任教多年,教学经验非常丰富。本书充分体现了这一点,内容不是简单按知识体系本身来组织,而是结合实战任务,非常容易入门。另外,这种任务导向的组织方式,也使本书成为一部很好的参考书,读者可以在遇到各种常见任务时,查询书中内容,直接应用到实际工作中去。书的最后还有三个综合实例。

PHP程序设计(第二版)Rasmus Lerdorf,Kevin Tatroe 著陈浩 译电子工业出版社 68元

将本书放在入门层次,肯定有读者会表示反对意见。毕竟,这是PHP之父领衔的一本书。但是,正如我以前说过的,主流语言的老爸们写的书,有一个有趣的规律,就是越早的语言,书越好。不信?时至今日,仍然为人称道、死心塌地奉为经典的语言教程,首推C之父Dennis Ritchie的那本C,其次应该是Stroustrup的C++,Gosling的Java就有些被《Java编程思想》和《Java核心技术》等抢去了风光,PHP类似,也被上面已经介绍的另外两本书压下去一头,而C#之父Hejlsberg的那本书是语言规范的复用,当然难以在市场中真正立足,不知道Guido正在写作中的Python,还有Amstrong刚刚出版的Erlang能不能打破这一宿命……真的打破了,大概又有老兄会指出,Python尤其是Erlang现在还不能算是真正的主流语言……

本书总体上还是中规中矩,作为入门,了解PHP肯定还是不错的,毕竟是PHP老爸的作品,会有不少他人无法替代的见识。而且第二版吸取了不少对前版的批评,提高很多。但是平心而论,要论实战性和全面性,比之归入巨著之列的两本就不如了。这大概与PHP在3.0以后Lerdorf的核心地位已经被Zend的两位开发者Zeev和Andi替代有关。这本书中,像PHP比较重要的新特性比如Smarty模板、PDO、SQLite几乎都是一笔带过,面向对象、MySQL连接、正则、Web服务、文件处理、网络、错误处理等等也都浅尝辄止,而且例子也比较少。

精通PHP + MySQL应用开发王石 杨英娜 著人民邮电出版社 56元

一本朴实无华的优秀原创入门书。自出版以来,已经重印多次。本书章节组织非常清晰:前9章有一章讲到了php My Admin,很实用;然后5章分别讲述5个模块的开发;最后是两个综合例子,兼顾一些软件工程知识。在朴实的讲解中,把复杂的编程技术讲得细致、透彻、明了,这在国内原创图书中比较难能可贵。

当然,这本书中还有一些不足,包括有些读者已经指出的不少小错误,以及PHP5和MySQL5中比较新的特性(比如模板、PDO、存储例程、触发器)书中没有涉及或者只是浅尝辄止,等等。希望在未来的版本中能够弥补。

实例

PHP 5 In Practice中文版Elliott WhiteⅢ等 著王军 译人民邮电出版社 49元

本书风格类似Cookbook和Recipes,是完全针对任务的解决方案集合,比如“模拟骰子”、“创建多级下拉菜单”、“利用cookie记录数据”等等。其实这种小的“处方”,比很多国内书中质量不高的综合实例有用得多。国外另有PHP Recipes(Apress)和PHP Cookbook(O’Reilly)属于同类著作,也有很好的口碑,不知国内是否有出版社会引进。当然,还有不完全类似的PHPHacks……

经验/提高

PHP这种层次的书国外出得也非常少。以前似乎只有Andy Gutman所著 PHP5 Power Programming算得上。目前口碑比较好的书要数Matt Zandstra的《PHP5 Objects, Patterns,and Practice》,有消息说,电子工业出版社将出版此书的中文版。顾名思义,此书讲的是PHP语言三个高级主题:面向对象、设计模式和最佳实践(包含一些软件工程和工具使用),是PHP程序员更上一层楼的很好帮手,不应错过。

当然,最近国外中高级的PHP图书计划不少,比如Apress的Pro PHP,Sams的AdvancedPHP。最令人期待的还要算Manning刚刚出版的PHP in Action,讲述面向对象、设计模式、重构等等,很像Bob Martin大叔《敏捷软件开发》的PHP版呢。

Ruby on Rails

从图书销量看,RubyonRails虽然在国内还未入主流,但是比较代表着未来,大家还是值得关注的。《程序员修炼之道》说过,程序员每年都应该学一种新语言,听上去玄乎,但是其中自有深意存焉。如果你今年要学一种新语言,而你又不会Ruby的话,那就去学Ruby吧。你一定会有奇妙的旅程。

Ruby for Rails中文版David Black著吴畅欣 张明生 译人民邮电出版社59元

Programming Ruby中文版,第2版David Thomas等 著孙勇 姚延栋等译电子工业出版社99元

Web开发敏捷之道――应用Rails进行敏捷Web开发(第2版)David Thomas等著林芷薰译电子工业出版社95元

上面三本书恰好组成了一个阅读顺序。即入门看第一本《Ruby for Rails中文版》(Rails之父极力推荐的入门书),然后可以看《Programming Ruby中文版》(绝对经典的Ruby教程)进一步了解Ruby语言,或者可以看《Web开发敏捷之道》(Rails之父的著作),掌握Rails。你当然可以非常功利地为了使用Rails,而只读第三本,或者第一加上第三本,但我仍然强烈推荐你阅读第二本书,全面深入地学习Ruby。即使Ruby未必会真正成为The Next Big Language(有不少人认为Java Script更有希望),这种学习的经历也会使你终身受用。

另外应该推荐的还有《Ruby Cook book》一书,但清华大学出版社所出这一中文版翻译口碑不佳,有兴趣的人或者可以选择东南大学出版社的影印版。人民邮电出版社将要出版的《Ruby Way》中文版应该是目前最深入的Ruby图书,值得期待。

手机光明网

光明网版权所有

光明日报社概况 | 关于光明网 | 报网动态 | 联系我们 | 法律声明 | 光明网邮箱 | 网站地图

光明网版权所有