如何重构这种代码来修复codeclimate重复报告?

时间:2016-05-22 14:20:45

标签: javascript reactjs refactoring code-climate

我使用反应&我要开发我的前端网络应用程序:

所以我定义了这样的常量:

/js/constants/AppConstants.js

const KeyMirror = require('keymirror');

module.exports = {
  PayloadSources: KeyMirror({
    SERVER_ACTION: null,
    VIEW_ACTION: null
  })
};

/js/constants/ProductConstants.js

const KeyMirror = require('keymirror');

module.exports = {
  ActionTypes: KeyMirror({
    GET_PRODUCT: null,
    UPDATE_PRODUCT: null,
  })
};

这完全正常并且是正确的,然后我将这些代码推送到Github(使用Codeclimate集成)。

Codeclimate说:

Similar code found in 1 other location (mass = 54)
const KeyMirror = require('keymirror');

显然,我们看到这行const KeyMirror = require('keymirror')是在2个不同的文件中定义的,Codeclimate认为应该更改。但我在想,这只是导入图书馆的声明。

您怎么看?我该如何重构这个?

2 个答案:

答案 0 :(得分:2)

我同意你的意见,这只是一个导入其他代码的声明,只要你想使用这个功能就需要它。因此,唯一可能的重构将合并两个文件AppConstantsProductConstants。但这可能不是一个好的重构,因为将app常量和产品常量分开是个好主意。

我宁愿提出codeclimate的问题而不是尝试重构它。

答案 1 :(得分:1)

我不确定您是否可以控制repo的codeclimate设置,但您可以更改.codeclimate.yml中的质量阈值。我已经使用我们的React / Redux应用程序尝试了不同的阈值,目前我们的设置为65,但我们可能会将其提高到75左右。

---
engines:
  duplication:
    enabled: true
    config:
      languages:
        javascript:
          mass_threshold: 65