7.1.1 在软件设计过程中构筑软件质量。

7.1.2 代码质量保证优先原则

 1.正确性,指程序要实现设计要求的功能。
 2.稳定性、安全性,指程序稳定、可靠、安全。
 3.可测试性,指程序要具有良好的可测试性。
 4.规范/可读性,指程序书写风格、命名规则等要符合规范。
 5.全局效率,指软件系统的整体效率。
 6.局部效率,指某个模块/子模块/方法的本身效率。
 7.个人表达方式/个人方便性,指个人编程习惯。

7.1.3 过程/方法中申请的(为打开文件而使用的)文件句柄,在过程/方法退出之前要关闭。

说明:分配的内存不释放以及文件句柄不关闭,是较常见的错误,而且稍不注意就有可能发生。这类错误往往会引起很严重后果,且难以定位。

7.1.4 认真处理程序所能遇到的各种出错情况。

7.1.5 系统运行之初,要初始化有关变量及运行环境,防止未经初始化的变量被引用。

7.1.6 系统运行之初,要对加载到系统中的数据进行一致性检查。

说明:使用不一致的数据,容易使系统进入混乱状态和不可知状态。

7.1.7 严禁随意更改其它模块或系统的有关设置和配置。

说明:编程时,不能随心所欲地更改不属于自己模块的有关设置如常量、数组的大小等。

7.1.8 不能随意改变与其它模块的接口

7.1.9 充分了解系统的接口之后,再使用系统提供的功能。

7.1.10 编程时,要防止差1错误。

说明:此类错误一般是由于把“<=”误写成“<”或“>=”误写成“>”等造成的,由此引起的后果,很多情况下是很严重的,所以编程时,一定要在这些地方小心。当编完程序后,应对这些操作符进行彻底检查。

7.1.11 要时刻注意易混淆的操作符。当编完程序后,应从头至尾检查一遍这些操作符,以防止拼写错误。

说明:形式相近的操作符最容易引起误用,“=”与“==”、“|”与“||”、“&”与“&&”等,若拼写错了,编译器不一定能够检查出来。

示例: 如把“&”写成“&&”,或反之。

ret_flg = (pmsg->ret_flg & RETURN_MASK);

被写为:

ret_flg = (pmsg->ret_flg && RETURN_MASK);

或者:

rpt_flg = (VALID_TASK_NO( taskno ) && DATA_NOT_ZERO( stat_data ));

被写为:

rpt_flg = (VALID_TASK_NO( taskno ) & DATA_NOT_ZERO( stat_data ));

7.1.12 有可能的话,if语句尽量加上else分支,对没有else分支的语句要小心对待;switch语句必须有default分支。

7.1.13 使用Long代替 Date。

说明:Date受系统时区影响,而且 java.util.Date 和java.sql.Date 的精度不同,转换时会引入误差。

7.1.4 多线程的中的子线程退出必需采用主动退出方式,即子线程应return出口;不调用 Thread 类的 resume(), suspend(), stop() 方法。

说明:子线程return退出前释放资源。

suspend()和resume()必须要成对出现,处理不当容易导致死锁,建议使用wait(), notify(), notifyAll()。
stop()会终止当前线程并释放一切资源,该线程将停止run()方法,可能会导致一些清理性的工作的得不到完成,如文件,数据库等的关闭,应使用状态变量来控制线程的退出。

最后修改日期: 2022年2月21日