代码大全读书笔记Chap7-9
第 7 章 高质量的子程序
7.1 章节概述
本章主要介绍何为高质量的子程序,以及如何构建高质量的子程序的内容。介绍的内容包括为何创建子程序、如何创建子程序:包括子程序的整体设计、子程序命名、子程序参数的使用、子程序的长度、使用何种类型的子程序、以及宏的使用等相关方面的内容。
本章的内容旨在帮我们构建高质量、优雅的子程序提供一些思路。
7.2 关键内容
7.2.1 概念相关
子程序:子程序是为实现一个特定目的而编写的一个可被调用的方法或者过程。例如C++中的函数、Java中的方法等。
7.2.2 关键内容
- 创建子程序最主要的目的是要提高程序的可管理性,当然也有其它一些好的理由。其中,节省代码空间只是一个次要原因:提高可靠性、可读性、可修改性等都更重要一些;
- 有时候,把一些简单的操作写成独立的子程序也很有价值;
- 子程序可以按照其内聚性分为很多类,而我们应该让大部分的程序拥有功能上的内聚性,这是最佳的一种内聚;
- 子程序的名字是它质量的指示器。如果名字糟糕但恰如其分,那就说明这个子程序设计的很糟糕。如果名字糟糕而且又不准确,那么它就反应不出程序是干什么的,不管怎样,糟糕的子程序名都意味着程序需要修改;
- 只有在某个子程序的主要目的是返回由其名字所描述的特定结果时,才应该使用函数;
- 细心的程序员会非常谨慎的使用宏,而且只在万不得已时才使用。
7.3 思维导图
第8 章 防御式编程
8.1 章节概述
本章节的内容主要是介绍防御式编程相关的内容,包括什么是防御式编程、防御式编程是如何操作的、错误处理技术、异常处理以及一些辅助的调试代码。讲述我们要如何面对残酷的非法数据师姐,在遇到“绝不会发生”的事件以及其他程序员犯下的错误时保护自己。
8.2 关键内容
8.2.1 概念相关
防御式编程:在防御式编程中要建立一种这样的思维,那就是你永远也不能确定另外的程序会做什么。防御式编程的主要思想是:子程序不应该因传入数据错误而被破坏,哪怕是由其它子程序产生的错误数据也不行。其核心思想就是要承认程序都会有问题,都需要被修改。
8.2.2 关键内容
- 最终产品代码中对错误的处理方式要比“垃圾进,垃圾出”要复杂的多;
- 防御式编程技术可以让错误更容易被发现、更容易修改,并减少错误对代码破坏;
- 断言可以帮助人尽早发现错误,尤其是在大型系统和高可靠性的系统中,以及快速变化的代码中;
- 关于如何处理错误输入的决策是一项关键的错误处理决策,也是一项关键的高层设计决策;
- 异常提供了一种与代码正常流程角度不同的错误处理手段。如果留心使用异常,它可以成为程序员们只是工具箱的一项有益补充,同时也应该在异常和其它错误处理手段之间进行权衡比较;
- 针对产品代码的限制并不适用与开发中的软件。你可以利用这一优势在开发代码中添加有助于更快的排查错误的代码。
8.3 思维导图
第 9 章 第9章伪代码编程过程
9.1 章节概述
本章主要讲述创建类和子程序的主要步骤 ,从微观上关注过程——也就是关注创建单独的类及其子程序的步骤。另外,本章还讲述伪代码编程过程,这种编程过程有助于减少设计和编写文档所需要的工作量,同时提高这两项工作的质量。
9.2 关键内容
9.2.1 概念相关
-
创建类的步骤
-
创建子程序所需要经历的主要活动
-
编写子程序的代码
9.2.2 关键内容
- 创建类和子程序通常都是一个迭代的过程。在创建子程序的过程中获得的认识常常会反过来影响类的设计;
- 编写好的伪代码需要使用自然语言,避免使用特定的编程语言才有的特性,同时要注意在意图的层面上编写伪代码;
- 伪代码编程过程是一个行之有效的做详细设计的工具,它同时让编码工作更容易。伪代码可以直接转化为注释,从而确保了注释的准确度和实用性;
- 不要只停留在你想到的第一个设计方案上。反复使用伪代码做出多种方案,然后选择其中最佳的一种方案再开始编码;
- 每一步完成后都要检查你的工作成果,还要鼓励其他人来帮你检查。这样你就会在投入精力最少的时候,用最低的成本发现错误。