Java ‐ 지역변수의 범위를 최소화하라[Effective Java Item 57] - thought-corner/Backend-PlayGround GitHub Wiki
- 지역변수의 유효 범위를 최소로 줄이면 코드 가독성과 유지보수성이 높아지고 오류 발생 가능성은 낮아진다.
- 지역변수의 범위를 줄이는 가장 강력한 기법은 역시 "가장 처음 쓰일 때 선언하기"이다.
- 사용하려면 멀었는데 미리 선언부터 해두면 코드가 어수선해져 가독성이 떨어진다.
- 변수를 실제로 사용하는 시점엔 타입과 초깃값이 기억나지 않을 수도 있다.
public class Account {
public static void main(String[] args) {
int myBalance = 51500;
// 아주
// 긴
// 코드들 ...
// myBalance이 뭐하는 변수였더라?
}
}
- 지역변수를 생각 없이 선언하다보면 변수가 쓰이는 범위보다 너무 앞서 선언하거나 다 쓴 뒤에도 여전히 살아 있게 되기가 쉽다.
- GC가 해당 변수를 정리하지 않으니 예상치 못한 결과를 초래할 수 있다.
모든 지역변수는 선언과 동시에 초기화하자.
- 초기화에 필요한 정보가 충분치 않다면 충분해질 때까지 선언을 미뤄두어야 한다.
public class Account {
public static void main(String[] args) {
int myBalance;
// 아주
// 긴
// 코드들 ...
myBalance = 51500;
}
}
- 초기화에 필요한 정보가 충분치 않다면 충분해질 때까지 선언은 미뤄야 한다.
for문을 고려하자.
- 인덱스를 사용해야되는 경우라면 forEach보다 for문이 나을 수 있다.
- while문보다는 for문을 사용하는 것이 좋다.
메서드를 작게 유지하고 한 가지 기능에 집중하라.
- 한 메서드에서 여러 기능을 처리하게 된다면(=몸집이 커지면) 한 기능과 관련된 지역변수라도 다른 기능을 수행하는 코드에 접근할 수 있게 된다.
- 즉, 메서드를 한 가지 기능만 하도록 쪼개는 것이 좋다.