代码阅读方法与实践读后感二

本书的特色在于,同数据结构和语言描述图书不同,涉及更多工程实践。同软件工程不同,涉及具体实现。总之和确实没有同类型的书。本书缺点是图书出的太早,那个时候还没有sourceinsight, visual slickedit,ultraedit。因此代码阅读工具比较陈旧,大家都不这么用了。另外,语言和数据结构的介绍还可以更加工程,我的感觉对比一下linux 2.4和2.6 list的实现,就可以知道仅仅list就有这么丰富的内涵,传统的数据结构课程从工程的角度讲有些落伍。

这本书在前面已经分析了大量能够影响程序指令序列的控制流程的语句,虽然这些语句已经能够满足大多数常见的编程任务,并且也是最常遇到的语句。然而,一些并不常见的部分对许多应用程序也很重要。递归代码经常用相似的定义来反映数据结构或算法。异常在C++和Java中用来组织对错误的处理。通过使用软件或硬件的并行性,程序可以增强响应性、有条理的分配工作,或者有效的使用多处理器计算机。当并行机制不可用时,程序可能必须采用异步信号(能够在任意时间发出的信号)和非局部跳转来响应外部事件。最后,为了提高效率,程序员往往在平常调用C函数的地方,使用C语言预处理器的宏替换功能。递归就不多说了,大家都比较熟悉了,接下来我们来看看剩下几种。异常机制允许程序员将处理错误的代码从代码的正常控制流程中分离出来。在C++和Java程序中都会遇到类似的构造,这些语言中用异常处理的一些错误,通过信号报告给C程序。给予异常错误处理不同于C语言中基于信号的代码,异常作为语言的一部分而不是由库提供的功能,能够沿着程序的词法和函数的调用栈传播,允许程序员以此结构化的方式处理它们。有些程序并行的执行部分代码,以增强对环境的响应,安排工作的分配,或有效的使用多个计算机或多个处理器计算机。这种程序的设计属于一个不断发展的研究领域。

代码阅读这是一个极端困难的课题,不同的人会有不同的方式处理这一问题,没有一个标准的答案去解决这个问题,无论从哪方面讲,代码阅读都不是容易的。这本书努力的去阐述这个主题,在阅读这本书的时候,我真的是头很大,一直在阅读和理解别人的代码,无数次的想要丢下这本书,不想再看下去。

平时,经常会遇到给别人修改程序的情况,每个人都有自己编程的习惯和思路,总是会看不惯别人的命名方式或者别的地方,就算是忽略这些细节方面,每个人思考问题的方式和习惯不一样,所以对于一些复杂的程序,看懂他人的代码都需要费些时间,改代码容易,就是看懂代码很难。但是从另外一个方面说,阅读别人的代码可以学到很多的东西,别人的编程习惯或者思考方式会更优秀,会以更简单的一种方式去解决问题,从别人的代码里面也可能会学到一个新的算法,新的解决方式。

这本书中列举了很多的开源代码,这些代码中存在了各种编程风格以及编程方法,这本书能够帮助了解软件的实现细节,它提供了这些软件的创建者在开发过程中做出各项选择的初衷,这本书不同于其他优秀的教科书,它不讲授计算机科学的内容,但是它会使读者了解理解并意识到这些程序员在创建他们的复杂软件时头脑中进行权衡的内容。

我看了之后有以下几点收获:

1.要养成习惯,经常花时间阅读别人编写的高品质代码;

2.阅读代码的过程中,快速从坏代码中区分出好代码是一项有价值的技能,接触编码的反面例子有助于提高这种技能,但不应该从品质低下的代码中学习如何正确编程;

3.要有选择的阅读代码,同时还要有自己的目标;

4.注意并重视代码中特殊的非功能性需求(没太看明白非功能性需求是什么?);

5.从小型程序开始阅读,不要立即陷入大型系统研究中;

6.积极的阅读现有代码的方式是改进它;

当然还有以具体代码作为范例,并注重维护、演进、重用和审查。

你可能感兴趣的:(代码阅读方法与实践读后感二)