Programming/📚 Book Study

[Clean Code] 2. 의미있는 이름 (변수명)

남남이루 2023. 5. 9. 15:23
작성일 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 이라는 접두어를 붙임으로써 문맥이 명료해졌다
  • 반대로 코드에 불필요한 맥락을 추가하는 것은 불필요한 정보량을 늘리고 코드를 읽는 동료들의 시간을 낭비하는 일이므로 지양한다

  • 인코딩 : 변수에 부가적인 정보를 붙이는 것

 

 

 

 

 

Notion 필기옮기는 중입니다...