Sonar:java项目的更好规则
我试图找到一个更好的替代默认java质量概要文件“Sonar way with Findbugs” 在516条配置文件规则中,有些规则实际上没有正确设置(优先级或激活) 例如:Sonar:java项目的更好规则,java,sonarqube,Java,Sonarqube,我试图找到一个更好的替代默认java质量概要文件“Sonar way with Findbugs” 在516条配置文件规则中,有些规则实际上没有正确设置(优先级或激活) 例如: “死存储到局部变量”真的是一个关键问题吗 “添加空字符串”已禁用,但值得启用 “使用等于比较字符串”已禁用 由于我找不到比默认规则更好的随时可用的规则集,因此我想从经验丰富的Sonar用户那里获得有关此主题的反馈 “死存储到局部变量”真的是一个关键问题吗 这可能是一个严重的问题,因为在某些情况下,它不仅仅表示内存浪费
- “死存储到局部变量”真的是一个关键问题吗
- “添加空字符串”已禁用,但值得启用
- “使用等于比较字符串”已禁用
public class ResultData {
private int m_valueX;
private int m_valueY;
public int getValueX() {
return m_valueX;
}
public int getValueY() {
//should actually be m_valueY
return m_valueX;
}
public void setValueX(int valueX) {
m_valueX = valueX;
}
public void setValueY(int valueY) {
m_valueY = valueY;
}
}
使用Equals来比较字符串
可能“对象应与‘equals()’进行比较”规则是有效的,并且隐含地涵盖了此规则检测到的问题。我的经验(自SQ首次在3家不同的公司发布以来,我一直在使用它,多年来写了130多个自定义检查)如下:
- 创建作为当前“SonarQube方式”配置文件副本的配置文件P1
- 在此配置文件中,删除与您的上下文无关的所有规则(主要是当您的自定义规则与现成规则冲突时),并在需要时更改优先级(仅在您的上下文需要时尝试增加优先级)。跟踪修改配置文件的原因。这里的要点是能够说“我们遵循现成的配置,除了一些需要更严格控制的特定情况”。此配置文件将用于轻松比较您当前的“SonarQube方式”配置文件与较新的配置文件
- 创建从P1继承的配置文件P2并添加其他规则,无论这些规则是否为自定义规则。与您的开发团队一起研究这个主题,以便达成共识
- 尽可能多地保留您添加的规则的默认优先级(不要向那些想争辩您的配置有缺陷的人提供食物,如果您需要更改优先级,请准备好捍卫您的决定,请参阅下一点。)
- 对于所有规则优先级更改(现成的和/或自定义规则),请遵循预定义的比例(例如)并遵守该比例
- 将P2设置为默认配置文件