{
당연한 이야기겠지만, 가독성을 매우 높여주기 때문이다. C++ 하고 관계(?)는 없지만, 루아에선 변수가 런타임에 평가되기 때문에, 변수의 위치에 따라서 변수가 문자열이 될 수도, 테이블이 될 수도 있다. 결국 이 변수가 무엇인지 파악하기 위해선 위에 부터 아래까지 코드를 훓어 봐야만 한다.
그래서 루아에선 되도록 로컬 변수로 빼어서 사용 하려고 한다.(물론 이것은 나의 경우이다.) 루아가 C++과 관계는 없었지만 "가독성"은 사람의 이해를 한층 높여주는 것이기에 C++ 역시 마찬가지로 가독성을 높여야만 한다. (이런 측면에서 나는 루아로 코드를 짠다. 진현성 전임님의 말씀으로 "파이썬"도 무척이나 떙긴다. ; )
리팩토링 책을 읽다 보았던 글귀가 생각 난다.
"나는 매우 게으른 프로그래머이다. 나는 내가 작성한 코드도 기억을 못할 정도로 게으르다. 실은, 머리가 꽉 차버리는 것이 두려워, 찾아볼 수 있는 것은 일부러 기억하려 하지 않는다. 나는 나중에 기억할 필요가 없도록, 기억해야 할 모든 것을 코드에 넣는다. 이런 방법으로 오래된 기억이 내 뇌세포를 죽이는 것에 대한 걱정을 덜 수 있다"
왜 가독성이 좋아야 하는지 충분히 설명한거 같다. 가독성을 높이는 코딩 스타일은 코드를 많이 짜면 자동으로 아는데, 변수와 관련된 몇가지 경험을 이야기 하자면,
1. 변수가 실질적으로 필요하기 전까지 변수를 선언하지 않고,
2. 루프에서 사용하는 변수는 루프와 밀접하게 둔다.(물론 성능에 대해서 생각하면서...),
3. 쓸때없는 키워드로 변수를 선언하지 않고,
4. 변수의 선언과 동시에 초기화 해 준다.
5. 전역 변수를 되도록 사용하지 않고, 사용해야 한다면 싱글턴 패턴을 이용한다.
6. 헝가리안 표기법보단 변수명을 자세히 적는다.(이건 개인 차이)
7. 멤버변수, 지역변수, 전역변수, 매개변수, 특수변수, 임시변수 들에 대한 작명 규칙을 만들고, 일관성을 유지한다.
음.. 더 생각이 안나네, ㅋ 아참, 로컬 변수를 사용하면, 별도로 버그가 있을 법한 구역을 더 줄여주는 효과도 있다. 왜냐하면 로컬 변수는 로컬에서만 값이 변하기 때문이다. 어찌보면 당연하다. ; )
}
최근댓글