《代码阅读方法与实践》阅读笔记2

代码阅读方法与实践是一本不错的课外读物,原因有二:

一、它前面几章的内容比较基础,我们大部分都学习过,但是它与之前的各种语言教程不同,不是将各种变量怎么声明,关键字什么含义,及其它一些的具体而微的用法,他是以一种纵观全局的高度,以一种过来人对后辈的关切提醒来叙述,拉近了作者与读者之间的距离。

二、它以经典的软件实例为教材,讲了各种语言的源码,有的语言我们学习过,但是看到它在各种实际项目中的身影,还仿佛很生疏,没有见过原来他规范的形式是这样,很少见过简单的循环结构被复杂的使用实现复杂的功能,有的语言我们没有学习过,开阔我么的视野,增长我们的知识。

  不同的机制都可以将相同的数据元素组织成集合,每种机制都提供各自不同形式的存储和访问的方式。用数组实现的向量,提供对所有元素的随机访问,但它不适合运行期间大小发生变化的情况。向量还可以将多组元素组织成表的形式,或堆叠成二维,创建矩阵。向量的操作有时被限定成只能发生在向量的某一端,栈就是如此;向量的操作也有可能被限定为以先入先出的次序进行,这时候向量就成了队列。在元素的次序并不重要的情况下,常常用映射创建查找表和集合,后二者都可以用来形成元素的集合。指针可以将元素连接到一起,许多数据结构都使用了指针的这种能力。链表能够容易地动态增长,然而,对链表的访问只能以顺序的方式进行(栈和队列的操作也是如此),而组织得当的树既允许基于键来访问其中的数据元素,也可以容易地动态增长,同时还允许以安排好的方式进行遍历。

  递归代码经常用来相似的定义来反映数据结构或算法。异常在c++和java中用来组织对错误的处理。通过使用软件或硬件的并行性,程序可以增强响应性,有条理地分配工作,或者有效地使用多处理器的计算机。当并行机制不可用时,程序就必须采用异步信号和局部跳转来响应外部事件。

  大型的编码工作由于他们的大小与范围,经常能够证明应用一些技术的必要性,而在其他情况下这些技术可能根本不值得使用。本书中多出论及了许多这类技术;下面列出一些这类设计与实现方法:可视化过程和使用准则、重要的构架、积极的分解、多平台支持、面向对象技术、运算符重载、库、组件和进程、领域专用和定制的语言工具、对预处理的积极使用

原文地址:https://www.cnblogs.com/bdqczhl/p/4869638.html