一些技术书评,欢迎讨论

mechgoukiteng 2003-10-04 05:28:37
首先声明,由于本人只是一个最最普通的程序员,没有在amazon上面买书的经济条件,所以这篇帖子里面推荐的都是在国内可以搞得到的书籍。再者,由于本人的技术水平和视野的关系(那本<Analysis Patterns>我看下来感觉就不是很好:(),这里面推荐的书籍还是比较平实近人的,对每本书的评价也只是一家之言,欢迎讨论但拒绝人身攻击。最后,这里的推荐清单只包括本人今年所读过的以书本形式出现并认为值得一看的读物,而网上更多更丰富的是各种论文,文档和源代码(感谢GNU运动)则不包括在其中。

C++:
本来不想首先推荐c++读物的,因为这2年国内出了太多太多的c++的书,按照被很多牛人都引用过经济学“边缘效应递减规律”,新鲜刺激感下降不少。但只是因为习惯,所以还是被列为第一项。并且这里只推荐3本,而且也不是那么“必读”,并且我想最近一段时间内不应该会有什么划时代的c++书出现了.....
(1)C++ Templates---The Complete Guide
By David Vandevoorde,Nicolai M. Josuttis
Publisher : Addison Wesley
ISBN : 0-201-73484-2
Pages : 552
我想有了这本书,csdn的c++论坛里面关于template的问题就应该少上60%。作为c++最后一个被引入的设计范式,template从来就是各种newsgroup和bbs上面的焦点之一。前2年Andrei Alexandrescu的<Modern C++ Design>更是把这种争论推向了一个高度(作为余波,Andrei最近还在cuj上面发表了smart pointers-reload一文,看来他也看过matrix2了:))。关于template使用是一个见仁见智的问题,但是前提是你要了解template,所以这本书有着它的价值。不过呢,与此对应的是,这本书面很广,但有些章节不是很深入,过于简略---谁叫c++这么复杂庞大呢,只占1/4的template就搞得大家疲于奔命。
(2)Effective STL---50 specific ways to improve your use of the STL
By Scott Meyers
Publisher : Addison Wesley
ISBN : 0-201-74962-9
Pages : 260
看着熟悉的作者和熟悉的书名风格,大家应该认为这就是质量的保证。作为一个库,stl的使用难度并不很大,但是要高效正确的使用还是需要有个手册的(谁叫它是用c++写成的!)。本书正好覆盖了这一区域,并且Meyers的英文读起来还是那么明了,相比之下OOSC里面不少地方的古英语就让我很...(感觉像听魔戒里面精灵族说话)。缺点:技术层次不是很高。
(3)Large-Scale C++ Software Design(中文版:大规模c++程序设计)
By John Lakos
Publisher : Addison Wesley
ISBN : 0-201-63362-0
Pages : 622
这本书入选的主要原因在于它比较独特的定位。一般的书都关注于程序的逻辑设计,很少关心程序的物理设计---也就是各种逻辑模块之间的相互依赖关系。C++由于保留了C那种并不理想的.h+.cpp文件组成方式,使得大规模程序不得不考虑由于物理设计失当带来的各种编译和链接依赖性----你肯定不想make all一次要等上一星期。对于这种情况,本书给出了一定的处理方法。这本书主要的缺点一是年代过远(本书出版于1996),其中很多的说法已不完全精确,二是过于啰嗦,其实完全可以压缩到400页的,看起来也不会这么累。

java:
其实相对于当今c++的过于学术化,java显的工业化的多,而且各种新概念新东西也多的多。今年我认为java最大看头的地方在于AOP,只不过这一方面的书很少(你只有去TSS里面搞点试读章节)。还是去看看aspectj或是jboss的aop framework的文档吧。另外,作为分层语言的受益者(干苦力的是写JVM的c++),对于java语言本身并不需要象c++那样的那么多的语言手册。所以本人认为effective java或是practical java优先级就不是很高,相反到是象重构,极限编程,模式这些概念到是用java的人首先要读的。
(1)Refactoring: Improving the Design of Existing Code(中文版:重构--改善既有代码的设计)
By Martin Fowler
ISBN : 7-5083-1501-4
ok,这本书今年的广告做的也不少,我想大家也就不要我再来重复些什么了。实际上去年我就读过其英文版本,今年只不过拿中文版复习一遍。在这里感谢jjhou和gigix的翻译。Refactoring作为XP的一个很重要的组成部分,在java语言上获得了很大的成功,只要看看现在的java IDE---从JBuilder到eclipse到intelij IDEA,哪一个不集成了Refactoring功能,就可以看出Refactoring在java里面已经深入人心。配合上每日构建,测试先行...等等,java程序员不依靠debugger的日子快到来了:)
(2)Java Threads,second edition(中文版:Java线程)
By Scotts Oaks,Henry Wong
Publisher : O'Reilly
ISBN : 7-5083-1318-6
Pages : 336
这是一般很少被人提起的java的书籍,但是却是我认为讲述java线程这一主题最好的一本书。线程在java所宣称的“到处运行”的光环下往往被初学者认为不过是一个小话题,但在实践中往往却带来“到处补丁”的后果,并且由于java一些先天原因,很少有大型java程序不使用线程的。这本书就完全的解答了java线程所有的编程“陷阱”,并且带有大量的实用代码,有很大的实用性


.NET:
对于这一话题,我其实没有什么发言权,因为我在.NET上面的编程经验除了看过几个sample以外,就是用MS的SMARTPHONE SDK写过几个简陋的手机c#程序。我对.NET 90%以上的概念都来自于下面这本书---ok,大家应该都猜到是Jeffrey Richter的<Applied Microsoft .NET Framework Programming>。这本书的缺点可能就是前言有点肉麻而已(猫都出来了:)),不过要注意的是,本书的第一遍中文翻译比较糟糕,所以大家要不看e文的要不等第2遍中文翻译---这也是中国出版业的一大特点
Applied Microsoft .NET Framework Programming
By Jeffrey Richter
Publisher :Microsoft Press
Pages : 591

python:
终于到了介绍我喜欢的python语言的时间了:).作为一种oo的脚本语言,python是那种你一旦用上手就不肯放下的好工具。它天然的就可以成为分层语言系统的上层语言,用它当作胶水来连接下层语言(c/c++/java)的高效模块是一件很愉快的编程实践。所以我推荐了下面3本,不过由于这3本书有重复之处,所以我也就不分开评述了。Python in a Nutshell是最新的一本(2003.3出版)也是内容最丰富的一本。其中专门提到了python从2.1到2.2(现在是2.3)升级带来的一些语言变化(比如新的class语法)。而Python Programming on Win32则专著于win32平台,特别是python编写com以及操纵word,excel这些windows应用程序的方面,你会发现用python会获得比VBA更强大的功能。而Python Standard Library是一本完全的库手册,对于python这种高层语言是必不可少的.
(1)Python in a Nutshell
By Alex Martelli
Publisher: O'Reilly
ISBN : 0-596-00188-6
Pages : 654
(2)Python Programming on Win32
By Mark Hammond,Andy Robinson
Publisher : O'Reilly
ISBN : 1-56592-621-8
Pages : 672
(3)Python Standard Library
By Fredrik Lundh
Publisher : O'Reilly
ISBN : 0-596-00096-0
Pages : 300
...全文
128 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
naxiao01 2003-10-08
  • 打赏
  • 举报
回复
up, 顶力支持!!!
frankMasson 2003-10-08
  • 打赏
  • 举报
回复
再up
frankMasson 2003-10-07
  • 打赏
  • 举报
回复
up
frankMasson 2003-10-07
  • 打赏
  • 举报
回复
up
mechgoukiteng 2003-10-07
  • 打赏
  • 举报
回复
to childchen(小孩) :


你该不会就是http://childchen.51.net的主人把 呵呵

本想再写点,可惜剩下的好书都是电子版的,会引起版权什么的吧

等出了中文版再说
ao 2003-10-07
  • 打赏
  • 举报
回复
UP
childchen 2003-10-06
  • 打赏
  • 举报
回复
兄弟
看到这个帖子只能说和你心有戚戚。
C++ Template中文版将会在11月有人民邮电出版社推出中文版,陈伟柱翻译,相信值得期待。
关于Java thread,还有一本java thread programing值得期待,中文版翻译为《Java线程编程》。有网友评价比java thread更加适合初学者。
caiyi0903 2003-10-06
  • 打赏
  • 举报
回复
mark
ao 2003-10-06
  • 打赏
  • 举报
回复
写的不错,收藏!
如果集中火力再写详细点我想可以刊登在《程序员》上。
frankMasson 2003-10-06
  • 打赏
  • 举报
回复
前几天老是贴回复的时候返回超时错误,以致无法回复,真是可惜了


很 cool 的书评,很多都没有看完,收藏,以后定要慢慢找来看.
不过似乎数本书的评论还都有可以深入写下去的余地,例如第
一本<<C++ Templates---The Complete Guide>>
leyt 2003-10-06
  • 打赏
  • 举报
回复
不错!
mechgoukiteng 2003-10-04
  • 打赏
  • 举报
回复
设计模式,软件开发:
这可能是最不好评论的一项了,设计模式和开发过程作为一个高度依靠实践的东西,书本这种教条载体很难表达的清楚。就象学习UML那样,虽然我买了Martin Fowler那本人人都说好的<UML Distilled>,但是看完了还是很混沌。后来尝试着用ROSE画几个图,不懂得地方去参考<The UML User Guide>反而上手了。所以我一直认为学习DP只需要<Design Patterns>这本书,然后在实践中不断的反复揣摩就可以了。并且DP并不是语法并不存在一定适用的情况,随着软件的变化,需求的变化,DP的选择也一定会变化---这也是为什么aop或是loki这种可以自动生成模式并可以比较方便的更改模式的语言新技术吸引人的一个地方把。所以,相比之下,<java与模式〉和<设计模式精解〉并没有给我以太多的独到见解。不过,还是有2本书在这里值得一说。
(1)Agile Software Development---Principles,Patterns and Practices(中文版:敏捷软件开发---原则,模式与实践)
By Robert C.Martin
Publisher : Pearson Education
ISBN : 7-302-07197-7
Pages : 476
我认为如果你是一个开发人员并且今年只能买一本技术书籍的话,这本书应该有80%的可能是你的选择,套用myan在序言里的标题:7年的等待换来得经典。这句话对这本书评价一点都不过分。Bob大叔很好的把模式,XP以及UML的知识结合到了一本书里。并通过几个不同案例的分析告诉你怎样才算是成熟的使用模式。并且用了很精简的篇幅说明白OO几大核心原则,还给出了一套计算产品代码中包之间依赖关系的数学公式,对于开发有一定规模的项目无疑有着极大的用处。所以,吐血推荐。

(2)Pattern-Oriented Software Architecture,Volume 2:Patterns for Concurrent and Networked Objects(中文版面向模式的软件体系结构 卷2:用于并发和网络化对象的模式)
By Douglas Schmidt,Michaes Stal
ISBN: 7-111-11686-0
Pages : 402
这部书推荐有着一定的风险,因为我刚刚拿到它,并没有读完。而且这套书的卷I翻译的并不出色,所以很难让人放心它的翻译水平。我之所以推荐是因为Douglas Schmidt是著名的open source网络中间件ACE的主要架构者。ACE是一个很值得学习的C++网络库--其中内容涉及广泛,运用了很多网络编程独特的模式。所以,万一这本书的翻译不过关的话,我推荐大家去看马维达大哥翻译的ACE中文文档(www.flyingdoney.com,一定大有收获的。

其他:
其他的意思就是不专门讲技术但和技术有着一点联系的书:)
(1)Object Unencapsulated:java eiffel,and C++(中文版:对象揭秘:java,eiffel和C++)
By Ian Joyner
Publisher : Prentice Hall PTR
ISBN : 7-115-11152-9
Pages : 390
这本书从定位上来说不能算作一本严肃的技术书籍,虽然它想表现的很严肃。它的卖点就在于它敢于犯大忌来评论几种主流语言的优缺点。虽然我们大家都知道主流语言从来都没有高下之分,只有合适之分。java eiffel,C++这3语言既然从2000多种高级语言中生存下来了,就证明它们都是在各自领域在特定时代对特点问题的正确权衡的结果。Ian Joyner努力使自己表现的很公正的偏向eiffel而不断的打击c++,其实他唯一可以立的住脚的论点只可能是随着硬件条件的改善,c++诞生成长的背景已经变化,所以c++的权衡结果正慢慢的淡出时代。而并不是因为eiffel本身超乎寻常的优秀----虽然它的design by contract的确很cool

(2)Open Sources---Voices from the Open Source Revolution(中文版:开源软件文集----开源革命之声)
By Brian Behlendorf(Apache),Linus Torvalds(Linux),Larry Wall(Perl),Richard Stallman(FSF),Eric Raymond..........
Publisher : O'Reilly
ISBN : 7-5083-0198-6
Pages : 334
这本书是我在O'Reilly特价书目中发现的,打完折只需要10.5元,但是这本书的价值却是这10.5元的n倍!Open Source运动一直受到很多的质疑,即使在号称最民主最开放的美国,很多商人也是对Open Source报以敌意,这是因为Open Source触动了作为西方社会体系的基础的功利主义。当然,Open Source也并不是什么理想主义,我更愿意把它看作一种可能的新经济增产模式吧。这本书主要就是Open Source一些开创人员的回忆录,其中有大量的有趣的资料以及他们每个人对于Open Source哲学的不同理解--他们当中有顶级的黑客,商人和公司职员。唯一遗憾的是这本书写与1999年,4年过去了,Open Source还在持续不断的变化中(Apache项目越来越多,linux内核也快到2.6了),我想如果会出本书第二版的话,其中应该少不了jboss的那“著名”的<红白蓝3部曲>(虽然jboss一直被人....但毕竟是Open Source有趣的分支现象)。


ok,写了这么多,俺也累了,下去听仓木麻衣mm的歌去了......tonight i feel close to you...
P.S.:今年下半年可能还有几本不错的书,比如myan翻译的讲design by contract那本以及Gerald Weinberg的软件心理学丛书我都比较期待.

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧