2023-04-12 11:04:22
전제
책을 다 읽고 쓰면 읽을 당시에 얻은 점을 잊을 수 있기에
한 챕터 혹은 한 부분씩 읽어 나가면서 기록하는 방식으로 후기를 작성합니다.
구매하게 된 이유
개발자 필독서에 있는 것이 첫번째 이유고
깨끗한 코드가 무엇인지, 그리고 어떤 코드가 좋은지 확인하고 싶어서 읽고 있다.
알게된 점
2장 의미있는 이름
의도를 분명히 밝혀라
- 변수나 함수 그리고 클래스 이름은 다음과 같은 굵직한 질문에 모두 답해야한다.
- 변수(혹은 함수나 클래스)의 존재 이유는? 수행 기능은? 사용 방법은?
- 따로 주석이 필요하다면 의도를 분명히 드러내지 못했다는 말이다.그릇된 정보를 피하라
- 그릇된 단서는 코드 의미를 흐린다.
- 나름대로 널리 쓰이는 의미가 있는 단어를 다른 의미로 사용해도 안된다.
- 서로 흡사한 이름을 사용하지 않도록 주의한다.
- 유사한 개념은 유사한 표기법을 사용한다.
의미있게 구분하라
- 컴파일러나 인터프리터만 통과하려는 생각으로 코드를 구현하는 프로그래머는 스스로 문제를 일으킨다.
- 컴파일러를 통과할 지라도 연속된 숫자를 덧붙이거나 불용어를 추가하는 방식은 적절하지 못하다.
- 불용어를 추가한 이름 역시 아무런 정보도 제공하지 못한다.
- 읽는 사람이 차이를 알도록 이름을 지어라.
발음하기 쉬운 이름을 사용하라
- 사람은 단어에 능숙하므로 발음하기 쉬운 이름을 선택한다.
- 프로그래밍은 사회 활동이다.
검색하기 쉬운 이름을 사용하라
- 문자 하나를 사용하는 이름과 상수는 텍스트 코드에서 쉽게 눈에 띄지 않는다는 문제점이 있다.
- 이런 관점에서는 긴 이름이 짧은 이름보다 좋다.
- 검색하기 쉬운 이름이 상수보다 좋다.
인코딩을 피하라
자신의 기억력을 자랑하지 마라
- 독자가 코드를 읽으면서 변수 이름을 자신이 아는 이름으로 변환해야 한다면 그 변수 이름은 바람직하지 못하다.
- 전문가 프로그래머는 명료함이 최고라는 사실을 이해한다.
클래스 이름
- 클래스 이름과 객체 이름은 명사나 명사구가 적합하다.
- 동사는 사용하지 않는다.
메서드 이름
- 메서드 이름은 동사나 동사구가 적합하다.
기발한 이름은 피하라
- 재미난 이름보다 명료한 이름을 선택하라.
- 의도를 분명하고 솔직하게 표현하라.
한 개념에 한 단어를 사용하라
- 추상적인 개념 하나에 단어 하나를 선택해 이를 고수한다.
- 메서드 이름은 독자적이고 일관적이어야 한다.
말장난을 하지 마라
- 한 단어를 두 가지 목적으로 사용하지 마라.
- ex. add(더하기) add(추가)
해법 영역에서 가져온 이름을 사용하라
- 코드를 읽을 사람도 프로그래머라는 사실을 명심한다.
- 전산 용어, 알고리즘 이름, 패턴 이름, 수학 용어등을 사용해도 괜찮다.
- 모든 이름을 문제 영역에서 가져오는 정책은 현명하지 못하다.
문제 영역에서 가져온 이름을 사용하라
- 적절한 용어가 없다면 문제 영역에서 이름을 가져온다.
- 보수하는 프로그래머가 분야 전문가에게 의미를 물어 파악할 수 있다.
의미 있는 맥락을 추가하라
- 클래스, 함수, 이름 공간에 맥락을 부여한다.
- 모든 방법이 실패하면 접두어를 붙인다.
- addState, addFirstName
불필요한 맥락을 없애라
- 고급 휘발유 충전소라는 애플리케이션을 짠다고 가정하자.
- 모든 클래스 이름을 GSD로 시작하겠다는 생각은 전혀 바람직하지 못하다.
- 일반적으로는 짧은 이름이 긴 이름보다 좋다.
- 단, 의미가 분명한 경우에 한해서다.
- 이름에 불필요한 맥락을 추가하지 않도록 주의한다.
'도서 > 개발' 카테고리의 다른 글
3장. 함수 (0) | 2024.08.02 |
---|---|
1장. 깨끗한 코드 (0) | 2024.08.02 |
(후기) 자바 ORM 표준 JPA 프로그래밍 (0) | 2024.08.02 |
(후기) 테스트 주도 개발 시작하기 (0) | 2024.08.02 |
개발 관련 서적 후기 작성 (0) | 2024.08.02 |