작성일: 2024년 8월 25일
노마드코더 클린 코드 챌린지
int d; 같은 모호한 이름 대신 int elapsedTimeInDays;와 같이 명확한 이름을 사용하는 것이 좋음.hp 같은 변수 이름은 독자가 hp가 무엇을 의미하는지 혼란스럽게 만들 수 있음. 또한, 모듈에서 사용되는 이름이 유사하거나 혼동을 줄 수 있는 경우 피하는 것이 좋음.customer와 customerInfo처럼 의미를 구분할 수 있는 이름을 사용하는 것이 좋음.MAX_CLASSES_PER_STUDENT 같은 이름은 grep 같은 도구로 검색하기 쉬운 반면, 숫자나 짧은 문자는 검색이 어렵고 문제가 발생할 수 있음.a1과 a2 대신 source와 destination 같은 명확한 이름을 사용하는 것이 좋음.Manager라고 부르는 것을 다른 모듈에서 Controller나 Driver라고 부르지 말아야 함. 이름의 일관성은 코드의 가독성을 높이고 혼동을 줄임.kill() 대신 whack() 같은 비정상적인 이름을 사용하면 코드의 의미를 파악하기 어려워짐. 항상 의미 있는 이름을 사용하여 코드를 명확하게 유지해야 함.AccountAddress와 같은 이름을 사용할 때는 Address만으로도 충분한 의미를 전달할 수 있다면 굳이 앞에 Account를 붙이지 않는 것이 좋음. 이름은 간결하면서도 명확해야 함.Address라는 이름만으로는 불충분할 경우 MailingAddress, ShippingAddress처럼 더 구체적인 이름을 사용하여 명확성을 높이는 것이 좋음.명명은 1차적으로 창작이 어렵기도 하고, 2차적으로 유지보수때 더 힘든 것 같다. 찾기를 할 때 힘들어지니까. 모르는 분야에 대한 개발을 하게 되면 그 분야에 대해 영어 이름을 검색하게 된다. 예를 들어 출근, 퇴근을 관리하는 시스템을 만든다고 가정하면 absent를 사용하는 개발자도 있고 attendance를 사용하는 개발자도 있다. 그럼 먼저 사용한 사람이 선점 하는 것을 따라 가게 되기도 한다. 물류를 관리하는 시스템을 만들때 delivery를 쓰는 사람도 있고 shipment를 쓰는 사람도 있다.
한글 명명에 대해서 찾아보고, 그걸 사용하는 개발자들도 많아졌다고 해서 const 배송= () => const 사용자조회 = () => 이런식으로 사용해 본적이 있다. 그저 영어를 한글로만 바꾼 꼴이었다. 책에서 말했듯이, 의도를 분명히 밝힌, 다른사람도 이해 할 수 있는 ‘의미있는이름’을 사용해야 할 것이다.