🔖 오늘 읽은 범위 : 2장 ~
😃 책에서 기억하고 싶은 내용을 써보세요.
- 변수(혹은 함수나 클래스)의 존재 이유는? 수행 기능은? 사용 방법은? 따로 주석이 필요하다면 의도를 분명히 드러내지 못했다는 말이다. 의도가 드러나는 이름을 사용하면 코드 이해와 변경이 쉬워진다. (p. 22)
- 그릇된 단서는 코드 의미를 흐린다. 나름대로 널리 쓰이는 의미가 있는 단어를 다른 의미로 사용해도 안 된다. (p. 24)
- 변수 이름에 variable 이라는 단어는 단연코 금물이다. 표 이름에 table 이라는 단어도 마찬가지다. ~~ 읽는 사람이 차이를 알도록 이름을 지어라. (p. 27)
- 발음하기 쉬운 이름은 중요하다. (p. 27)
- 검색하기 쉬운 이름이 상수보다 좋다. (p. 28)
- 이제는 멤버 변수에 m_ 이라는 접두어를 붙일 필요도 없다. 사람들은 접두어를 무시하고 이름을 해독하는 방식을 재빨리 익힌다. 코드를 읽을수록 접두어는 관심 밖으로 밀려난다. (p. 30)
- 인터페이스 이름은 접두어를 붙이지 않는 편이 좋다고 생각한다. 옛날 코드에서 많이 사용하는 접두어 I 는 주의를 흐트리고 과도한 정보를 제공한다. (p. 31)
- 클래스 이름과 객체 이름은 명사나 명사구가 적합하다. Manger, Processor, Data, Info 등과 같은 단어는 피하고, 동사는 사용하지 않는다. (p. 32)
- 메서드 이름은 동사나 동사구가 적합하다. (p. 32)
- 추상적인 개념 하나에 단어 하나를 선택해 이를 고수한다. 똑같은 메서드를 클래스마다 fetch, retrieve, get 으로 제각각 부르면 혼란스럽다. (p. 33)
- 한 단어를 두 가지 목적으로 사용하지 마라. 다른 개념에 같은 단어를 사용한다면 그것은 말장난에 불과하다. 예를 들어, 지금까지 구현한 add 메서드는 모두가 기존 값 두 개를 더하거나 이어서 새로운 값을 만든다고 가정하자. 새로 작성하는 메서드는 집합에 값 하나를 추가한다. 이 메서드는 insert, append 라는 이름이 적당하다. (p. 34)
- 프로그래머에게 익숙한 기술 개념은 아주 많다. 기술 개념에는 기술 이름이 가장 적합한 선택이다. (p. 34)
- 클래스, 함수, 이름 공간에 넣어 맥락을 부여한다. 모든 방법이 실패하면 마지막 수단으로 접두어를 붙인다. (p. 35)
- 이름에 불필요한 맥락을 추가하지 않도록 주의한다. (p. 37)
- 우리는 문장이나 문단처럼 읽히는 코드 아니면 적어도 표나 자료 구조처럼 읽히는 코드를 짜는 데만 집중해야 마땅하다. 여느 코드 개선 노력과 마찬가지로 이름 역시 나름대로 바꿨다가는 누군가 질책할지도 모른다. 그렇다고 코드를 개선하려는 노력을 중단해서는 안 된다. (p. 38)
🤔 오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
변수, 메서드에 의미 있는 이름을 붙이기는 정말 어렵다. 매번 고민하고 고민해서 붙여도 마음에 들지 않고, 나중에 보면 별로일 때가 많다.
의미 있는 이름을 붙일 수 있게 의식해서 작성을 해야겠다.
🔥 소감 3줄 요약
- 의도를 분명히 밝혀라
- 그릇된 정보를 피하라
- 의미 있게 구분하라
- 발음하기 쉬운 이름을 사용하라
- 검색하기 쉬운 이름을 사용하라
- 인코딩을 피하라
- 자신의 기억력을 자랑하지 마라
- 클래스 이름, 메서드 이름
- 기발한 이름은 피하라
- 한 개념에 한 단어를 사용하라
- 말 장난을 하지 마라
- 해법 영역에서 가져온 이름을 사용하라
- 문제 영역에서 가져온 이름을 사용하라
- 의미 있는 맥락을 추가하라
- 불필요한 맥락을 없애라