代码静态测试(java)
工欲善其事,必先利其器
环境
- jdk1.8
- IntelliJ IDEA
1.静态代码检查
1.1工具
- 阿里代码规范检测工具
安装教程:阿里代码规范检查工具
1.2规范等级
在 Snoar 中对代码规则有五个级别,这是前三个:崩溃/严重/重要 ,也就是说前两级别是必须要处理掉的。
Blocker:
即系统无法执行、崩溃或严重资源不足、应用模块无法启动或异常退出、无法测试、造成系统不稳定。
严重花屏、内存泄漏、用户数据丢失或破坏、系统崩溃/死机/冻结、模块无法启动或异常退出、严重的数值计算错误、功能设计与需求严重不符、其它导致无法测试的错误, 如服务器500错误
Critical
即影响系统功能或操作,主要功能存在严重缺陷,但不会影响到系统稳定性。
功能未实现、功能错误、系统刷新错误、数据通讯错误、轻微的数值计算错误、影响功能及界面的错误字或拼写错误、安全性问题
Major
即界面、性能缺陷、兼容性。操作界面错误(包括数据窗口内列名定义、含义是否一致)、边界条件下错误、提示信息错误(包括未给出信息、信息提示错误等)、长时间操作无进度提示、系统未优化(性能问题)、光标跳转设置不好,鼠标(光标)定位错误、兼容性问题
Minor/Trivial
即易用性及建议性问题。界面格式等不规范、辅助说明描述不清楚、操作时未给用户提示、可输入区域和只读区域没有明显的区分标志、个别不影响产品理解的错别字、文字排列不整齐等一些小问题
1.3阿里开发手册
下载地址:https://www.lanzous.com/i4jauib
密码 : 9tz4
2.代码优化
2.1工具
JProfiler 安装教程:https://blog.csdn.net/wytocsdn/article/details/79258247
2.2从哪些方面:结构&效率
百度了一下,如下:
(1)优化算法时间复杂度。
(2)减少冗余数据。
(3)合理使用 copy 与 deepcopy。
(4)使用 dict 或 set 查找元素。
(5)合理使用生成器(generator)和 yield
(6)优化循环。
(7)优化包含多个判断表达式的顺序。
(8)使用join合并迭代器中的字符串。
(9)选择合适的格式化字符方式。
(10)不借助中间变量交换两个变量的值。
(11)使用 if is。
(12)使用级联比较 x < y < z。
(13)while 1 比 while True 更快。
(14)使用**而不是 pow。
(15)使用 cProfile, cStringIO 和 cPickle 等用 c 实现相同功能(分别对应profile, StringIO, pickle) 的包。
(16)使用最佳的反序列化方式。
(17)使用 C 扩展(Extension)。
(18)并行编程。
(19)终级大杀器:PyPy。
(20)使用性能分析工具。参考博文:https://blog.csdn.net/q911137905/article/details/90142984
个人觉得:
-
结构:尽量遵守七大OO设计原则,可以学习一下Gof23(设计模式)。
-
效率:算法,优化循环,减少对象创建,多线程,不要写慢SQL。