`

代码走查表

阅读更多

[b]代码走查表(为张华本人所原创,版权所有)[/b]

[color=#ff00]走查前准备[/color]
1 得到一份解释代码的最新的设计文档       
2 代码解释时使用了严格的警告和错误检查参数并被解释通过       
3 代码使用带ISO标准的xxxx编译器进行解释
[color=#ff00]程序结构 [/color]
4 所有代码的结构清晰,具有良好的结构外观和整齐
5 所有的模块(函数和外部接口)定义清晰,模块分解清楚       
6 所有的功能需求都明显的覆盖      
7 高层设计独立于OS/环境      
8 结构设计能够满足机能变更      
9 代码体系结构描述了如何把代码重用到其他体系结构中      
10 整个代码体系结构组合合理      
11 所有主要的数据构造描述清楚,合理       
12 模块中所有的数据结构都定义为局部的,并且通过定义好的函数进行访问      
13 为外部定义了良好的函数接口      
14 所有的接口模块化,因此修改时不影响其他代码模块      
15 内存使用方法和内存管理策略描述清楚和正确      
16 代码体系构架对空间和速度都已经进行考虑      
17 提供了处理数据的策略      
18 具有同一的错误处理策略      
19 通过一套清晰的函数接口提供错误信息

[color=#ff00]目录文件组织 [/color]
20 所有的文件名符合文件命名规范,见名知意      
21 文件和模块分组清晰      
22 每个文件有文件头和标准的习惯一致(描述文件的用途,作者,对外提供的函数)23 每个文件都组织的有序 - 文件头,类型定义,原型,函数      
24 所有的代码行在80字符以内      
25 每个程序文件都小于2000行      
26 每个文件只包含一个完整功能模块的代码
[color=#ff00]函数组织   [/color]   
27 每个函数都有一个标准的函数头声明      
28 函数组织:头,函数名,参数,函数体      
29 函数定义符合ANSI或者用标准PERL的编译开关      
30 每个函数都能够在最多2页纸可以打印       
31 所有的变量声明每行只声明一个      
32 所有的函数名都小于64个字符      
33 每个函数之间都用2空行进行分开

[color=#ff00]代码组织 [/color]   
34 每行代码都小于80字符      
35 所有的变量名都小于32字符      
36 所有的行每行最多只有一句代码或一个表达式      
37 复杂的表达式具备可读性      
38 续行缩进      
39 括号在合适的位置      
40 每个顺序的小块用空行隔开      
41 注解和代码对齐或接续在代码之后    
[color=#ff00]移植性   [/color]  
42 代码与操作系统无关,不需要任何假设条件
[color=#ff00]函数 [/color]    
43 函数头清楚地描述函数和它的功能      
44 代码中有相关注解      
45 函数的名字清晰的定义了它的目标以及函数所做的事情       
46 函数的功能清晰定义       
47 函数中所有的部分都合理的组成函数,相关独立的语句组组成函数      
48 函数高内聚 只做一件事情,并做好      
49 函数和其他代码松耦合       
50 参数遵循一个明显的顺序;      
51 所有的参数都被使用       
52 函数的参数接口关系清晰      
53 如果一个函数有返回值,在所有的出口都有返回值      
54 函数使用了最少数目的return语句      
55 函数的参数个数小于7个       
56 所有的假设和接口清楚      
57 使用的算法说明清楚       
58 函数检查了输入数据的合法性      
59 函数异常处理清楚       
60 函数设计已经考虑了将来的变化      
61 调试信息存在于代码中并容易激活      
62 代码检查调用函数的返回值,参数和调用匹配       
63 函数确保了没有影响函数外代码       
64 递归定义了出口      
65 递归局限于一个函数      
66 堆栈大小支持递归调用的深度
[color=#ff00]数据类型与变量 [/color]    
67 数据类型存在数据类型解释      
68 代码为每种可能改变数据类型的数据使用一个不同的类型      
69 代码避免了重新定义预先定义的数据类型      
70 数据结构简单以便降低复杂性       
71 每一种变量分配了正确的长度、类型和存储空间      
72 静态变量明确区分      
73 所有的声明与编译器或具体的机器长度无关      
74 每一个变量都初始化了      
75 每一个变量都在接近使用它的地方才初始化      
76 每一个变量都在将要使用它的时候才初始化       
77 变量的命名完全、明确的描述了该变量代表什么      
78 命名和现实生活中的事务接近而不仅仅是一个程序类型      
79 同一种类型或指针命名的前缀指出类型或指针      
80 命名不与标准库中的命名相冲突      
81 程序没有使用特别的、易误解的、发音相似的命名      
82 所有的变量都有最小的活动范围      
83 所有的全局变量都描述清楚      
84 使用函数访问取代全局数据的访问      
85 所有的变量都用到了       
86 存取数据的程序与全局数据的用法是兼容的      
87 变量按照它的命名用途进行使用    
[color=#ff00]特殊 [/color]
88 所有的数组访问在它们的边界内      
89 代码已经处理了-1错误      
90 代码处理了指针异常      
91 所有常量定义和使用替代代码中的数字      
92 类型转换明确指明
[color=#ff00]其他注意项 [/color]    
93 代码与比较,计算变量的大小无关      
94 代码与操作符的优先级无关      
95 所有的表达式使用了正确的操作符
[color=#ff00]条件判断 [/color]
96 条件检查和结果在代码中清晰      
97 If/else 使用正确       
98 普通的情况在if下处理而不是else      
99 判断的次数降到最小      
100 判断的次数不大于6次,无嵌套的if链      
101 数字,字符,指针和0/NULL/FLSE 判断明确      
102 boolen表达式表示清楚       
103 最常用的情况最先判断      
104 所有的情况都考虑       
105 判断体足够短,以使得一次可以看清楚      
106 嵌套层次小于3次
[color=#ff00]循环 [/color]    
107 循环体不为空      
108 循环之前做好初始化代码      
109 循环体能够一次看清楚      
110 当有明确的多次循环操作,使用For循环       
111 当有不明确的多次循环操作,while循环被使用      
112 代码中不存在无穷次循环      
113 循环的头部进行循环控制      
114 循环索引具有有意义的命名      
115 循环设计得很好它,只干一件事情      
116 循环终止的条件清晰      
117 循环体内的循环变量起到指示作用      
118 循环嵌套的次数小于3次    
[color=#ff00]输入输出 [/color]
119 所有文件的属性描述清楚      
120 所有OPEN/CREATE调用描述清楚      
121 文件结束的条件进行检查      
122 显示的文本无拼写和语法错误
[color=#ff00]注释   [/color]   
123 有一个简单的说明,用于描述代码的结构      
124 每个文件和模块均以给予解释      
125 源代码能够自我解释      
126 每个人看到代码就能很快理解      
127 解释说明代码功能,准确描述代码意义       
128 解释不过于简单      
129 注解清楚正确      
130 注解为用户服务      
131 所有的假设和限制进行注解      
132 长的控制体结束,进行注解
[color=#ff00]总括 [/color]    
133 代码直观      
134 代码中的用语符合广告用语,而不是技术化的描述      
135 代码和设计文档对应      
136 无用的代码已经删除       
137 无用的注解已经删除

分享到:
评论

相关推荐

    代码走查检查表模板.xls

    代码检查

    JAVA代码检查表--用来评审java代码

    公司目前使用的java代码检查表,提供出来供大家参考

    代码走查记录表 模板

    项目代码走查记录表 描述检查人员 检查时间,检查发现那些问题等等。

    通达信软件238种常用颜色代码速查表.doc

    通达信软件238种常用颜色代码速查表 通达信软件238种常用颜色代码速查表是一个包含238种常用颜色代码的速查表,该表格提供了通达信软件中使用的颜色代码的参考值。该表格分为两部分:第一部分是颜色代码的十六进制...

    MACH3外部按钮OEM代码速查表

    《MACH3外部按钮OEM代码速查表》是一个针对MACH3数控系统用户的重要参考资料。MACH3是一款广泛应用于工业制造领域的计算机数控(CNC)软件,它以其高效、精准和灵活的特性赢得了广大用户的青睐。在MACH3中,OEM...

    机器&深度学习代码速查表.pdf

    本篇速查表的内容涵盖了Python基础、线性代数、基础神经网络构建、科学计算、大数据处理、数据可视化、机器学习等多个重要知识点,旨在为初学者和专业开发者提供参考和帮助,以便在编写代码的过程中提升效率。...

    Windows 7蓝屏代码含义速查表

    错误代码含义速查表中提供的信息主要包括以下知识点: 1. Windows 7操作系统蓝屏时所显示的停止代码通常由一组数字组成,例如0x000000XX形式,这些代码有助于快速识别问题的类型和根源。 2. 蓝屏代码0x0000通常...

    网页知识--常用HTML代码速查表

    ### 常用HTML代码速查表知识点解析 #### 1. HTML基础知识概览 HTML(HyperText Markup Language)是一种标准标记语言,用于创建网页结构。通过使用一系列预定义的元素来描述文本、图像和文档的其他组成部分。下面将...

    主板诊断卡代码速查表.doc

    主板诊断卡代码速查表.doc

    MySQL常见出错代码速查表

    通过查阅MySQL的官方文档或利用如“MySQL常见出错代码速查表”这样的资源,开发者可以更有效地诊断和解决遇到的问题。记得,每当遇到新的错误代码,及时查找其含义并采取相应措施,可以极大地提高工作效率。

    Java 编程规范CheckList

    文档以表格形式列出了一系列编程过程中需要注意的关键事项,覆盖了代码排版、注释等方面。 #### 二、排版规范 1. **缩进风格**: - 规定程序块采用4个空格的缩进。 - 这种统一的缩进风格有助于提高代码的可读性和...

    Windows蓝屏代码含意速查表

    ### Windows蓝屏代码含意速查表:深入解析与应对策略 #### 引言 Windows蓝屏(Blue Screen of Death,简称BSOD)是Windows操作系统遇到严重错误时的一种自我保护机制,它会显示一个蓝色屏幕并停止所有操作,以防止...

    大数据开发代码速查表.zip

    这份"大数据开发代码速查表.zip"压缩包提供了涵盖多个关键领域的Python速查表,旨在帮助开发者和分析师快速理解和应用相关技术。以下是这些速查表涉及的知识点详解: 1. **Pandas基础** - "Python数据科学速查表 - ...

    CRC32 查表法源代码详细说明

    CRC32 查表法代码检错能力极强,开销小,易于用编码器及检测电路实现。从其检错能力来看,它所不能发现的错误的几率仅为0.0047%以下。从性能上和开销上考虑,均远远优于奇偶校验及算术和校验等方式。因而,在数据...

    机器学习、深度学习代码速查表

    在IT领域,特别是数据分析和人工智能方向,机器学习与深度学习是至关重要的技术。这些技术的实现离不开各种强大的Python库,如...而"机器学习、深度学习代码速查表"这样的资源,则是提升技能和工作效率的有力辅助工具。

    蓝屏代码含意速查表

    ### 蓝屏代码含义详解 #### 一、概述 在Windows操作系统中,当系统遇到严重错误时,可能会出现所谓的“蓝屏”现象。蓝屏是Windows为了防止系统崩溃而采取的一种保护措施,通常会显示错误代码及相应信息,帮助技术...

    常用HTML代码速查表.doc

    这个“常用HTML代码速查表.doc”文档提供了一套常见的HTML标签及其用途,帮助开发者快速查找和使用相关代码。下面将对其中的一些关键标签进行详细解释: 1. `<A>`:链接标签,用于创建超链接,可以指向其他网页、...

    12-查表显示LED灯(51单片机C语言实例Proteus仿真和代码)

    12-查表显示LED灯(51单片机C语言实例Proteus仿真和代码)12-查表显示LED灯(51单片机C语言实例Proteus仿真和代码)12-查表显示LED灯(51单片机C语言实例Proteus仿真和代码)12-查表显示LED灯(51单片机C语言实例Proteus...

    CRC16 查表法校验与计算源代码

    在这个"CRC16查表法校验与计算源代码"中,包含了两个关键文件:`crc16.c`和`crc16.h`。`crc16.c`是实现CRC16算法的具体函数的源代码文件,而`crc16.h`则是头文件,通常会包含函数声明和可能的数据结构定义,以便在...

Global site tag (gtag.js) - Google Analytics