提高代码的质量,除了要提高逻辑上的控制以及业务流程的理解外,代码本身也存在提高的空间,例如一些潜在的问题可以很早的就避免。类似于编码规范上的内容,如果全靠编码人员进行自行检查,那么无疑需要很大的工作量,如果可以使用代码的静态检查工具进行检查的话,那么将大大的提高编码的效率。
本文是提高代码质量系列文章的第一篇,主要介绍了如何使用pmd工具进行代码的自动化检查,以规避一些潜在的问题并找出代码的逻辑错误。
1. 什么是PMD?
PMD是一个代码检查工具,用于检查Java源代码,以便发现如下的潜在问题:
潜在的bug:空的try/catch/finally/switch语句
未使用的代码:未使用的局部变量、参数、私有方法等
可选的代码:String/StringBuffer的滥用
复杂的表达式:不必须的if语句、可以使用while循环完成的for循环
重复的代码:拷贝/粘贴代码意味着拷贝/粘贴bugs
可以在以下地址下载pmd,并且可以在规则集索引页面查看所有规则的一个预览。
同时,pmd已经与JDeveloper、Eclipse、jEdit、JBuilder、BlueJ、CodeGuide、NetBeans、Sun Java Studio Enterprise/Creator、IntelliJ IDEA、TextPad、Maven、Ant、Gel、JCreator以及Emacs集成在一起。
2. 在Eclipse中安装PMD插件
PMD可以作为插件集成到很多流行的IDE中,很多的插件中都包含了PMD的jar文件,这个jar文件中包含了规则集。所以虽然一些插件中使用rulesets/unusedcode.xml来作为参数引用规则集,但是实际上是使用getResourceAsStream()方法来从PMD的jar文件中加载。
由于Eclipse是比较流行的开源Java/J2EE开发IDE,所以本文主要介绍如何在Eclipse中使用PMD工具进行代码的检查。
安装Eclipse的PMD插件的过程如下:
启动Eclipse
选择Help-->Software Updates-->Find and Install
选择Next,选择New remote site
&nb
How to improve your code quality---using pmd
时间: 2024-09-25 21:10:28
How to improve your code quality---using pmd的相关文章
Java Tools: Source Code Optimization and Analysis[转]
Below is a list of some tools that can help you examine your Java source code for potential problems: 1. PMD from http://pmd.sourceforge.net/ License: PMD is licensed under a "BSD-style" license PMD scans Java source code and looks for potential
关于好的代码(Aspects to good code)
我常常思考是什么造就了好的代码 (good code).使用最新的语言特性.最佳的模式(best pattern).最好的层次化设计(best layered design).使用最少内存.亦或最佳的执行性能(performs the best)?很明显,这些项目都会在设计时考虑,但它们是首先要最主要的原因吗(the first things you think of)?或许并不是! 那什么呢?经过一段冥思苦想之后,我有了结论.显然代码或系统应当可裁剪(scalable),正确(correct
iOS 代码审查(Code Review for iOS)
iOS 代码审查(Code Review for iOS) iOS 代码审查 (Code Review for iOS) The iOS app development team is using Gerrit for code review. The following instructions assume you're using a recent version of Mac OS X. Contents [hide] 1 New to Git? 2 Activate your cod
44个JAVA代码质量管理工具(转)
1. CodePro AnalytixIt's a great tool (Eclipse plugin) for improving software quality. It has the next key features: Code Analysis, JUnit Test Generation, JUnit Test Editor, Similar Code Analysis, Metrics, Code Coverage and Dependency Analysis.2. PM
Springfox Reference Documentation
1. Introduction The Springfox suite of java libraries are all about automating the generation of machine and human readable specifications for JSON APIs written using the spring family of projects. Springfox works by examining an application, once, a
Android DevOps: From a Single Push Command to Production
Introduction DevOps refers to a set of well-known practices for automating software deliveries. By design, DevOps allows for easier maintenance and updating through continuous testing, code quality improvement, and feature development. One of the pri
使用 TeamCity 实现持续集成(CI)
原文同步至 https://waylau.com/continuous-integration-with-teamcity/ 持续集成(Continuous Integration),也就是我们经常说的 CI,是现代软件开发技术的基础.本文论述了如何使用 TeamCity 持续集成工具来实现项目的持续集成. 为我们什么需要 CI 目前,CI 已在当前业界被许多软件开发团队所采用,是一种在整个软件开发生命周期内保证代码质量的常见做法.它是一种开发实践,旨在帮助开发团队应对软件开发过程中的如下挑战:
最新版Android Studio V2.2.2版本[Android Studio v2.2.2 (October 2016)]分享
最新版Android Studio V2.2.2版本[Android Studio v2.2.2 (October 2016)]分享 最新版Android Studio V2.2.2版本百度云下载:http://pan.baidu.com/s/1kVsGZkV 黏贴下官网的Release Notes: Revisions The sections below provide notes about successive releases of Android Studio, as denoted
Video for Linux Two API Specification Revision 2.6.32【转】
转自:https://www.linuxtv.org/downloads/legacy/video4linux/API/V4L2_API/spec-single/v4l2.html Video for Linux Two API Specification Revision 2.6.32 Michael H Schimek <mschimek@gmx.at> Bill Dirks Original author of the V4L2 API and documentation.