과하게 문맥정보를 포함시키지 않는다.

Tags

과하게 문맥정보를 포함시키는 경우

문제점

문맥정보를 충분히 알 수 있는 상황에서 과도하게 문맥정보를 포함시키는 것은 가독성에 매우 안좋다.
아래 예시 중에 FirstLaunchSerialNumber, MemoryChipDebug, SettingDeviceInformation화면의 이름인데, 이 화면에서 쓰이는 컴포넌트라는 의미로 prefix에 화면이름을 적어둔 것이다. 이름이 너무너무 길어진다.

파일명 예시

notion image

코드 예시

예시로 드는 거니까 비교적 짧은 코드로 예시를 들어보자.
카트리지 버튼은 카트리지 모양의 아이콘 버튼이며, 잔량이 부족한 상황이라면 알림 마커를 같이 표기하는 간단한 예시다.
  • AppHeader 폴더 하위에 AppHeaderCartridgeButtonAppHeaderNotificationMarker가 있어서 문맥정보는 이미 알 수 있다고 가정하고 아래 코드를 보자.
notion image
 
이미 상위 폴더명으로 인해 AppHeader라는 문맥정보를 알고 있는 상태인데, 코드상에서 AppHeader라는 문맥정보가 과연 유용한 정보인가를 생각해 보면, 절대 아님을 알 수 있다. 오히려 코드 길이만 길어져서 가독성을 낮춘다.
 
⚠️
수식으로 예를 들면 아래와 비슷한 느낌이다. 1 + 1 - 2 로 간단하게 표시해도 충분히 이해할 수 있는 것을, 1 +(더하기 기호) 1 -(빼기 기호) 2 이렇게 표시한 느낌..? 너무 과하게 정보를 주어서 가독성을 해쳤고, 심지어 전달된 과한 정보는 전혀 도움이 되지 않았다.
 

개선방안

보다 상위 개념에서 문맥에 대한 정보를 제공된다면 하위 개념에선 이를 별도로 표기하지 않는다.
 
아래 예시는 상위 폴더에 이미 AppHeader 라는 폴더로 묶여있기 때문에, 하위 컴포넌트들은 이미 AppHeader의 문맥 내에 있음을 알 수 있다. 따라서 불필요한 Prefix를 제거하자.
AppHeader는 그래도 문자열 길이가 짧은 편인데…
notion image
 
흔하게 쓰이는 이름(아이콘, 버튼, Footer, Title 등)은 이름이 중복될 일이 많으므로 찾고싶은 컴포넌트를 한번에 찾을 수 있도록 하기 위해 prefix를 붙였다 라고 들었지만, 폴더에 문맥정보가 있기 때문에 똑같은 키워드를 활용하여 동일한 검색 결과를 얻을 수 있기에 이는 합당한 이유가 되지 못한다.
notion image