개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
의도를 분명히 할 것, 의미 있게 구분을 할 것, 맥락이 코드에 명시적으로 드러나야 한다.
추상적인 개념 하나에 단어 하나를 선택해 이를 고수한다. 일관적이고 독자적이어야 함.
코드를 읽는 사람이 자신이 아는 이름으로 변환해야 한다면 그 이름은 바람직하지 못하다.
TIL (Today I Learned) 날짜
2022. 04. 24
오늘 읽은 범위
2장. 의미 있는 이름
책에서 기억하고 싶은 내용을 써보세요.
유사한 개념은 유사한 표기법을 사용한다. 일관성이 떨어지는 표기법은 그릇된 정보다. (p.25)
컴파일러나 인터프리터만 통과하려는 생각으로 코드를 구현하는 프로그래머는 스스로 문제를 일으킨다. (p.25)
독자가 코드를 읽으면서 변수 이름을 자신이 아는 이름으로 변환해야 한다면 그 변수 이름은 바람직하지 못하다. 문자 하나만 사용하는 변수 이름은 문제가 있다. (p.31)
메서드 이름은 독자적이고 일관적이어야 한다. 동일 코드 기반에 controller, manager, dirver를 섞어 쓰면 혼란스럽다. (p.33)
집중적인 탐구가 필요한 코드가 아니라 대충 훑어봐도 이해할 코드 작성이 목표다. 의미를 해독할 책임이 독자에게 있는 논문 모델이 아니라 의도를 밝힐 책임이 저자에게 있는 잡지 모델이 바람직 하다. (p.34)
accountAddress, customerAddress는 Address 클래스 인스턴스로는 좋은 이름이나 클래스 이름으로는 적합하지 못하다. Address는 클래스 이름으로 적합하다. (p.37)
우리는 문장이나 문단처럼 읽히는 코드 아니면 (정보를 표시하는 최선의 방법이 항상 문장만은 아니므로) 적어도 표나 자료구조처럼 읽히는 코드를 짜는 데만 집중해야 마땅하다. (p.38)
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
오늘 읽은 부분을 반복해서 보게 될 것 같다. 여태 까지 코드 이름을 내가 지었던 것들 중 고쳐야 될 게 많다고 생각이 들었다. 다음에 코딩을 하게 된다면 이름을 지을 때 오늘 읽었던 부분을 고려해서 적용을 해봐야겠다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
p.35 에서 우수한 프로그래머와 설계자라면 해법영역과 문제영역을 구분할 줄 알아야 한다고 했는데, 이것이 구체적으로 어떤 것인지 바로 떠오르지 않는다. 해법영역과 문제영역이 무엇이고 어떻게 번역이 되었는지 원문을 알아봐야 겠다.