2103230_B책_축약 쓰지 않기

정재현·2021년 3월 30일
0

TIL2

목록 보기
30/79

오늘은 오랜만에 b책을 진행한다.
왜 반갑냐.. b책아..
축약 쓰지 않는 내용의 챕터이다.

축약은 한 글자 이름보다 한 단계 진일보한 형태로 세상에는 무수한 축약어가 있다.
TIL도 축약어고.. ASAP, FYI, TGIF 등등이 있다.
일상생활에서 축약어는 잘 쓰이지만 코드내에서는 절대로 쓰지 않는 것이 좋다.

예를 보자면,

class Logbook {
 static final Path DIR = Paths.get("/var/log");
 static final Path CSV = DIR.resolve("stats.csv");
 static final String GLOB = "*.log";
 
 void createStats() throws IOException {
  try (DirectoryStream<Path> dirStr = Files.newDirectoryStream(DIR, GLOB);
  BufferedWriter bufW = Files.newBufferedWriter(CSV)) {
    ...
 }
}

벌써 위 코드에서 DIR, CSV, GLOB, dirStr, bufW 축약어가 많이 쓰였다.
의미를 바로 알기는 어렵다.
누군가는 이해하겠지만 모두 그런건 아니다. 나처럼.
맥락을 모르면 bufW, dirStr 의 뜻을 알기 어렵다.

그렇다면 축약을 어떻게 바꿔야할까?

class Logbook {
 static final Path LOG_FOLDER = Paths.get("/var/log");
 static final Path STATISTICS_CSV = LOG_FOLDER.resolve("stats.csv");
 static final String FILE_FILTER = "*.log";
 
 void createStats() throws IOException {
  try (DirectoryStream<Path> logs = Files.newDirectoryStream(LOG_FOLDER, FILE_FILTER);
  BufferedWriter writer = Files.newBufferedWriter(STATISTICS_CSV)) {
    ...
 }
}

규칙은 지극히 당연하다.
흔히 쓰이는 축약만 사용하고 그 외에는 전체 이름을 사용하는 것이다.
위 코드를 보면 이해하기 훨씬 쉽고 이상한 변수명도 보이지 않는다.
축약어로 쓰였던 DIR과 GLOB 은 축약하지 않는 간결한 이름으로 바꾸었다.
GLOB보다 FILE_FILTER가 변수의 의도를 훨씬 잘 전달하기 때문에.

축약어 전체를 항상 풀어써야하는 건 아니다.
bufW의 경우, 전체 이름은 writer만 사용했다.

요약은 가능하면 축약은 피하고 매우 일반적인 경우에만 사용하면 된다.
확신이 없다면 풀어서 사용할 것!

오늘의 코멘트: 며칠전에 코드리뷰 할 때도 네이밍에 대한 코멘트가 달렸다.. 넘나 어려운 네이밍;;

profile
"돈받고 일하면 프로다"

0개의 댓글