如何重构此类代码以修复 codeclimate 重复报告?

How to refactor this kind of code to fix codeclimate duplication report?

我使用 React 和 Flux 开发我的前端 Web 应用程序:

所以我这样定义常量:

/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 认为应该对此进行更改。但是我在想,这只是一个导入库的语句。

你怎么看?我应该如何重构它?

我同意你的看法,这只是一个导入其他代码的语句,无论何时你想使用该功能都需要它。因此,唯一 可能 的重构是合并两个文件 AppConstantsProductConstants。但这可能不是一个好的重构,因为分离应用常量和产品常量听起来是个好主意。

我宁愿用 codeclimate 提出问题,也不愿尝试重构它。

我不确定您是否可以控制代码库的 codeclimate 设置,但您可以在 .codeclimate.yml 中更改质量阈值。我一直在用我们的 React/Redux 应用程序试验不同的阈值,目前将我们的阈值设置为 65,但我们可能会将其提高到 75 左右。

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