[声明]:本文由kingofark创作。本文中的所有内容仅代表kingofark个人的观点,与任何其他个人或团体无关。任何人或团体都可以复制、传播本文,但需附上完整的本声明。kingofark对于不同意上述各点或不履行上述各要求的人或团体的言行不负任何责任。特此声明。
K氏读书杂感——Java
[kingofark的话]:是的,五评计划写不下去了……因为来不及看那么多书…… :-p 所以就退化成了有时间便随便说说罢。猛然间非常无厘头的想到“××营养米粉”,所以将文章谓之“K氏读书杂感”。
“推荐度”显示了kingofark个人对书的看法,范围在0到10之间,10即是指kingofark觉得极好(虽然并非就肯定时完美),0指的什么就不用累述了(虽然并非就肯定是渣滓)。“推荐度”免不了会带有个人偏执情绪,所以请您不要大以为然。
[一]:《Java编程思想 第2版》影印版,
Bruce Eckel著,机械工业出版社
[推荐度]:10
[推荐理由]:
《Thinking In Java》这样的书,
Bruce Eckel这个人,似乎没有必要介绍了。机械工业出版社的经典原版书库是笔者最为期待的图书系列之一,《Java编程思想 第2版》影印版自然是我必买的书籍。有侧重点的通读之后,给我印象深的大约有三……噢,不,是四处:inner classes、swing、JNI以及书的装帧质量。
其一:作者用了近30页介绍了(唔,这还能算是介绍吗?)inner classes,其之各种用法与变形被全全展现了出来。
其二:庞大的swing被挑出最重点的若干个介绍出来,感觉非常清晰,全没有查看api documentation时候的庞杂感。
其三:对JNI的介绍简短精悍、非常有用。如果你有兴趣查看j2sdk源代码的话(比如collections),会发现一到“敏感”的地方,就使用了JNI。对于一个学习Java的人来说,JNI是一个未必常用但必须知晓的技术。笔者曾饶有兴趣的在j2sdk源代码中翻了翻,看看哪些地方用了JNI。
其四:通过阅读这本书,笔者更加透彻的理解了“熵” 的原理,坚定了“The Truth Is Out There”的信念。被平平摊开在桌子上(注意,没有对其施加任何压力,只是让其自然摊开——当时笔者在看第471页)的这本《Java编程思想 第2版》影印版,首先在24小时之内自行进化成为“0-470页”和“471-末页”上下两册;笔者试图对其进行粘和,可是其在粘和后1小时之内继续分册,分册数呈线性增长趋势;就此以后,企图粘和这些实体的任何试验均以失败告终。所以kingofark的结论是“你观察它,它就变复杂了”(这也算X档案吧!?莫特探员救我!)。
该书的练习中,时常会看到作者提出诸如prove这样的要求。笔者认为,作为练习的解答者和初学者,不仅要show,还要prove,所以除了编出代码显示出运行结果,不妨由此自己多做些引申。你不仅可以用javap查看被disassemble出来的code,还可以用java –verbose查看详细的运行情况,也可以用jdb细细了解运行的实时状况。心里很有底的prove,正说明了你对java背后机制的掌握——这不是开始深入进去了吗?
另外,笔者感觉该书中的许多范例程序都是相当好的,非常值得细细体会和把握。
……哦,英文不行?那就让我们一起期待侯捷先生译的《Thinking In Java 2/e中文版》吧J
[二]:《Java高效编程指南》,Joshua Bloch 著,闻山 等译,机械工业出版社
[推荐度]:0
[推荐理由]:
译文行文不流畅(但绝非国内最差,甚至都算“还可以”),许多句子虽然说并不是完全不能理解,但却要耗费些许时间去分析和猜测句子结构——就国语水平从小学就很差的笔者而言,还不如直接看原版英文来得快。
译文中出现的翻译谬误不能说不严重,仅就目录中的标题而言:
“Item24:Make defensive copies when needed”(kingofark译:在需要的时候实施保护性拷贝)
被译为:
“6.2 使用保护性拷贝”
“Item32:Avoid strings where other types are more appropriate”(kingofark译:当使用其它型别更为恰当的时候,就避免使用strings)
被译为:
“7.4 尽量避免使用串”
原作者Joshua Bloch特别在前言里面提到,该书按照《Effective C++》格式给出一条条原则,其原版英文书也确实是这么做的,使用了“Item: …”的方式在标题中给出了这些原则。
大家看出在简体中译本里面的问题了吗?
假如有一本《kingofark高效生活指南》,里面提到
“Don’t wee-wee in public(不要在公共场合当众撒尿)”,
译为“不要撒尿”
可不可以呢?
如果有人憋尿得了尿毒症,岂不是要找kingofark扯皮?
如果有人教你“不要撒尿”,你听不听呢?……反正kingofark是不敢听信的。
如果有一本教你“不要撒尿”的生活指南,你看不看呢?……反正kingofark是不敢看的。
高效?搞笑?!指南?灾难?!
最后想告诉那些愿意看书的人:笔者通过在google上搜索,下载到了该书原文的第3、5、6、7章pdf——还是蛮多的嘛J
[三]:《Java程序调试实用手册 第二版》,Will David Mitchell 著,裘岚 译,电子工业出版社
[推荐度]:9
[推荐理由]:
那天,笔者刚刚在书店看到本书的第一版,想来想去还是决定买一本,万没想到下次来买的时候,标明“第二版”的书都出来了——奇怪的是,从该书的说明页(就是声明版权、标价的那一页)看来,仍然是原版第一版。
笔者没有通读该书,但感觉全文风趣轻松、译文较为流畅(有些地方比较不顺),行文叙事之中体现出作者丰富的经验和独到的见解——这是一个好征兆。在技术层面上,笔者也还没有找到什么“马脚”。该书的内容可谓丰富:漏洞的发现、防止与清除,debugger的使用、测试、错误信息,以及丰富有用的附录。光从涉及的内容来看,笔者认为这正是一本java程序员应该学习的东西。
令笔者印象深刻的是第7章“心理训练”、第12章12.6节“错误信息的内容”、附录C“计算机编程的24条法规”,以及附录E“Word宏”。
[第7章“心理训练”]
正文简单的谈到写注释、起名称以及个别独立的问题(7.2 不要混合使用深度搜索和广度搜索),让人觉得题不符实。倒是7.4节“环境”着实让笔者忍俊不禁。7.4节中,作者指出“调试时所处的环境非常重要”,给出了9条“帮助你改善身边的环境”的意见:
(第4条)“关闭计算机屏幕上的电子邮件提示。……”
(第5条)“如果接受一封巨大的电子邮件,请别人替你完成这件事”
(第7条)“找一个可以上升和降至一半的旗杆及一面旗帜,在旗帜上写下:‘降半旗时请不要打扰我。’人们会尊重你的决定。”
这些似乎有些偏执、自私甚至搞笑的意见,乍看上去,或许只得你一笑一恶;然而笔者认为,作者很形象的说明了“自己营造好的工作环境”的重要性,
于国内,这些条目大有借鉴学习之处——观之国内情势,全天工作打开QQ与无关人员聊天者,大有人在;心浮气燥,整天收信者,大有人在。其实说来说去,还是那句话,好的习惯和端正的态度重于一切——要不然怎么总是那么多“IT皮包公司”惨淡经营?
[第12章12.6节 错误信息的内容]
12.6.1 发生了什么事?
12.6.2 为什么发生
12.6.3 其后将发生什么现象?
12.6.4 现在用户可做什么?
12.6.5 将来用户能做什么?
12.6.6 现在用户从何处可以得到帮助?
12.6.7 用户如何才能帮助开发人员改善情况?
12.6.8 最近在用户的软件中发生过类似问题否?
12.6.9 用户应该如何向技术人员描述问题?
12.6.10 聊天室和帮助室
12.6.11 软件开发人员将为用户提供什么补偿?
12.6.1至12.6.11详细叙述了如何处理面向用户的错误信息,并在12.6.9的12.6.9.1“为什么不使用FAQ系统?”中独到的提出:
“(为什么不使用FAQ系统?)除了FAQ系统可能使用户感到乏味和不值得这一事实之外,看起来只有半数机会可以找到答案。多数用户都希望向某个谈论问题,原因只有一个,因为这才是讨论。”——不管同不同意作者的观点,笔者都不得不佩服作者对待作为产品的软件细致入微的考虑(作者在12.6.9.2中给出了很有启发性的建议)。
软件作为一个产品,其服务是全方位的,你需要为用户考虑周到,这是天经地义的。想到国内,笔者又想发牢骚:人家老外总是做得特好——我们赞叹啦、不服气啦、不以为然啦、瞧不起啦……其实这有什么呢?要我说人家就四个字:认真负责。我们有吗?
12.6.12 至12.6.18 讲述了开发者遇到错误报告时,在技术方面的应对措施。
12.6.19 “屏幕或者报告中应该显示什么内容”一节精炼的给出:
“消息应该回答用户的如下问题:
l 发生了什么?……(略)
l 接下来发生什么?……(略)”
[附录C“计算机编程的24条法规”]
这24条或许算不上什么经典之作,有些也是大家熟悉的条款。笔者认为这样的条目多多益善,打印出来贴一张在显眼的地方,绝对不会没有好处。
[附录E“Word宏”]
这一章给出了Word宏代码,“可以将一个普通的字处理程序变为一个不错的Java编辑器。”或许现在缺乏Java编辑器的人不在多数,但这倒是一个使用宏的上佳示例,还是非常有价值的(尤其你可以借此向朋友展示你这个“搞电脑的人”是如何“神奇的”使用WordJ)。书中给出了关于处理书签和跳转、隐藏的文本、个人注释、绿色的关键字、编程帮助的宏,并提供了可以得到更多宏的网址。
推荐度9,笔者未看到更多同类型的书。这本书并不完美,但显得重要、必要。
(完)