개발자 99% 커뮤니티에서 수다 떨어요!
TIL (Today I Learned)
2022.2.20
오늘 읽은 범위
2장. 의미 있는 이름
책에서 기억하고 싶은 내용을 써보세요.
추상적인 개념 하나에 단어 하나를 선택해 이를 고수한다. 예를 들어, 똑같은 메서드를 클래스마다 fetch, retrieve, get 으로 제각각 부르면 혼란스럽다. 어느 클래서에서 어느 이름을 썼는 지 기억하기 어렵다. ...... 한 단어를 두 가지 목적으로 사용하지 마라. 다른 개념에 같은 단어를 사용한다면 그것은 말장난에 불가하다. ...... 하지만 때로는 프로그래머가 같은 맥락이 아닌데도 '일관성'을 고려해 add라는 단어를 사용한다. 집합에 값 하나를 추가하는 경우 insert나 append라는 이름이 적합하다. (p. 33~34)
프로그래머는 코드를 최대한 이해하기 쉽게 짜야 한다. 집중적인 탐구가 필요한 코드가 아니라 대충 훑어봐도 이해할 코드 작성이 목표다. ...... 논문 모델이 아니라 의도를 밝힐 책임이 저자에게 있는 잡지 모델이 바람직하다.
addr 라는 접두어를 추가해 addrFirstName, addrLastName, addrState라 쓰면 맥락이 좀 더 분명해진다. 변수가 좀 더 큰 구조에 속한다는 사실이 적어도 독자에게는 분명해진다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
니코쌤이 강의 중간 중간에 변수명을 의미가 전달될 수 있게 수정하던 순간이 떠올랐음. 나름대로 원칙을 가지고 변수명을 작성할 수 있게 연습 또 연습!
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
P.31 <인터페이스 클래스와 구현 클래스> 부분에서 저자는 "인터페이스 클래스 이름과 구현 클래스 이름 중 하나를 인코딩해야 한다면 구현 클래스 이름을 택하겠다. ShapeFactoryImp나 심지어 CShapeFactory가 IShapeFactory보다 좋다"고 했는데, 개인적으로는 반대로 IShapeFactory가 더 낫지 않나 싶다.