개발자 99% 커뮤니티에서 수다 떨어요!
TIL (Today I Learned)
2022.02.20
오늘 읽은 범위
2장. 의미 있는 이름
책에서 기억하고 싶은 내용을 써보세요.
의도를 분명히 밝혀라
좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많다.(22p)
그릇된 정보를 피하라
나름대로 널리 쓰이는 의미가 있는 단어를 다른 의미로 사용해도 안 된다.(24p)
서로 흡사한 이름을 사용하지 않도록 주의한다. (24p)
일관성이 떨어지는 표기법은 그릇된 정보다.(25p)
의미 있게 구분하라
이름이 달라야 한다면 의미도 달라져야 한다.(26p)
읽는 사람이 차이를 알도록 이름을 지어라.(27p)
클래스 이름과 객체 이름은 명사나 명사구가 적합하다. 동사는 사용하지 않는다.(32p)
메서드 이름은 동사나 동사구가 적합하다.(32p)
기발한 이름은 피하라
의도를 분명하고 솔직하게 표현하라.(33p)
한 개념에 한 단어를 사용하라
똑같은 메서드를 클래스마다 fetch, retrieve, get으로 제각각 부르면 혼란스럽다. 어느 클래스에서 어느 이름을 썼는지 기억하기 어렵다.(33p)
메서드의 이름은 독자적이고 일관적이어야 한다.(33p)
말장난을 하지 마라
한 단어를 두 가지 목적으로 사용하지 마라. 다른 개념에 같은 단어를 사용한다면 그것은 말장난에 불과하다.(34p)
일관성을 고려하여 맥락은 다르지만 기존의 메서드명과 동일한 이름을 사용한다면, 이는 말장난이다.
ex) add
(기존)두 값을 더하거나 이어서 새로운 값을 만든다. (신규 메서드)집합에 값 하나를 추가한다. 신규메서드는 insert나 append라는 이름이 적당하다.(34p)
의미 있는 맥락을 추가하라
불필요한 맥락을 없애라
일반적으로는 짧은 이름이 긴 이름보다 좋다. 단, 의미가 분명한 경우에 한해서다. 이름에 불필요한 맥락을 추가하지 않도록 주의한다.(37p)
우리는 문장이나 문단처럼 읽히는 코드 아니면 적어도 표나 자료 구조처럼 읽히는 코드를 짜는 데만 집중해야 마땅하다.(38p)
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
2장을 읽은 후의 내가 과거의 나를 돌이켜본다면, 개발을 진행하며 함수 등의 이름을 다른 프로그래머가 읽었을 때 또는 나중에 봤을 때 분명한 의미 파악이 어려울 수 있는 이름을 자주 지었던 기억이 떠오르며 반성이 되었다.
이름은 최대한 의미 전달이 잘 되도록 지으며, 코드가 잘 읽히고 이해될 수 있도록 작성할 수 있어야 한다는 메세지를 잘 전달 받은 듯 하며, 항상 이 메세지를 잘 기억하고 있어야겠다고 느꼈다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.