2000年中文技术图书经典回顾(上)
蒋涛
前言
2000年出版中文技术图书出现了空前繁荣的景象,机械工业出版社重拳出击,引进了大批高水平的国外技术图书,推出了中国互动出版网,堪称2000年最引人注目的明星,老牌的清华大学出版社和电子工业出版社也不甘示弱,还保持了一贯的品质,在引进微软图书和中文原创图书上取得了一定的成绩。中国电力出版社取得了O’Reilly公司独家授权,是技术图书出版的新秀,不过今年引进的图书质量一般,但他们明年计划出版的图书有不少是大部头的经典名著,必将形成强烈冲击。技术图书出版有激烈竞争对读者而言是大好消息,毕竟只有高品质的图书才能被读者接受,只有被读者和市场认可,出版社才能长盛不衰。
年底总是回顾过去和展望未来的时候,以下列出了2000年我认为值得推荐的经典技术图书,每个人都有自己的兴趣和偏好,我希望有更多的读者向我们推荐他(她)心目中的经典。可以给我e-mail(jiangtao@csdn.net),或者到WWW..NET图书频道。
软件管理:微软开发经典
图书名称:《微软项目求生法则》(Software Project Survival Guide)
作者:Steve McConnell
图书名称:《微软团队成功秘诀》(Dynamics of Software Development)
作者:Jim McCarthy
图书名称:《微软研发制胜策略》(Debugging the Development Process)
作者:Steve Maguire
出版社:机械工业出版社
记得在1997年北京大学出版社曾经出版过《微软开发秘密》,当时轰动一时,金山公司给每个开发人员都买了一本,学习体会微软是如何管理软件项目,获益不少。这三本书从不同角度再次展示了微软的开发秘密。
《微软项目求生法则》作者是多家世界知名软件公司(包括微软)的顾问,《IEEE软件》“最佳实践”栏目的编辑,他的两本微软经典著作——《Code Complete》和《Rapid DeveIopment》获得两项Jolt大奖。作者利用在研究与工作中获得的经验告诉您项目开发过程中的规划、设计、管理、质量控制、测试与交付所需的策略与观念,并利用大量技巧建立一套精简可靠的框架来成功地管理项目。他指出了开发项目能够达到目标的可信途径,这一途径是“对于大多数项目在大多数时间工作很好的特殊的软件开发途径。” 软件项目失败的原因有两种因素:负责项目的团队缺乏成功进行项目的知识,或者项目团队缺乏有效进行项目所需的决心。本书对缺乏决心的问题帮不上什么忙,不过却包含许多成功推行一个软件项目所需的知识。
《微软团队成功秘诀》作者是Microsoft 的Visual C++开发事业部总监,具有25年从事PC软件开发工作的经验。即使是在擅长软件开发的微软公司内部,Visual C++的开发团队也是公认的优秀—准时完工、表现超水准。大部分的人对于软件开发的延迟都习以为常,而Visual C++却能实现预售。这本书是软件实战经验的精华,作者将自己思考的结晶和种种惨痛的教训归纳出54条言简意赅的法则,从产品设计、程序开发与构建、准时推出产品,到成功的经营,无所不包。当团队的组成日益庞大而复杂,Jim告诉您如何让团队保持高效,告诉您在进度不幸落后时,如何挽救、如何面对充满不确定性的环境、自我内心的反省检讨和如何保持产品的稳定。
《微软研发制胜策略》曾由电子工业出版社翻译为《开发过程调试技术》出版,作者的另一本名著(Writing Solid Code)也被翻译为《编程精粹》出版,《编程精粹》主要讲述如何编写可靠的代码,如何使程序错误变得更少,是本难得的好书。
《微软研发制胜策略》则是写给项目经理和程序设计师的,作者身为一位微软的资深软件设计专家与项目经理人,花了多年的时间辅导那些出了问题的开发团队,使他们真正懂得如何有效率地工作,懂得乐在工作, 他在微软最广为人知的成就,就是成功推动了跨平台的程序代码共享策略。本书告诉开发主管如何让项目顺利进行,避免进度落后、拼命加班等软件产业中常见的苦难,如期推出专业级的高品质软件。
这套书三本内容都非常精彩,可惜翻译不够理想,好像没有专业人士审稿,语言真是中国发展软件技术的一大障碍,很多英文资料翻译成中文在技术方面都不太准确,包括微软的官方站点提供的中文技术文章也是如此,要提高开发实力,必须能流利阅读英文资料,但毕竟大部分人英文程度达不到这样的程度,我在这里也呼吁国内优秀人才能一起动手,提高中文技术文章和图书的水平,只有普及提高技术,软件产业才能进步。
软件工程: 《设计模式》和《软件需求》
图书名称:《设计模式:可复用面向对象软件的基础》
(Design Patterns:Elements of Reusable Object-Oriented software)
作者:Erich Gamma
出版社: 机械工业出版社
对《设计模式》一书我曾在《程序员》试刊一写过专门的书评《近10年最重要的软件开发书籍》,侯捷先生把书评文章放到台湾BBS上,引起了不小的回应。
柯仁傑先生语:
数量不在多少,关键在于领会设计模式的思想,学以致用这句话真是深得我心, 我当初刚看我时每次写程式我都拼想要用上去, 后来经过一段时间的沉淀, 发现其中的要诀是在其思想,其精神, 很多状况下大多的pattern都不会刚好适用, 大部分都是要base on其精神去加以衍生及修改. 所以将来大家有空去看这本书时, 每个pattern 前面的观念介绍是要多看几遍, 最后的sample反而到没那么重要. (不过通常第一次看时, 能接受的的程度刚好是相反过来, 后面的范例比较容易懂, 前面的可应用范围即可弹性化的地方,反而很难理解。
侯捷先生语:
我想你我的情况和想法是一样的:我们都能看原文书,但是我们对台湾地区这么多出版社在这么长的时间里没有能够出版这么一本超重量级的书(的译本),感到…一叹!在电脑出版界,也许从没有人注意到要做这本书,也许有人注意到了不敢做,也许有人想做却缺乏魄力与远见。诸般因素,结果反正是一样:我们没有 Design Patterns 的繁体中译本。
为什么说到魄力与远见?像这样的书,出版如果还是拿着一般翻译价码的成本观念来找译者,会找到什么译者?多久才能找到合格的译者?对含金量这么高的书还畏瑟不前,谈什么大开大阖?
重赏之下必有勇夫,我就不相信钱砸下去东西做不出来。这种书啊,是不能拿算盘来算的,算盘算不出名声与形象。当然啦,如果草率做,由于读者都是精英,肯定轰他个满头包。话说回头,如果好好做,由于读者都是精英,都是大大小小的意见领袖,赞美声会特别大,鼓掌声会特别响,涟漪也会传得特别远。
图书名称:《软件需求》software requirements
作者:Karl E.Wiegers
出版社: 机械工业出版社
本书于1999年曾荣获Software Development杂志颁发的杰出的技术书籍奖Jolt Award。本书讲述了软件开发中一个至关重要的问题—软件需求问题。软件开发人员往往容易忽略和用户的信息沟通,导致软件开发出来后,不能很好地满足用户的需要。而返工则不仅在技术上给开发人员带来巨大的麻烦,而且软件性能深受影响且造成人力、物力的浪费。所以在开发周期早期提高项目需求分析的质量,减少重复劳动,通过控制项目范围的扩展及需求变更来达到按计划完成预定目标是当前我国软件业急需解决的问题—这也是本书讨论的主要内容。
C++类:《Thinking in C++》和《COM原理与应用》
图书名称:《C++编程思想》
作者:Bruce Eckel
出版社: 机械工业出版社
作者Bruce Eckel以Thinking 系列图书著名,并荣获多种奖项,这套系列图书包括《Thinking in Java》, 《Thinking in Patterns》, 《Thinking in CORBA with Java Seminar》. 其中《Thinking in Java》也由机械工业出版社于98年出版,不过中文翻译不好,建议有条件的读者尽量去读英文原版,英文版电子书可以通过作者网站(wwww.bruceeckel.com)下载.这本书根据作者多年教授C++和面向对象的经验和心得体会,用简单的例子和简练的叙述讲解C++和面向编程的深刻思想,C++开发者必备。
图书名称:《COM原理与应用》
作者:潘爱民
出版社: 清华大学出版社
难得的大陆原创技术图书力作,这本书系统完整介绍了COM的原理,虽然COM已经诞生六年多时间了,但COM技术在国内尚未广泛应用,目前大多数的程序员还停留在各种开发工具所提供的封装层面上,往往无法领略底层的细节,产品的质量很难提高。作者潘爱民对于COM,ATL有很深的造诣,曾翻译《Visual C++技术内幕》[第四版],此书并不是一本泛泛而谈的书,许多章节都凝聚了作者的心得体会,论述堪称精辟, 讲解通俗易懂又深入浅出,是开发人员学习COM编程首选书籍。
Delphi类: 李维系列丛书
图书名称: Delphi 5.X ADO/MTS/COM+高级程序设计篇
出版社: 机械工业出版社
作者: 李维
Delphi是Inprise推出的非常优秀的开发工具,特别在开发Internet/Web应用系统和企业商务系统领域。这三本书透过丰富的范例和详细的解说告诉读者如何应用Delphi 5最新技术Internet Express、ADO Experss、MIDAS,结合Microsoft ASP、ADO, MTS/COM+开发先进的电子商务应用程序和高效率安全强固的分布式多层容错系统。
作者李维先生是台湾Inprise公司资深工程师,在Delphi和C++ Builder方面有很深功力,这套书总结了作者多年从事Inprise产品技术顾问的心得体会和经验,是Delphi高级编程的必备参考书籍。