《代码阅读方法与实践》读书笔记3
上一次阅读了本书的前五章,了解的编写小程序以及阅读小程序代码的各种技巧,接下来本书讲到了应对大型项目的技巧、文档的编写以及文档的解读、系统架构、代码阅读的工具,最后还讲解了一个完整的例子,一如第一章一样。
第六章 应对大型项目
大型的多个文件项目与小型项目之间的不同,不仅仅在于分析他们的代码是,会遇到更多的挑战,还在于他们提供了许多理解他们的机会;在大型项目的开发中,很多必要的技术会应用到其中,有很多思想都是小型的项目用不到的,而且我们可以看到:大型项目的组织是非常重要的,一个好的组织能够反映出项目在构架和软件过程上的结构;在创建新的代码的过程定义得十分清晰明确,那么,产生的目录结构往往会十分整洁有序;当然在编译过程和制作文件、配置、修订控制中也有很多需要注意的问题,这都是有一定的规范和约定,按照这些规范编写而且遵守这些约定往往能够给阅读代码的人提供相当大的便利。
第七章 编程规范和约定
在这一章中讲到了在编程中的规范和约定,在代码的优劣辨别中就提到了代码的规范书写,这在其中占了很大的比重,我们在阅读代码时第一眼看到的就是代码的编程风格,有一个良好的编程风格能够增强代码的可靠性和可维护性;第一步就是文件的命名及组织,大多数的规范都会说明文件应该如何命名,应该使用怎样的扩展名。
比如java类中的元素的次序:1、类变量;2、实例变量;3、构造函数;4、方法;而且变量和方法应该以private、protected和public的次序来定义。接下来就是缩进了,以缩进来强调每个块的嵌套层次。再下就是规定声明以及每个具体语句的编排方式;再然后就是命名的约定了:变量、类、函数的标识符:1、首字母大写;2、用下划线分割单词;3、只取首字母;
也以Java为例:包名总是从一个顶级的域名开始,类名和接口名由大写字母开始,方法和变量名由小写字母开始。接下来是便是如何编码了,要保证正确或一致的用户界面。
第八章 文档
任何重大的软件开发项目都会伴随各种正式或兴之所至的文档。在其开发过程中,文档的编写往往会占据很大的时间比例;其中有系统规格说明文档、软件需求规格说明文档、设计规格说明文档、系统的测试规格说明文档;由此就可以看出文档的编写贯穿了整个项目的始终;
阅读这些文档可以快捷地获取系统的概况,了解提供特定的代码。文档经常能够反映和揭示出系统的底层结构,有助于理解复杂的算法和数据结构,能够阐明源代码中标识符的含义,能够找到设计者当时的观点,说明内部的编程接口,包括了已知的实现问题和bug,提供测试用例和实际应用的例子等等好处,这也促使了我们对于文档的书写;当然文档的书写也有一定的问题,比如写入错误的信息,那么对于我们对系统的分析会造成很大的干扰,但是,这一小小的瑕疵不能掩盖其强大的作用。
第九章 系统架构
从系统的源代码库洞悉系统的构架,不是一件容易做到的事。然而,在识别出重要的构架元素之后,那么,浏览整个系统,了解系统的结构和属性,以及规划增加、修改和重构活动就会变得更为容易。对系统构架的理解,能够帮助我们了解交互的类型、通信模式和代码结构。
许多系统都遵循一种简单的“主程序和子例程”结构。其他的系统采用更为复杂的构架性结构,来组织它们的各个构成子系统。常见的、重要的结构可以归类为少数迥然相异的构架类型:集中式储存库、数据流、面向对象或分层构架。
但是,一个系统可以同时展示出多种不同的构架类型。以不同的方式检查同一系统、分析系统的不同部分、或使用不同级别的分解,都有可能发现不同的构架类型。
接下来就讲述了常见的几种构架类型。然后讲解了系统的控制模型,它描述了构成系统的各个子系统之间如何进行交互。有事件驱动的系统,系统管理器控制模型、状态变迁模型;接下来,涉及到系统中单个元素的包装方式--元素封装;在处理大量的代码时,了解将代码分解成单独单元的机制极为重要。有模块,命名空间,对象等。