跟我学Java代码检测
1.1跟我学Java代码检测Jupiter⼯具——如何应⽤Jupiter插件审查Java 程序代码规范和质量
1.1.1评审和度量软件系统项⽬中程序代码的编程质量java下载过程
1、软件质量的保证不仅要着眼于“最终的结果”、也要着重于“开发的过程”
软件开发的基本流程为需求分析(Requirements Capture)阶段、系统分析与设计(System Analysis and Design)、系统实现(Implementation)和测试(Testing)及维护(Maintenance)等过程,因此相应的软件开发过程⽅⾯的质量要求可以定义为:
1)需求质量
2)设计质量
3)实现质量
4)发布和维护质量
maven 私库“细节决定成败、过程决定结果!”没有开发过程中的每个阶段的质量监控和保证,那怎么可能⼜有最后
的软件系统项⽬及软件系统产品结果的最终质量?因此,如何在软件系统的开发过程中,开发⼈员能够真正保证和控制开发过程中每个阶段的质量?
很显然的最基本⼿段是在软件系统每个开发阶段中都设置⼀个“⾥程碑”作为“质量的控制点”,⽽对于“质量的控制点”的把控,⼀般是以“评审”或“审查”为主要的考核⼿段,在程序代码的编程过程中的质量控制则主要是应⽤“单元测试”和“代码审查”等技术⼿段。
2、软件质量的保证不仅要着眼于“事后的测试”,也要着重于“开发中的预防”php自学规划
由于早期的软件系统开发过程的不规范和开发⼈员缺少对软件系统的功能单元和整体测试的意识,对于软件系统产品和软件系统项⽬的最终质量的保证,基本上是依赖于软件系统的设计⼈员和程序代码编写者(程序员)的技术⽔平和⼯作态度及开发的效果,但“⼩作坊”式的软件系统开发⽅式是很难持续地保证软件系统产品的质量及质量的稳定性。
为此,国内有许多软件企业在2000年左右开始建⽴企业内部的专业化的软件测试⼩组,对本企业所开发的软件系统进⾏专门的测试和评估,这在⼀定的程度上提⾼了软件系统产品和软件系统项⽬的整体质量。但软件测试⼩组所实施的“系统功能”和“系统性能”等⽅⾯的各种测试,其实只能起到“事后检测”的效果。
⽽且这种“事后检测”的质量保证⼿段其实也是⾼成本的,因为软件系统的测试⼈员
⼀旦发现出了软件系统存在“缺陷(Bug)”,⽽为了能够修补“缺陷”所需要付出的代价其实也是很⾼的。因此,软件系统质量的保证不仅要着眼于“事后的测试”,更要看重“开发中的预防”——“防病胜过治病”。
3、对程序代码的审查是保证软件系统项⽬程序代码质量的⼀个重要环节
软件系统的开发⼈员通过代码审查(Code Review)的相关活动,可以及时地发现出在软件应⽤系统功能实现代码中的各种缺陷(Bugs)——⽐如,与业务有关的缺陷和与技术实现有关的缺陷,并从程序代码的可维护性、可扩展性的⾓度来度量功能实现代码的质量,然后再提出对应的合理化修改的建议。
4、软件系统开发项⽬组中的各个成员定期相互进⾏代码的审查
“⼈⾮神仙、孰能⽆过”!每个程序员所编写的程序代码中不可避免地会存在各种形式的“缺陷”,⽽程序员本⼈在很多情况下是很难发现出这些“缺陷”的,因为每个⼈都存在⼀定的“盲点”!
因此,对于软件系统程序代码中的这些“缺陷”最好是由软件系统项⽬或者产品开发中的其他开发⼈员来发现——这就像作者写的书稿⼀定要由出版社的编辑⼈员进⾏审稿,尽管作者对书稿也校对了多次,但出版社的编辑⼈员还是会发现出书稿中所存在的问题。
因此,有必要在软件系统的程序代码编程实现中,项⽬组中的各个成员定期相互进⾏代码的审查——因为代码审查是及时发现错误的⽐较经济可⾏的⽅法。代码审查是编码阶段⾮常重要的品质保障活动——因为它是对语法正确的程序代码施加更⾼和更严格的编程要求。
5、为什么需要软件系统开发项⽬组中的各个成员定期相互进⾏代码的审查
软件系统开发项⽬组中的各个成员之间通过相互进⾏代码的审查活动,不仅可以提⾼程序代码的可读性和软件系统项⽬或者产品中的程序代码编程风格的⼀致性,也能够及时地发现出相互配合的接⼝部分的程序代码是否正确。
6、对软件系统项⽬或者产品中的程序代码审查的主要内容
发现程序代码中的缺陷可以采⽤多种不同的形式——⽐如由代码本⾝的编写者⾸先⾃⼰进⾏审查(此时如果能够发现出程序代码中的缺陷,则修复缺陷的成本将会很低),然后再由开发组内的其他开发⼈员互查,最后再由开发组内的测试⼈员进⾏严格的系统测试。为此,相关⼈员也都必须要了解和把握相关程序代码审查的主要内容。
(1)程序代码的编写风格和是否遵守编码标准和规范
对“程序代码的编写风格和是否遵守编码标准和规范”⽅⾯的审查内容主要涉及⽐如
程序包名称、类名称、全局变量、局部变量等各种符号的命名规则、代码缩进和注释格式等,以确保整个软件系统项⽬或者产品中的所有的程序代码的编写风格的⼀致性。
下⾯⽰例中所⽰的程序代码是不规范的类名和⽅法名的命名程序代码——因为在Java 平台中倡导类名称的⾸字母为⼤写、⽅法名称的⾸字母为⼩写。
class testA{ //类名称⾸字符应该是⼤写字符
public void Testmethod(){ //⽅法名称⾸字符应该是⼩写字符
}
}
(2)程序代码中的缺陷或者潜在的程序逻辑和流程控制⽅⾯的缺陷
对“程序代码中的缺陷或者潜在的程序逻辑和流程控制⽅⾯的缺陷”⽅⾯的审查内容主要涉及⽐如永远不可能执⾏到的程序代码段,或者控制条件语句的各种变量永远不会满⾜条件表达式的要求等形式。
下⾯所⽰的程序代码中的条件语句(请见⿊体所标识的语句)存在程序逻辑和流程控制的缺陷,由于u
serName不为空,则该条件测试逻辑不可能通过,程序⽆法进⼊到该条件程序块中,从⽽导致条件语句内的相关程序代码永远不可能执⾏。
String userName=”张三”;
if (userName == null)
doSaveUserInfo();
}
(3)规避各种多余的语句
⽐如多余的import包引⼊、不必要的强制类型转换、从未使⽤过的成员属性变量、多余的接⼝修饰符等⽅⾯的问题。
下⾯所⽰的程序代码⽰例存在多余的语句缺陷(请见⿊体所标识的语句),根据对象赋值兼容原则,⼦类的对象可以直接赋值给对应的程序基类的对象,因此没有必要进⾏强制类型转换。
class SomeBase{
bordercollapse什么属性
}
class SomeDerived extends SomeBase{
public void someMethod(){
安装mysql没有快捷方式SomeBase oneSomeBase;
SomeDerived oneSomeDerived=new SomeDerived();
oneSomeBase=(SomeBase)oneSomeDerived;
}
}
在代码审查过程中发现出的程序缺陷纠正起来更⽅便,因为已经出导致程序缺陷的具体代码的位置。通过实施程序代码的审查过程,还能够增强软件系统开发项⽬组中的各个开发⼈员团队的凝聚⼒,相互阅读对⽅的程序代码不仅达到互相学习的⽬的,也还能通过思想的交流获得更好的软件系统设计和程序代码功能实现的结果。
7、切实保证程序代码审查活动能够取得既定的质量保证效果
程序代码审查者对程序代码需要逐⾏静⼼地阅读和查看,⽽且还应该要全⾯地审查。因为软件系统的程序模块之间是存在有⼀定的关系或者联系的。在程序代码审核活动结束阶段,最后的程序代码审核者要依据审核的结果编写出“代码审核报告”并记录所发现出的各种问题及修改的建议;⽽程序代码的编写者则要根据“代码审核报告”中给出的修改建议,相应地修正有缺陷的程序代码。
为了能够保证程序代码审查活动能够取得既定的质量保证效果,程序代码的编写者和代码审核者要共同对程序代码的质量承担责任,只有这样才能真正地保证代码审查活动不是⼀种形式或者避免流于形式。
8、⼈⼯程序代码审查⽅式存在效率低和需要依赖于开发⼈员的技术⽔平的⾼低
由于实际企业软件应⽤系统的功能在最终的实现⽅⾯其实是⽐较复杂的,各个程序模块的功能实现代码量也是⽐较多的,⽽且各个程序模块之间还会存在有许多复杂的相互联系或者相互依赖特定的数据。此时,如果仅仅依靠⼈⼯进⾏程序代码的审查,不仅⼯作效率低⽽且也完全依赖于开发⼈员的技术⽔平的⾼低⽽导致最终的审查质量出现波动。
因此,即使进⾏了⾜够⼒度的代码审查,其实还是会漏过很多严重的缺陷未被发现出。为此,软件系
统项⽬或者产品的开发⼈员有必要应⽤各种代码审查⼯具实现⾃动化⽅式的检测。在J2EE开源社区中,⽬前出现了许多程序代码审查的⼯具软件,它们能够有效地帮助软件系统的开发⼈员快速⽽⾼效地扫描出软件系统中的各个程序模块的程序代码的正确性,并及时发现出隐藏在程序代码中所存在的各种问题。
1.1.2利⽤Jupiter⼯具快速进⾏程序代码的审查活动
1、开源Jupiter是⼀个代码审查的Eclipse插件
Jupiter插件是⼀个提供给个⼈或者开发⼩组的代码审查的Eclipse插件,它将数据存储在XML格式⽂件中,并提供过滤和排序功能以辅助对程序代码的审查。
开发⼈员可以进⼊www.doczj/doc/5aac196a86c24028915f804d2b160b4e767f812b.html /p/jupiter-eclipse-plugin/⽹址下载Jupiter的Eclipse平台的插件,请见下图所⽰的页⾯内容的图⽰。
在Jupiter的官⽅⽹站中到其系统包⽂件下载的页⾯,开发⼈员可以直接下载其系统包⽂件,请见下图所⽰的Jupiter系统包下载链接的页⾯⽰图。
2、在Eclipse中安装和配置Jupiter代码审查⼯具软件
在Jupiter的官⽅⽹站中提供有如何在Eclipse⼯具中配置安装的帮助⽂档,请见下图所⽰的帮助内容页⾯。开发⼈员按照下图中的说明⽂字在Eclipse IDE⼯具中配置安装Jupiter 插件。
因此,将所下载的Jupiter插件的系统库⽂件放⼊到Eclipse的plugins⽬录中(请参见如下⽰图所⽰),然后再启动Eclipse IDE 开发⼯具。
3、在Eclipse中应⽤Jupiter代码审查⼯具软件快速发现出不良代码
(1)进⼊项⽬的属性对话框
为了能够在项⽬中应⽤Jupiter代码审查⼯具,开发⼈员⾸先要新建⼀个Review ID,这可以在Eclipse开发⼯具的【Package Explorer】或【Navigator】视图中右键单击项⽬名。
(2)为待审查的项⽬新建⼀个Review ID
进⼊到项⽬的属性对话框中添加⼀个Review ID;然后再指定需要审查的源代码⽂件。
hastens床垫最后选中⼯具条中的【Review】按钮开始代码审查的过程,并出现上图所⽰的代码审查结果。Jupiter代码审查⼯具提供了程序代码⾏级别的评审批注功能,⽅便评审参与⼈了解具体是哪些⾏的程序代码存在问题。Jupiter代码审查⼯具可以让程序代码评审成为软件系统项⽬或者产品编码的⼀部分⼯作⽽⼜不增加评审⼯作量。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论