如何重构此类代码以修复 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 认为应该对此进行更改。但是我在想,这只是一个导入库的语句。
你怎么看?我应该如何重构它?
我同意你的看法,这只是一个导入其他代码的语句,无论何时你想使用该功能都需要它。因此,唯一 可能 的重构是合并两个文件 AppConstants
和 ProductConstants
。但这可能不是一个好的重构,因为分离应用常量和产品常量听起来是个好主意。
我宁愿用 codeclimate 提出问题,也不愿尝试重构它。
我不确定您是否可以控制代码库的 codeclimate 设置,但您可以在 .codeclimate.yml
中更改质量阈值。我一直在用我们的 React/Redux 应用程序试验不同的阈值,目前将我们的阈值设置为 65,但我们可能会将其提高到 75 左右。
---
engines:
duplication:
enabled: true
config:
languages:
javascript:
mass_threshold: 65
我使用 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 认为应该对此进行更改。但是我在想,这只是一个导入库的语句。
你怎么看?我应该如何重构它?
我同意你的看法,这只是一个导入其他代码的语句,无论何时你想使用该功能都需要它。因此,唯一 可能 的重构是合并两个文件 AppConstants
和 ProductConstants
。但这可能不是一个好的重构,因为分离应用常量和产品常量听起来是个好主意。
我宁愿用 codeclimate 提出问题,也不愿尝试重构它。
我不确定您是否可以控制代码库的 codeclimate 设置,但您可以在 .codeclimate.yml
中更改质量阈值。我一直在用我们的 React/Redux 应用程序试验不同的阈值,目前将我们的阈值设置为 65,但我们可能会将其提高到 75 左右。
---
engines:
duplication:
enabled: true
config:
languages:
javascript:
mass_threshold: 65