ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Clean Code - 2장 의미 있는 이름
    주니어 개발자 2022. 2. 26. 13:08

    의도를 분명히 밝혀라

    1. 이름이 정말로 중요하다.

     

    2. 변수 혹은 함수나 클래스의 존재 이유, 수행 기능, 사용 방법이 따로 주석이 필요하다면 의도를 분명히 드러내지 못했다는 말이다.

    int d; //경과 시간(단위:날짜)

    이름 d는 아무 의미도 드러나지 않는다.

    경과 시간이나 날짜라는 느낌이 안든다.

    측정하려는 값과 단위를 표현하는 이름이 필요하다. 

    의도가 드러나는 이름을 사용하면 코드 이해와 변경이 쉬워진다.

     

    3. 23 페이지 참고

    23 페이지의 코드 처럼 함수들에 의미 있는 이름들을 정해주고 코드의 전체적인 맥락을 보면 단순히 이름만 고쳤는데도 함수가 하는 일을 이해하기 쉬워졌다.

    바로 이것이 좋은 이름이 주는 위력이다.

     

    4. 그릇된 정보를 피하라

    코드에 그릇된 단서를 남겨서는 안 된다.

    그릇된 단서는 코드 의미를 흐린다.

    나름대로 널리 쓰이는 의미가 있는 단어를 다른 의미로 사용해도 안 된다.

     

    accountList(계정 그룹)

    단지 그룹이라 List라고 명명하게 되면 ArrayList 형태의 변수이구나라고 착각 할 수 있기 때문에 accountGroup 또는 Accounts라 명명한다.

     

    5. 의미 있게 구분하라

    다른 프로그래머가 아래와 같이 함수를 작성하였다.

    getActiveAccount();

    getActiveAccountInfo();

    프로젝트에 참여한 프로그래머는 어느 함수를 호출할지 어떻게 알까?

     

    구분을 지어야하는 부분에서 Data, Info와 같은 의미가 비슷하고 다른 단어를 사용하지 않고 의미가 분명한 단어를 사용한다.

    읽는 사람이 차이를 알도록 이름을 지어라.

     

    6. 발음하기 쉬은 이름을 사용하라

    이름이 길다고 약자를 사용해서 generationTimestamp를 genymdhms와 같이 작성하게 되면 다른 프로그래머와 이야기를 할 때 발음하기도 불편하고 어떤 의미를 가지고 있는지 만든 사람이 아니면 잘 이해를 하지 못한다. 

     

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

    문자 하나를 사용하는 이름과 상수는 테스트 코드에서 쉽게 눈에 띄지 않는다.

    긴 이름이 짧은 이름보다 좋다.(grep으로 찾기도 쉽고 짧은 단어로 하면 다른 곳에서 쓰이고 있는 단어랑 겹칠 수 있기 때문에 찾기가 힘들다.)

     

    8. 적합한 어법

     

    클래스 이름과 객체 이름은 명사나 명사구가 적합하다.

    Manager, Processor, Data, Info 등과 같은 단어는 피하고, 동사는 사용하지 않는다.

     

    메서드 이름은 동사나 동사구가 적합하다.

     

    9. 말장난을 하지 마라

    기존 값 두 개를 더하거나, 새로운 값을 만드는 매서드 앞에 add를 붙였다고 하자. 이 때 새로 작성하는 매서드는 집합에 값 하나를 추가한다고 할 때, 이 메서드 앞에도 add를 붙이는 것이 적합할까? 필자는 insert나 append를 붙이는 것이 적합하다고 말하고 있다.

     

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

    전산 용어, 알고리즘 이름, 패턴 이름, 수학 용어 등을 사용해도 괜찮다. 

    기술 개념에ㄴ는 기술 이름이 가장 적합한 선택이다.

     

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

    메소드안에서 수행하는 일들이 맥락으로 잘 이해할 수 있게 코드를 작성한다. 

Designed by Tistory.