변수들은 서로 관계가 없기 전에는 선언되어서는 안됩니다.

 

명확성을 위해서는, 변수들은 변수들이 사용되는 곳과 가능한 가까운 곳에서 선언되어야 합니다. 이것은 특히 메소드가 조기 반환(early return)하거나, 잠재적으로 예외를 throw 할 가능성이 있을 때 특히 그렇습니다. 이러한 경우, 조기 반환이 먼저 만족되어 절대 사용되지 않을 변수를 선언하는 것은 의미없을 뿐 아니라 혼란스럽습니다.

규칙을 어긴 코드

public boolean isConditionMet(int a, int b) {
    int difference = a - b;
    MyClass foo = new MyClass(a);  // 규칙을 어긴 코드; 조기 반환 이전에 사용되지 않습니다.

    if (difference < 0) {
        return false;
    }

    // ...

    if (foo.doTheThing()) {
        return true;
    }
    return false;
}

규칙을 준수한 해결책

public boolean isConditionMet(int a, int b) {
    int difference = a - b;

    if (difference < 0) {
        return false;
    }

    // ...

    MyClass foo = new MyClass(a);
    if (foo.doTheThing()) {
        return true;
    }
    return false;
}

If you like SONARKUBE, don’t forget to give me a star. :star2:

원문으로 바로가기

Star This Project