如何降低给定代码段的复杂性?我在Sonarqube中得到了这个错误-->重构这个方法,将其认知复杂度从21降低到允许的15。
this.deviceDetails = this.data && {...this.data.deviceInfo} || {};
if (this.data && this.data.deviceInfo) {
this.getSessionInfo();
// tslint:disable-next-line: no-shadowed-variable
const { device, driver, ipAddress, port, active, connectionType } = this.data.deviceInfo;
this.deviceDetails = {
name: device.name || '',
manufacturer: device.manufacturer || '',
deviceType: device.deviceType || '',
model: device.model || '',
description: device.description || '',
managerId: device.deviceManager && device.deviceManager.managerId || null,
locationId: device.location && device.location.locationId || null,
active: device.active,
connectionType: connectionType || null,
driver_id: driver && driver.driverId || null,
ipAddress: ipAddress || '',
port: String(port) || '',
connectionStatus: active,
};
this.oldDeviceDetails = {...this.deviceDetails};
this.deviceLocation = device.location && device.location.locationId || null;
} else {
所有这些加在一起,看起来像是一个糟糕的练习。您可以将this.devicedetails={...
转换为自己的映射函数,以快速解决方案。
我得到声纳警告来降低它的复杂性。我如何重构下面的代码,将其认知复杂度从18降低到允许的15?
在Sonarqube上,我把这个问题作为一个关键问题,有人能帮我解决这个问题吗。这里是代码的详细信息,请让我知道如何用开关情况重构此代码:
> 如何重构该函数以减少复杂度 当我使用开关大小写时,代码的兼容性更高,那么如何减少它 如何实现此功能
我在重构这部分代码时遇到了问题。如何降低该代码的认知复杂性