클린코드 2장 의미 있는 이름

kimjunkyung·2021년 8월 5일
0

클린코드

목록 보기
3/15
post-thumbnail

노션에서 정리한 내용을 벨로그로 옮겼기 때문에 노션으로 보면 조금 더 보기 더 편합니다🤗

이동하기 → junnkk's Notion


들어가면서

이름을 잘 지으면 편하다! 이름 잘 짓는 간단한 규칙 소개

의도를 분명히 밝혀라

  • 변수, 함수, 클래스 이름

    → 존재 이유 / 수행 기능 / 사용 방법 ( 주석 없이도 명확하게 의도를 드러내야 함.)

    예시) 지뢰 찾기(p22~24)

그릇된 정보를 피하라

  • 그릇된 단서를 남기면 안된다 → 코드의 의미 흐림
  • 널리 쓰이는 의미가 있는 단어를 다른 의미로 사용해도 X
  • 서로 흡사한 이름 사용 X
  • 유사한 개념은 유사한 표기법 사용 → 정보로써의 의미 O (일관성 떨어지는 표기법은 그릇된 정보)
  • l, O 사용 금지

의미 있게 구분하라

  • 연속된 숫자 덧붙이기 X (a1, a2, a3,... 등)
  • 의미가 불분명한 불용어(noise word) 추가 X (Product, Info, data,... 등)
  • 이름이 달라야 한다면 의미도 달라야 함
  • 읽는 사람이 차이를 알도록 지어야 함

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


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

  • grep(유닉스를 위해 만들어진 텍스트 검색 기능을 가진 명령어) ex) MAX_CLASSES_PER_STUDENT
  • 긴 이름 사용 good (↔ 짧은 이름)
  • 검색하기 쉬운 이름 good (↔ 상수)
  • 이름 길이 ∝ 범위 크기 (저자는 간단한 메서드에서 로컬 변수 정도만 한 문자 사용)

인코딩을 피하라

인코딩 : 코드화, 암호화. 사용자가 입력한 문자나 기호들을 컴퓨터가 이용할 수 있는 신호로 만드는 것.

헝가리식 표기법 : 변수 및 함수 앞에 데이터 타입을 명시하는 규칙

→ 이제 헝가리식 표기법이나 기타 인코딩 방식이 오히려 방해가 됨.

→ 변수, 함수, 클ㄹ스 이름이나 타입을 바꾸기 어려워지며 읽기도 어려워짐

멤버 변수 접두어

→ 멤버 변수(선언 위치: 클래스 영역)

→ 지역 변수(선언 위치: 메소드나 생성자 내부)

→ 클래스와 함수는 접두어가 필요 없을 정도로 작아야 함. 

인터페이스 클래스와 구현 클래스

→ 인터페이스 클래스 이름과 구현 클래스 이름 중 하나를 인코딩 해야 한다면 구현 클래스 이름 택.

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

명료함이 최고

클래스 이름

  • 클래스 이름과 객체 이름 ⇒ 명사나 명사구

    ex) Customer, WikiPage, Account, AddressParser 등

  • Manager, Processer, Data, Info 등은 피해야 함

  • 동사 X

메서드 이름

  • 메서드 이름 ⇒ 동사

    ex) postPayment, deletePage, save 등

  • 접근자, 변경자, 조건자는 javabean 표준에 따라 값 앞에 get, set, is 붙임

  • 생성자 중복정의할 때 정적 팩토리 메서드 사용. 메서드는 인수를 설명하는 이름 사용

  • 생성자 사용을 제한하려면 해당 생성자를 private으로 선언

기발한 이름은 피하라


개념에 단어를 사용하라

  • 추상적인 개념 하나에 단어 하나를 선택하여 이를 고수한다

    ex) 똑같은 메서드를 클래스마다 fetech, get, retrieve 로 하면 X

⇒ 일관성 있는 어휘를 사용

말장난을 하지 마라

한 단어를 두 가지 목적으로 사용하지 마라

해법 영역에서 가져온 이름을 사용하라

  • 전산 용어, 알고리즘 이름, 패턴 이름, 수학 용어 등을 사용해도 괜찮다.
  • 모든 이름을 문제 영역에서 가져오는 것은 현명하지 못함
  • 기술 이름에는 기술 이름이 가장 적합

문제 영역에서 가져온 이름을 사용하라

  • 적절한 '프로그래머 용어' 가 없다면 문제 영역에서 이름을 가져온다

    → 코드를 보수하는 프로그래머가 분야 전문가에게 의미를 물어 파악할 수 있다.

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

⇒ 우수한 프로그래머와 설계자라면 해법 영역과 문제 영역을 구분할 줄 알아야 한다.

의미 있는 맥락을 추가하라

  • 스스로 의미가 불분명한 이름을 위해 클래스, 함수, 이름 공간에 넣어 맥락을 부여한다.

but 모든 방법 실패 시 마지막 수단으로 접두어 붙임

불필요한 맥락을 없애라

  • 의미가 분명한 경우에 한해 일반적으로 짧은 이름이 긴 이름이 좋다. 이름에 불필요한 맥학을 추가하지 않도록 한다.

마치면서



3장 함수

profile
#Backend #Developer

0개의 댓글