개발자 99% 커뮤니티에서 수다 떨어요!
TIL (Today I Learned)
2022.01.20
오늘 읽은 범위
1장. 의미있는 이름
책에서 기억하고 싶은 내용을 써보세요.
● 프로그래머에게 List라는 단어는 특수한 의미다. 계정을 담는 컨테이너가 실제 List가 아니라면 프로그래머에게 그릇된 정보를 제공하는 셈이다.
● 불용어를 추가한 이름 역시 아무런 정보도 제공하지 못한다. Product라는 클래스가 있다고 가정하자. 다른 클래스를 ProductInfo 혹은 ProductData라 부른다면 개념을 구분하지 않은 채 이름만 달리한 경우다. Info나 Data는 a, an, the와 마찬가지로 의미가 불분명한 불용어다.
● 사람들은 단어에 능숙하다. 우리 두뇌에서 상당 부분은 단어라는 개념만 전적으로 처리한다. 그리고 정의상으로 단어는 발음이 가능하다. 말을 처리하려고 발달한 두뇌를 활용하지 않는다면 안타까운 손해다. 그러므로 발음하기 쉬운 이름을 선택한다.
● PhoneNumber phoneString;
// 타입이 바뀌어도 이름은 바뀌지 않는다!
● 클래스 이름과 객체 이름은 명사나 명사구가 적합하다. Customer, WikiPage, Account, AddressParser 등이 좋은 예다. Manager, Processor, Data, Info 등과 같은 단어는 피하고, 동사는 사용하지 않는다.
● 추상적인 개념 하나에 단어 하나를 선택해 이를 고수한다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
오늘 단원은 힘들게 읽은 기분이다. 총균쇠의 첫 페이지를 읽은 기분이다. 물론 총균쇠보다는 재미있지만.. 읽으면서 내가 부족한 부분들에 대해서 많이 느껴진다. 내용 자체는 어느 정도 이해하지만 코드구문들이 나오면서 코드 구문자체를 이해 못한 경우가 있다. 물론 지금 주제는 코드의 내용보다 이름을 이렇게 변경하였을 때에 대한 이점이 어떤 것 인지라 넘어가기로 했다. 그리고 영어.. 여전히 부족하다. 구글링해가면서 이해하려고 했지만 그것조차 힘든 경우도 있었다. 아직 부족한 점이 많다고 느꼈다. 이름을 변수,메소드, 클래스 등등의 이름을 지을 때 다시한번 이 단원의 내용을 상기시키는게 좋겠다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
VISITOR 패턴, AccountVisitor, JobQueue