int d; // 경과 시간(단위: 날짜)
int elapsedTimeInDays;
int daysSinceCreation;
int daysSinceModification;
int fileAgeInDays;
널리 쓰이는 의미가 있는 단어를 사용하지 마라
ex) hp
, aix
, sco
그룹 변수 이름에 List를 사용하지 마라
ex) accountList
→ accountGroup
, accounts
서로 유사한 이름을 사용하지 마라
ex) XYZController
, ForEfficientHandling
, XYZControllerForEfficientHandling
연속된 숫자로 이름을 구분하지 마라
ex) copyChars(char a1[], char a2[])
→ copyChars(char source[], char destination[])
불용어로 이름을 구분하지 마라
ex) Product
| ProductInfo
, ProductData
, theProduct
, aProduct
, Products
ex) SomethingManager
| SomethingProcessor
m_
: 이름을 다르게 하지 않아도 멤버 변수임을 확인할 수 있어야 한다Impl
접미어 인코딩은 필요하다정적 팩토리 메소드
를 사용한다.모든 규칙이 효과적으로 느껴졌지만, 특히 의미 있는 맥락을 추가하라
규칙의 예시를 읽으면서 좋은 네이밍의 중요성을 실감했다. 내가 간단한 알고리즘 문제를 풀 때 귀찮고 빨리 해치우고 싶어서 자주 하던 짓이 나쁜 예에 그대로 적혀 있어서 굉장히 머쓱했다. 돌이켜 보면, 변수 이름을 대충 지었기 때문에 나중에 다시 그 코드를 볼 때면 한 눈에 파악하기 어려웠다. 그 변수가 어디에 어떻게 쓰이는 지 파악하기 위해서 모든 코드를 다 읽어봐야 했고, 그 안에는 반복되는 코드들이 여러 번 등장했다. 정말 비효율적이고 안 좋은 습관이란 것을 책을 읽으며 다시 한 번 깨달았고, 귀찮더라도 생각을 하고 이름을 짓는 습관을 들여서 나중에 더 큰 프로젝트를 할 때 만족스러운 코드를 짤 수 있도록 노력해야 겠다는 생각이 들었다.