[독서 기록-Clean Code] 2장. 의미 있는 이름

소이뎁·2022년 11월 28일
0

1.의도를 분명히 밝혀라

존재 이유, 수행 기능, 사용 방법을 명시하라.

2.그릇된 정보를 피하라

❌널리 쓰이는 의미가 있는 단어를 다른 의미로 사용
❌관련성이 적은데 서로 흡사한 이름 사용
❌l과 i, O와 0같이 구분하기 어려운 문자 사용
✅유사한 개념은 유사한 표기법 사용

3.의미 있게 구분하라

❌a1, a2, ...aN 사용
❌의미를 구분하지 않은 채 불용어(stopwords, 의미가 없는 단어나 조사)를 추가한 변수 생성(ex. Product, ProductInfo, ProductData)
❌비슷한 의미를 나타내는 변수 사용(ex. moneyAmount, money)

4.발음하기 쉬운 이름을 사용하라

프로그래밍은 사회 활동이기 때문에 발음하기 쉬워야 소통이 쉬워진다.

5.검색하기 쉬운 이름을 사용하라

❌숫자, e
✅WORK_DAYS_PER_WEEK, MAX_CLASSES_PER_STUDENT

6.인코딩을 피하라

❌헝가리식 표기법
프로그래밍 언어에서 변수 및 함수의 인자 이름 앞에 데이터 타입을 명시하는 코딩 규칙
기술 발전으로 자동으로 타입 구별 가능

❌멤버 변수 접두어
접두어가 필요 없을 정도로 함수, 클래스는 작아야 함
사람들이 접두어를 잘 읽지 않음

❌인터페이스를 나타내는 변수 이름
과도한 정보

7.자신의 기억력을 자랑하지 마라

❌a, b, c 사용
✅루프에서 반복 횟수를 세는 변수 i, j, k는 전통적인 방식이므로 사용해도 좋음

8.클래스 이름

✅명사, 명사구
❌Manager, Processor, Data, Info

9.메서드 이름

✅동사, 동사구
get접근자(ex. getName())
set변경자(ex. setName("mike"))
is조건자(ex. isPosted())
생성자를 중복정의(overload)할 때: 정적 팩토리 메서드 사용

10.기발한 이름은 피하라

❌재미난 이름, 특정 문화에서만 사용하는 농담
✅명령한 이름, 의도가 명확한 이름

11.한 개념에 한 단어를 사용하라

controller, manager, driver 중 하나 선택해서 사용

12.말장난을 하지 마라

기존 값을 두 개를 더하거나 이어서 새로운 값을 만드는 메서드 -> add
집합에 값을 추가하는 메서드 -> ❌add, ✅insert/append

13.해법 영역(Solution Domain)에서 가져온 이름을 사용하라

코드를 읽을 사람도 프로그래머이므로 전산 용어, 알고리즘 이름, 패턴 이름, 수학 용어, 기술 이름 등을 사용해도 좋다.

14.문제 영역(Problem Domain)에서 가져온 이름을 사용하라

문제 영역 개념과 관련이 깊은 코드라면 문제 영역에서 이름을 가져온다.

15.의미 있는 맥락을 추가하라

1) 클래스, 함수, 이름 공간에 넣기

// 코드 구조
-클래스(변수 선언, 최종 출력 함수) -> 변수를 클래스 안에 넣어 맥락을 분명하게 만듦
-함수(조건에 따라 실행시킬 함수)
-함수(실제 실행될 함수)

2) 접두어를 붙이기

❌firstName, lastName, street, houseNumber, city, state, zipcode
✅addrFirstName, addrLastName, addrState

16.불필요한 맥락을 없애라

일반적으로 짧은 이름이 긴 이름보다 좋지만, 의미가 분명한 경우에 한해서다. Gas Station Deluxe(고급 휘발유 충전소) 애플리케이션을 만드는 경우, 모든 클래스 이름을 GSD로 시작하는 것은 바람직하지 못하다.

0개의 댓글