合作者:201631054322,201631063127
代码地址:https://gitee.com/qlqaq/test
作业链接地址:https://edu.cnblogs.com/campus/xnsy/2018softwaretest2398/homework/2187
编码规范
参考了很多大型公司给的代码规范过后,和伙伴多次的线上线下讨论后最终达成了一致意见,决定采用阿里巴巴公司 java 规范作为自己的规范,阿里巴巴的Java规范很好,解释也很详细,所以就不再对其规范进行任何的更改
阿里巴巴公司 java 规范的官方网站:https://github.com/alibaba/p3c
扩展功能
本次博客主要是对上次功能的补充和完善,此次代码实现了WordCount的扩展功能有以下几点:
wc.exe -s //递归处理目录下符合条件的文件
wc.exe -a file.c //返回更复杂的数据(代码行 / 空行 / 注释行)
wc.exe -e stopList.txt // 停用词表,统计文件单词总数时,不统计该表中的单词
[file_name]: 文件或目录名,可以处理一般通配符。
其中,
代码行:本行包括多于一个字符的代码。
空 行:本行全部是空格或格式控制字符,如果包括代码,则只有不超过一个可显示的字符,例如“{”。
注释行:本行不是代码行,并且本行包括注释。一个有趣的例子是有些程序员会在单字符后面加注释。
代码互审
在和同学的合作过程中,发现了很多的问题,比如说命名不规范,代码不简洁,无注释等诸多情况。
1变量命名不规范
定义的名称不能很好的诠释变量的用途
2函数名命名不规范
函数的命名未采用驼峰的格式
暂时只发现了以上的代码命名不规范情况……
静态代码检查
静态代码审查工具:PMD
检查结果如下:
出现了一个错误,诸多警告
错误的原因:正则表达式书写有问题,应该将“//”改为"\\"
修改过后再次进行静态代码检查,结果如下:
静态代码检查无任何错误
单元测试
1.代码功能测试
由于用的是Java开发,所以用的单元测试工具为:Junit
Junit单元测试工具使用很简单,在想要测试的功能模块上加上@Test,然后再导入依赖即可进行测试
好处:避免了程序员因测试功能模块而去写繁杂的测试代码
经过测试,发现了一些功能的编码错误和逻辑错误,经过修改、完善后,顺利的通过了单元测试
2.黑盒测试
目录结构
/testfile.c下的文件
file.c,file1.c,file2.c的内容分别为
wc.exe -s -a *.c //递归处理目录下符合条件的文件
wc.exe -e stopList.txt // 停用词表,统计文件单词总数时,不统计该表中的单词
统计指定目录下的文件代码行/空行/注释行
性能优化
性能优化工具:JProfiler
简介:JProfiler是一个全功能的 Java 剖析工具( profiler ),专用于分析 J2SE 和 J2EE 应用程序。它把CPU 、执行绪和内存的剖析组合在一个强大的 应用中。 JProfiler 可提供许多 IDE 整合和应用服务器整合用途。 JProfiler直觉式的 GUI 让你可以找到效能瓶颈、抓出内存漏失 (memory leaks) 、并解决执行绪的问题。它让你得以对 heap walker作资源回收器的 root analysis ,可以轻易找出内存溢出; heap 快照( snapshot )模式让未被参照( reference )的对象、稍微被参照的对象、或在终结( finalization )队列的对象 都会被移除;整合精灵以便剖析浏览器的 Java 外挂功能。
在本次实践的过程中,主要使用到了JProfiler的堆遍历器(Heap walker)、类Classes(显示所有类和实例),由于代码量比较小,目录结构的单一性,所以测试结果很理想,性能很好!运行程序的反应时长很短!