🔖 오늘 읽은 범위 : 2장, 의미 있는 이름 (p.32 ~ p.38)
😀 책에서 기억하고 싶은 내용
클래스 이름과 객체 이름은 명사나 명사구가 적합
메서드 이름은 동사나 동사구가 적합
접근자: get (ex) getName()
변경자: set (ex) setName()
조건자: is (ex) isPosted()
한 개념에 한 단어를 사용해라. 똑같은 메서드를 클래스마다 fetch, retrieve, get으로 제각각 부르면 혼란스럽다. 이름이 다르면 독자는 당연히 클래스도 다르고 타입도 다르리라 생각한다.
한 단어를 두 가지 목적으로 사용하지 마라. 매개변수와 반환 값이 의미적으로 똑같다면 문제가 없지만, 같은 맥락이 아닌데도 ‘일관성’을 고려한다고 하나의 단어로 퉁치면 안된다.
프로그래머는 코드를 최대한 이해하기 쉽게 짜야 한다.
기술 개념에는 기술 이름이 가장 적합한 선택이다.
적절한 프로그래머 용어가 없다면 문제 영역, 도메인에서 이름을 가져온다. 그러면 코드를 보수하는 프로그래머가 분야 전문가에게 의미를 물어 파악할 수 있다.
변수의 의미를 분명하게 만들기 위해 클래스, 함수, 네임 스페이스 안에 변수를 넣어 맥락을 부여한다. 모든 방법이 실패하면 마지막 수단으로 접두어를 붙인다.
일반적으로는 짧은 이름이 긴 이름보다 좋다. 단, 의미가 분명한 경우에 한해서다. 이름에 불필요한 맥락을 추가하지 않도록 주의한다.
좋은 이름을 선택하려면 설명 능력이 뛰어나야 하고 문화적인 배경이 같아야 한다. 좋은 이름을 선택하는 능력은 기술, 비즈니스, 관리 문제가 아니라 교육 문제다.
🤔 오늘 읽은 소감은?
- 한 개념에 한 단어를 사용하라는 원칙과 한 단어를 두 가지 목적으로 사용하지 말라는 원칙을 많이 어겼던 것 같다. 같은 개념인데도 다른 단어로 표기하거나 다른 동작을 하는데 같은 이름으로 퉁친 것들이 좀 있는데 그런 것들을 정리해야겠다.
- 클래스, 함수, 네임 스페이스 안에 변수를 넣으니 의미가 되게 명확해지는 느낌이다. 애용해야겠다.
🧐 궁금한 내용이 있거나, 잘 이해되지 않는 내용
VISITOR 패턴
실제 로직을 가지고 있는 객체(Visitor)가 로직을 적용할 객체(Element)를 방문하면서 실행하는 패턴. 즉, 로직과 구조를 분리하는 패턴
JobQueue
- 작업 대기열에는 하위 시스템에서 처리되기를 기다리는 작업의 순서가 지정된 목록이 담겨 있다.
📌 소감 3줄 요약
- 매개변수와 반환 값이 의미적으로 똑같지 않다면 다른 이름을 써라.
- 접두어를 붙이기 전에 클래스, 함수, 네임 스페이스 안에 변수를 넣는 것이 더 적절하다.
- 문장이나 문단처럼 읽히는 코드 아니면 적어도 표나 자료 구조처럼 읽히는 코드를 짜는 데만 집중해라.
'클린코드' 카테고리의 다른 글
[DAY 6] 클린 코드 TIL - 3장. 함수 (0) | 2022.01.27 |
---|---|
[DAY 5] 클린 코드 TIL - 3장. 함수 (0) | 2022.01.26 |
[DAY 3] 클린 코드 TIL - 2장. 의미 있는 이름 (4) | 2022.01.24 |
[DAY 2] 클린 코드 TIL - 1장. 깨끗한 코드 (0) | 2022.01.22 |
[DAY 1] 클린 코드 TIL - 추천사 & 들어가면서 (0) | 2022.01.21 |