代码阅读方法与实践阅读笔记05

 第六章讲的是如何应对大型项目,“通过扩展小型系统而形成的大型系统,其行为不同于小型系统。”大型的多个文件项目与小型项目之间的不同,并非仅仅在于分析他们的代码时,会遇到更多挑战,还在于它们提供了许多理解它们的机会。这一章介绍了一些总用在实现大型项目中的常用技术,之后分析了这类项目开发过程中具体的构成成分。描述了大型项目的组织方式,它们的编译和配置过程,不同文件版本如何空控制,项目专用工具的特殊角色,以及典型的测试策略。

总结的知识点:

1.可以通过浏览项目的源代码树—包含项目源代码的层次目录结构, 来分析一个项目的组织方式. 源码树常常能够反映出项目在构架和软件过程上的结构.

2.应用程序的源代码树经常是该应用程序的部署结构的镜像.

3.不要被庞大的源代码集合吓倒; 它们一般比小型的专门项目组织得更出色.

4.当您首次接触一个大型项目时, 要花一些时间来熟悉项目的目录树结构.

5.项目的源代码远不只是编译后可以获得可执行程序的计算机语言指令; 一个项目的源码树一般还包括规格说明|最终用户和开发人员文档|测试脚本|多媒体资源|编译工具|例子|本地化文件|修订历史|安装过程和许可信息.

6.大型项目的编译过程一般声明性地借助依赖关系来说明. 依赖关系由工具程序, 如make/ant/Maven及其派生程序, 转换成具体的编译行动.

7.大型项目中, 制作文件常常由配置步骤动态地生成; 在分析制作文件之前, 需要先执行项目特定的配置.

8.检查大型编译过程的各个步骤时, 可以使用make程序的-n开关进行预演.

9.修订控制系统提供从储存库中获取源代码最新版本的方式.

10.可以使用相关的命令, 显示可执行文件中的修订标识关键字, 从而将可执行文件与它的源代码匹配起来.

11.使用修订日志中出现的bug跟踪系统内的编号, 可以在bug跟踪系统的数据库中找到有关的问题的说明.

12.可以使用修订控制系统的版本储存库, 找出特定的变更是如何实现的.

13.定制编译工具用在软件开发过程的许多方面, 包括配置|编译过程管理|代码的生成|测试和文档编制.

14.程序的调试输出可以帮助我们理解程序控制流程和数据元素的关键部分.

15.跟踪语句所在的地点一般也是算法运行的重要部分.

16.可以用断言来检验算法运作的步骤|函数接收的参数|程序的控制流程|底层硬件的属性和测试用例的结果.

17.可以使用对算法进行检验的断言来证实您对算法运作的理解, 或将它作为推理的起点.

18.对函数参数和结果的断言经常记录了函数的前置条件和后置条件.

19.我们可以将测试整个函数的断言作为每个给定函数的规格说明.

20.测试用例可以部分地代替函数规格说明.

21.可以使用测试用例的输入数据对源代码序列进行预演.

posted on 2017-12-31 17:45  Macsad  阅读(76)  评论(0编辑  收藏  举报