작성일 | 2023. 1. 16 |
범위 | Clean Code 책, Chapter 2. 의미있는 이름 |
Clean Code 2. 의미있는 이름
1. 의도를 분명히 밝혀라
좋은 변수의 예시 : elapsedTimeInDays
daysSinceCreation
daysSinceModification
fileAgeInDays
- 코드의 맥락이 코드 자체에 명시적으로 드러나도록 한다
- 코드에 함축성을 부여한다, 의미를 명확하게 담고 있는 명명이 필요하다.
2. 그릇된 정보를 피하라
- 일관성이 떨어지지 않도록 한다
- ex. add를 리스트에 추가하는 메서드에 넣었다면 append 등의 단어와 혼용하지 않도록 한다
3. 의미있게 구분하라
- list에 추가하는 메서드와 data 포맷에 특정 용도로 추가하는 메서드가 있다고 가정했을 때 굳이 같은 단어를 사용하지 않는다. 둘을 구분해야 한다면 하나는 add 하나는 다른 단어를 사용해라.
- 읽는 사람이 차이를 알도록 이름을 짓는다
4. 발음하기 쉬운 이름을 짓는다
- 프로그래밍도 소통을 위한 언어다. 부르기 쉬운 이름이 소통에 좋다
5. 검색하기 쉬운 이름을 사용하라
- 이 관점에서는 긴 이름이 짧은 이름보다 낫다
- 문자 하나로 이루어진 변수명과 상수는 코드에서 쉽게 눈에 띄지 않으므로 자제한다
e
변수명은 검색했을 때 모든 단어에서 걸린다..
6. 인코딩을 피하라
- 예전에 메모리가 부족해 변수명을 줄여야해서 생겼던 규칙들을 굳이 따르지 말라
- 예전 코드에서 많이 사용하는 접두어는 주의를 흐트리고 나쁘게는 과도한 정보를 제공한다
7. 자신의 기억력을 자랑하지 마라
- 좋은 프로그래머는 상수를 다 다르게 하고 기억하고 있는 머리 좋은 프로그래머가 아니라 다른 사람이 이해하기 편한 코드를 짜는 사람이다
- 메서드명 - 동사나 동사구가 적합
- 생성자, 변경자, 조건자 는 각각 get, set, is를 사용한다
- 클래스명, 객체명 - 명사나 명사구가 적합
8. 특정 문화에서만 쓰이는 단어, 혹은 재미있는 이름보다 명료한 이름을 사용하라
9. 한 개념에 한 단어를 사용하라
- 메서드 이름은 독자적이고 일관적이어야 한다
- 추상적인 개념 하나에는 하나의 단어를 선택해 고수하라
- 같은 메서드 클래스마다 fetch, retrieve, get 을 혼용해 사용하지 마라
9. 한 단어를 두 목적으로 사용하지 마라
- 대충 훑어봐도 이해할 수 있는 코드를 작성하는 것이 목표이다
10. 기술 개념에는 기술 이름이 가장 적합하다
- 프로그래밍 기술과 관련된 부분에서는 해당 기술 어휘를 사용하고, 혹은 문제 영역 개념(도메인)과 관련된 코드에서는 해당 어휘를 가져온다
11. 의미있는 맥락을 추가하고, 불필요한 맥락을 제거해라
- 의미있는 맥락을 추가하기 위한 마지막 방법은 접두어이다
- addrFirstName, addrLastName, addrState : 주소 관련 변수이고, 해당 문맥을 보여주기 위해 addr 이라는 접두어를 붙임으로써 문맥이 명료해졌다
- 반대로 코드에 불필요한 맥락을 추가하는 것은 불필요한 정보량을 늘리고 코드를 읽는 동료들의 시간을 낭비하는 일이므로 지양한다
- 인코딩 : 변수에 부가적인 정보를 붙이는 것
'Programming > 📚 Book Study' 카테고리의 다른 글
[Clean Code] 10. 클래스 (0) | 2023.06.13 |
---|---|
[Clean Code] 9. 단위테스트 (0) | 2023.06.05 |
[Clean Code] 6. 객체와 자료구조 (0) | 2023.05.14 |
[Clean Code] 5. 형식맞추기 (code format) (0) | 2023.05.09 |
[Clean Code] 3. 함수 (함수 작성 규칙) (0) | 2023.05.09 |