当前位置: 首页 > 知识库问答 >
问题:

重构这一功能,将其认知复杂度从18降低到允许的15

戴靖
2023-03-14

在Sonarqube上,我把这个问题作为一个关键问题,有人能帮我解决这个问题吗。这里是代码的详细信息,请让我知道如何用开关情况重构此代码:

const getEmailTo = (subject) => {

  switch (subject) {
    case 'POWERUP_REWARDS':
        return COMMON_EMAIL;
    case 'GAME_INFORMER':
        return COMMON_EMAIL;
    case 'ONLINE_ORDER':
        return 'test@gmail.com';
    case 'STORE_EXPERIENCE':
        return 'test@gmail.com';
    case 'APP_REVIEW':
        return COMMON_EMAIL;
    case 'SOMETHING_ELSE':
        return COMMON_EMAIL;
    default:
        return '';
  }
};

共有1个答案

饶谦
2023-03-14

通过收集返回相同值的常见情况,使代码更加简洁和简化。我不认为SonarQube能验证可读性,但正确使用空白可以大大提高不熟悉代码的可读性。这是固执己见,但我喜欢案件回报之间的界限。

const getEmailTo = (subject) => {
  switch (subject) {
    case 'POWERUP_REWARDS':
    case 'GAME_INFORMER':
    case 'APP_REVIEW':
    case 'SOMETHING_ELSE':
        return COMMON_EMAIL;

    case 'ONLINE_ORDER':
    case 'STORE_EXPERIENCE':
        return 'test@gmail.com';

    default:
        return '';
  }
};
 类似资料: