개발자 99% 커뮤니티에서 수다 떨어요!
이름은 다음과 같은 굵직한 질문에 모두 답해야 한다. 존재 이유는? 수행 기능은? 사용방법은?
프로그래머는 코드에 그릇된 단서를 남겨서는 안 된다!
똑똑한 프로그래머와 전문가 프로그래머 사이에서 나타나는 차이점 하나만 들자면, 전문가 프로그래머는 명료함이 최고라는 사실을 이해한다.
2022.04.24
2장 의미 있는 이름
변수나 함수 그리고 클래스 이름은 다음과 같은 굵직한 질문에 모두 답해야 한다. 변수(혹은 함수나 클래스) 존재 이유는? 수행 기능은? 사용방법은? 따로 주석이 필요하다면 의도를 분명히 드러내지 못했다는 말이다. (P. 22)
프로그래머는 코드에 그릇된 단서를 남겨서는 안 된다. (P. 24)
유사한 개념은 유사한 표기법을 이용한다. (P.25)
이름이 달라져야 한다면 의미도 달라져야 한다. (p. 26)
발음하기 쉬운 이름을 사용하라 (p. 27)
이름 길이는 범위 크기에 비례해야 한다. (p. 28)
똑똑한 프로그래머와 전문가 프로그래머 사이에서 나타나는 차이점 하나만 들자면, 전문가 프로그래머는 명료함이 최고라는 사실을 이해한다. (p. 31)
클래스 이름과 객체 이름은 명사나 명사구가 적합하다. 메서드 이름은 동사나 동사구가 적합하다. (p. 32)
한 개념에 한 단어를 사용하라. (p. 33)
한 단어를 두 가지 목적으로 사용하지 마라. 다른 개념에 같은 단어를 사용한다면 그것은 말장난에 불과하다. (p. 34)
일반적으로 짧은 이름이 긴 이름보다 좋다. 단, 의미가 분명한 경우에 한해서다. 이름에 불필요한 맥락을 추가하지 않도록 주의한다. (p. 37)
페이지 23부터 14까지의 코드를 보면서 이름의 중요성을 실감했다. 명확한 이름이 코드의 맥락을 이해하는데 도움이 되어 훨씬 읽기 수월했다. 중간 중간 재밌는 말이 많아서 지루하지 않았다. 예를 들면, 26페이지의 맨 밑의 주석 '진짜로 황당한 예가 klass라는 변수다. class를 이미 사용했다고 klass를 사용한다.' 읽을 때 너무 웃겨서 눈물났다.
이름을 작성하는 팁에 대해서 읽었고 정말 와닿는 내용이었지만, 솔직히 아직도 어떤 이름을 붙여야 할지 모르겠다. 무작정 코딩하는 시간을 늘리는 것이 아닌, 여태껏 내가 써왔던 코드를 스스로 리뷰하며 반성하고, 다른 사람의 코드를 많이 찾아보며 안목을 길려야겠다.
왜 list 같은 자료형을 변수에 쓰지 말라고 하는지 그 이유가 궁금하다. 변수를 사용하는 방법이 이름에 드러나려면 list 같은 걸 써줘야 쉽게 파악 되지 않을까?