•
이 장에서는 변수에 적절한 네이밍을 붙여주지 않으면 가독성이 얼마나 저하되는지 살펴본다.
•
특히 집중해서 살펴보아야할 세 가지 문제가 있다.
◦
변수의 수가 많을수록 기억하고 다루기 더 어려워진다.
◦
변수의 범위가 넓어질수록 기억하고 다루는 시간이 더 길어진다.
◦
변수값이 자주 바뀔수록 현재값을 기억하고 다루기가 더 어려워진다.
변수 제거하기
•
불필요한 임시 변수들
◦
흔히 날짜 객체를 생성할 때, now라는 이름을 가진 변수를 만들고는 한다. now 변수는 꼭 필요한 변수일까?
◦
다음과 같은 이유로 now 변수는 적합하지 않다.
▪
복잡한 표현을 잘게 나누지 않는다.
▪
명확성에 도움이 되지 않는다.
▪
한 번만 사용된다. 즉 재사용성이 없다.
•
중간 결과 삭제하기
◦
중간 연산 결과를 저장해두는 임시 변수들을 종종 확인할 수 있다.
◦
구현이 그렇게 복잡하지 않다면 이는 되려 시스템 복잡도를 올리는 행위다.
•
흐름 제어 변수 제거하기
◦
반복문에서 반복문을 탈추하기 위해 불리언 변수를 사용하는 경우가 대표적이다.
◦
이를 흐름 제어 변수라고 하는데, 이들의 목적은 순수하게 프로그램 제어에 있다. 그리고 이는 프로그램의 구조를 잘 설계하면 제거할 수 있다.
변수의 범위를 좁혀라
•
전역 변수는 네이밍 그 자체로 맥락을 제공해야 한다. 그래서 전역 변수는 피하라라는 조언을 한 번쯤은 들어봤을 것이다.
•
전역 변수뿐만 아니라 모든 변수의 범위를 좁히는 일은 언제나 좋다. 즉 변수가 적용되는 범위를 제한하라는 것이다.
•
많은 메소드를 정적 메소드로 만들어서 클래스 멤버 접근을 제한하라. 정적 메소드는 코드를 읽는 사람에게 이 메소드는 변수들로부터 독립적임을 알려주는 좋은 방법이다.
•
커다란 클래스를 여러 작은 클래스로 나누는 방법도 있다. 이 방법은 작은 클래스들이 서로 독립적일 때 유용하다.
값을 한 번만 할당하는 변수를 선호하라
•
변수 값이 여러 곳에서 변경된다는 것은 특정 시점에서의 변수가 어떤 값을 가지고 있기 예측하기 힘들다는 어려움을 낳는다.
요약
•
이 장에서는 프로그램에서 변수를 덜 사용하고 최대한 가볍게 만들어 코드의 가독성을 높일 수 있음을 알아보았다.
•
방해되는 변수를 제거하라.
◦
굳이 존재할 필요가 없는 변수들은 없애는 것이 좋다. 중간 결과값이나 일회성 변수들이 있다.
•
각 변수의 범위를 최대한 작게 줄여라.
◦
각 변수의 위치를 옮겨서 변수가 나타나는 줄의 수를 최소화하라.
•
값이 한 번만 할당되는 변수를 선호하라.
◦
값이 한 번만 할당되는 const, final같은 불변 변수들은 이해하기 쉽다.