1.单词
violations outline:错误大纲
2.错误级别
红色
很高的错误
橙色
错误
黄色
很高的警告
绿色
警告
蓝色
输出信息
3.提示
Avoid excessively long variable names like machineLineService
避免像machineLineService的命名
Local variable 'queryString' could be declared fina
变量应该定义为final
Package name contains upper case characters
包名不应该大写
- Avoid instantiating new objects
inside loops
避免再循环中重复的构建实例
parameter 'ch' is not assigned and could be declared final
参数不分,可以声明为final
Variables that are not final should not contain underscores (except for underscores in standard prefix/suffix).
不是最终的变量不应该带有下划线
Assigning an Object to null is a code smell. Consider
refactoring.
为分配一个对象的代码认为时重构的
得出来的规范
1.变量名字要短
2.不变的string变量要定义为final
3.包名不应该大写
4.最终的变量应该多次命名应该带有下划线
5.avoid循环重复new对象
6.不应该多用括号
7.一个方法应该只有一个返回点
8.使用集合的类的isEmpty()判断集合是否为空
9.符号之间的要空格
10.捕捉了异常再抛出了异常
11.如果字符串的变量多次使用,那么定义为常量
12.不要实例化Sting对象,那样会破坏享元策略
13.方法的名字一定要第一个单词小写,之后每一个单词的首字母大写
14.
violations Overview
Element 包中类的建议提示
#Violations
建议级别
#Violations/LOC
#Violations/Method
Project
属于那个项目里边的
violations Overview 视图的提示
LongVariable
变量过长
MethodeArgumentCouldBeFinal
AvoidInstantiatingObjectsInLoops
循环中重复new对象
LocalVariableCouldBeFinal
变量定义应该用final
使用的时候检测错误有没有解决就手动 在Violations Overview中右键类选择check code with pmd
优化策略
1.避免多个返回点
2.简化if-else 如果出现在返回值时,返回决定
3.不要给Boolean,Integer和String 类型创建新的实例
4.以final类型标记方法参数
5.switch里面要有default
6.final只会负责不可变他负责的那一片内存地址

PMD教程的更多相关文章

  1. 【李婶小教程】(SE_lab3)

    额,今天说一下这个SE_lab3那几个东西都是怎么装的. 啊--其实技术含量貌似不是很高的. 1.先说最简单的一个叫做:Findbugs 点这个Eclipse Marketplace,这是一个神奇的东 ...

  2. MyEclipse2014 设备 checkstyle、PMD、findbugs 最简单的方法 详细说明

    最近的实验需要的代码审查和应用程序性能优化.在需求MyEclipse安装某些插件,由于如今的MyEclipse版本号和大多数教程的不一样了,一些安装选项也已经改变,所以安装起来非常费事,通过不断的尝试 ...

  3. eclipse插件之Findbugs、Checkstyle、PMD安装及使用

    eclipse插件之Findbugs.Checkstyle.PMD安装及使用 一.什么是Findbugs.checkstyle.PMD Findbugs.checkstyle和PMD都可以作为插件插入 ...

  4. 2020年B2B外贸建站的终极教程

    本文目标:按照本建站教程的顺序操作,能够实现:基于全球份额最大的建站系统“wordpress”,从零搭建一个B2B外贸网站,且建站成本每年小于1000元(如果不计算自己投入的人力成本的话). 模板站点 ...

  5. Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求

    上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...

  6. Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数

    上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...

  7. Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数

    上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...

  8. Angular2入门系列教程4-服务

    上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...

  9. Angular2入门系列教程1-使用Angular-cli搭建Angular2开发环境

    一直在学Angular2,百忙之中抽点时间来写个简单的教程. 2016年是前端飞速发展的一年,前端越来越形成了(web component)组件化的编程模式:以前Jquery通吃一切的田园时代一去不复 ...

随机推荐

  1. KoaHub.js -- 基于 Koa.js 平台的 Node.js web 快速开发框架之koahub-loader

    koahub loader Installation $ npm install koahub-loader Use with koa  // 1.model loader   var model = ...

  2. MyFirstServlet学习笔记

    MyFirstServlet学习笔记 项目文件的结构目录如下,ser包,下设Serv.java是一个servlet文件,Note只是做的笔记,webroot下有login.jsp,WEB-INF下有w ...

  3. 队列工厂之RabbitMQ

    本次和大家分享的是RabbitMQ队列的用法,前一篇文章队列工厂之(MSMQ)中在描述的时候已经搭建了简单工厂,因此本章内容是在其之上扩充的子项不再过多讲解工厂的代码了:RabbitMQ应该是现在互联 ...

  4. Microsoft Visual Studio 2017 安装过程

    工欲善其事必先利其器 Visual Studio 2017 正式版官方下载地址:https://www.visualstudio.com/downloads/ 安装vs2017的时候最好关闭已打开的v ...

  5. C语言sqrt函数

    引入头文件: # include <math.h> sqrt用来求给定值的平方根 double sqrt (double x) 在使用GCC编译时 加入 -lm参数

  6. Angular 2的12个经典面试问题汇总(文末附带Angular测试)

    Angular作为目前最为流行的前端框架,受到了前端开发者的普遍欢迎.不论是初学Angular的新手,还是有一定Angular开发经验的开发者,了解本文中的12个经典面试问题,都将会是一个深入了解和学 ...

  7. JavaScript实现

    JavaScript实现 Javascript实现虽然JavaScript和ECMAScript通常都被人们用来表达相同的含义,但JavaScript的含义却比ECMA-262中规定的要多得多.没错, ...

  8. iOS开发之类扩展

    在以往写代码时,我们经常是把声明写在.h文件中,把实现写在.m文件中,但是在实际开发中,如果把声明写在.h文件中会暴露程序很多属性(成员变量.成员变量的get和set方法),为了安全考虑,引入了类扩展 ...

  9. pyqt4实现tab界面切换

    (转:https://segmentfault.com/q/1010000005143428)

  10. [SinGuLaRiTy] 字节大小

    [SinGuLaRiTy-1006] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. 16位编译器 char 1个字节 char*(即指针变量 ...