(Effective Java) 지역 변수의 유효범위를 최소화하라
* 지역 변수의 유효범위를 최소화하면 가독성(readability)과 유지보수성(maintainability)이 좋아지고, 오류 발생 가능성도 줄어든다.
1. 지역 변수의 유효범위를 최소화하는 가장 강력한 기법은, 처음으로 사용하는 곳에서 선언하는 것이다.
2. 거의 모든 지역 변수 선언에는 초기값이 포함되어야 한다.
//컬렉션을 순회할 때는 이 숙어대로 하는 것이 바람직
for (Element e : c){
doSomething(e);
}
* while문 보단 for문을 쓰는 것이 좋다.
---> 두번째 순환문에는 코드를 복사해서 붙여 넣다보니 생긴 버그가 있다.
새로운 순환문 변수 i2를 초기화 했으나 실제로는 옛날 변수 i를 써버린것이다.
i가 아직도 유효범위 안에 있는 관계로, 이 코드는 컴파일이 잘 될 뿐만아니라 예외도 없이 실행되지만 이상하게 동작한다.
하지만 복사해서 붙여넣기 버그가 for문이나 for-each문에서도 생길까?
컴파일조차 되지 않을 것이므로 어려울것이다.
또한 for문은 while문보다 코드 길이가 짧아서 가독성이 좋다.
3. 마지막 전략은 메소드의 크기를 줄이고 특정 기능에 집중하라는 것이다.
1. 지역 변수의 유효범위를 최소화하는 가장 강력한 기법은, 처음으로 사용하는 곳에서 선언하는 것이다.
2. 거의 모든 지역 변수 선언에는 초기값이 포함되어야 한다.
//컬렉션을 순회할 때는 이 숙어대로 하는 것이 바람직
for (Element e : c){
doSomething(e);
}
* while문 보단 for문을 쓰는 것이 좋다.
---> 두번째 순환문에는 코드를 복사해서 붙여 넣다보니 생긴 버그가 있다.
새로운 순환문 변수 i2를 초기화 했으나 실제로는 옛날 변수 i를 써버린것이다.
i가 아직도 유효범위 안에 있는 관계로, 이 코드는 컴파일이 잘 될 뿐만아니라 예외도 없이 실행되지만 이상하게 동작한다.
하지만 복사해서 붙여넣기 버그가 for문이나 for-each문에서도 생길까?
컴파일조차 되지 않을 것이므로 어려울것이다.
또한 for문은 while문보다 코드 길이가 짧아서 가독성이 좋다.
3. 마지막 전략은 메소드의 크기를 줄이고 특정 기능에 집중하라는 것이다.
댓글
댓글 쓰기