这是我们工作室内部BBS上的一个帖子,觉得还有点启发就发上来了。
《Essential COM》写作思路分析
COM是一个复杂的技术主题,而《Essential COM》被誉为“没有人能够比Don Box把COM阐释得更清楚”。可见,《Essential COM》一书的真正价值不在于技术含量,而在于其写作思路和表现形式,找到了“表达COM的最佳方法”。研究该书的写作思路和表现形式,无疑对本工作室高质量生产技术类图书有极大参考价值。
Don Box力图揭示出“the primary motivating factors behind COM”,也就是COM深层的“第一推动力”。Don Box强调COM是一个编程模型,是一组关于程序设计的严格有序的规则。Don Box力图揭示出COM的每一个特性的由来——究竟是在编程实践中遇到了什么样的问题使得原有的方法、技术不再适用,这种程序设计实践的不断发展和现有编程技术的相对落后之间的矛盾,导致人们设计出COM的这样那样的特性来?Don Box强调的是COM中的核心概念(Core Concepts,Basic Vocabulary)——接口、类、基本的线程安全单元和线程安全,强调的是COM的“Why”,而不是COM的“How”。Don Box还强调,学习COM的最好方法就是“用COM编程,同时思考程序为什么能够工作”,这其实也是计算机领域中一切问题学习的最好方法。
实际上,这些思路都不新鲜,恰恰是我们中国人思维最擅长的,喜欢问动因、挖底层、探寻本质规律。套用一般文学评论中常用的话,Don Box善于制造编程实践和现有技术的“紧张关系”,好不容易一个矛盾解决了,另一个问题又产生了,全书始终保持一种“张力”吸引读者阅读。就在这样一个又一个问题的解决中,COM也就逐渐阐释清楚了。不能不赞叹Don Box的写作策略!
全书章节安排如下:
第一章,COM是一个更好的C++。
在这一章,通过一个实例——改造一个C++类为可重用组件的过程,指出C++的一些缺陷,说明C++对象模型不能够成为“构建可重用软件组件”的理想底层基础。
第二章到第六章,分别讲述COM的基本概念:接口、类、对象、Apartment、安全性。这部分叙述的逻辑顺序,是按照一般的COM主题划分,特色是在于其中的讲解和阐释。
第七章,杂项。该章包括了一些不好分类的内容。
总结:
1 问题驱动式的叙述。背景介绍-导入问题-解决方法-COM特性,这样的一种模式非常自然,符合人的认识规律和思维习惯。
2 抓住核心概念。缺点在于没有总结性的图表,揭示出基本概念之间的联系。而《设计模式》就给出了书中所有设计模式之间的相互关系。
3 从编程中学习。丰富的代码和图例剖析,而且其中代码的质量很高,决不是拼凑之作。