티스토리 뷰

2장은 의미 있는 이름을 짓는 방법에 대해서 설명한다. 이름은 어디에나 사용되고 많이 사용되기 때문에 이름을 잘 지어두면 여러모로 편하다. 간단하게 소제목 별로 인상 깊은 내용들, 정리해두고 싶은 내용들을 나열하듯 글을 써보고 싶다.
의도를 분명히 밝혀라
의도를 분명히 하는 것은 정말로 중요하다. 의도를 분명하게 이름을 명명하거나 수정하기만해도 코드가 하는 일이 이해하기가 쉬워질 것이다.
그릇된 정보를 피하라
프로그래머는 코드에 그릇된 단서를 남겨서는 안 된다. 일관성이 떨어지는 이름을 사용하는 것, 널리 쓰이는 이름을 다른 의미로 사용하는 것은 그릇된 정보이다.
의미 있게 구분하라
컴파일러나 인터프리터만 이해하도록 명명하지 말자. 1장에서도 말했지만 우리는 코드라는 글을 쓰는 저자이다. 저자의 의도를 명확하게 들어내도록 이름을 작성해야 한다. 아무런 의미가 없는 불용어(noise word)를 사용하지 말자. 우리의 코드를 읽는 독자가 차이를 알 수 있도록 이름을 짓자.
예) NameString은 Name보다 나은게 없다. Name에 float으로 작성될 일이 있을까?
발음하기 쉬운 이름을 사용하라
새롭게 인상을 받은 부분인데, 우리의 두뇌는 말을 처리하기 위해 발달한 뇌라는 사실이다. 그러므로 이름을 발음하기 쉽게 선택하면 우리는 더 코드에 대한 대화를 할 때 저 지적으로 대화할 수 있다.
검색하기 쉬운 이름을 사용하라
한글자, 짧은 단어로 된 이름을 지양하자. 이름의 길이는 범위 크기에 비례해야 한다. 변수나 상수를 여러 곳에서 사용한다면 검색하기 쉬운 이름이 바람직하다.
자신의 기억력을 자랑하지 마라
전문가 프로그래머는 명료함이 최고라는 사실을 이해한다. 똑똑한 프로그래머는 간단한 이름을 좋아한다. 그들의 머리속에는 그 간단한 단어에서 모든 의미가 들어있는 때문이다. 하지만 우리는 대다수의 다른사람들을 배려해야 한다.
클래스 / 메서드 이름
클래스 이름은 명사나 명사구가 적합한다. 메서드 이름은 동사나 동사구가 적합하다. 각자의 역할을 생각해보면 이는 당연하게 느껴질 것이다.
한 개념에 한 단어를 사용하라
추상적인 개념 하나에 단어 하나를 선택한 뒤 이를 고수해야 한다. 가져온다는 추상적인 개념에 fetch, retrieve, get 이라는 단어를 혼용해서는 안된다. 일관성 있는 어휘는 코드를 사용할 프로그래머가 반갑게 여길 선물이다.
말장난 하지 마라
위 소제목과 비슷하지만 다르다. 이번에는 한 단어를 여러 목적으로 사용하지 말라는 뜻이다. add라는 뜻이 a와 b를 더해서 c를 생성한다는 의미로 사용되고 있었는데, 다른곳에서 a 마지막에 b를 추가하는 의미로 쓰지 말라는 뜻이다.
해법 영역(Solution Domain)에서 가져온 이름을 사용하라
모든 이름을 문제 영역(Problem Domain)에서 가져오는 것은 현명하지 못하다. 기술 개념을 다루는 경우 기술에서 이름을 가져와서 사용하는 것이 적합하다.
문제 영역에서 가져온 이름을 사용하라
적절한 이름을 해법 영역에서 가져오기 어렵다면 문제 영역에서 이름을 가져온다. 그러면 코드를 보수하는 프로그래머가 분야 전문가에게 의미를 물어 파악할 수 있다. 우리는 해법 영역과 문제 영역을 구불 할 줄 알아야 한다
'Computer Science 이야기 > Books' 카테고리의 다른 글
[클린코드] 4장 - 주석 (0) | 2025.01.23 |
---|---|
[클린코드] 3장 - 함수 (0) | 2025.01.22 |
[클린코드] 추천사 ~ 1장 (0) | 2025.01.19 |
[실용주의 프로그래머] 1장 - 실용주의 철학 (Topic 5 ~ 7) (0) | 2023.07.09 |
[실용주의 프로그래머] 1장 - 실용주의 철학 (Topic 1 ~ 4) (0) | 2023.07.08 |
- Total
- Today
- Yesterday
- 알고리즘
- 코딩테스트
- 개발자
- DevOps
- 오픈소스기여
- SW마에스트로
- 개발자밋업
- devcon
- 오픈소스
- 대전
- 회고
- 파이썬
- 클린코드
- 후기
- python
- ssi-at
- 백준
- 기계식 키보드
- python3.8
- 프론트엔드
- 개발자북클럽
- 네트워크
- 타입스크립트
- IT대외활동
- 합격
- 프로그래머스
- 노마드코더
- 노개북
- boj
- github
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |