ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 02. 의미 있는 이름
    스터디/Clean Code 2021. 8. 17. 16:56
    반응형
    클린 코드, 로버트 C. 마틴

    이름을 잘 짓는 규칙


    1) 의도를 분명하게 밝혀라

    변수나 함수 그리고 클래스 이름은 다음과 같은 질문에 모두 답해야 한다.

    - 변수의 존재 이유는?

    - 수행 기능은?

    - 사용 방법은?

    주석이 필요하다면 의도를 분명히 드러내지 못했다는 말이다.

    public List<Cell> getFlaggedCells() {
    	List<Cell> flaggedCells = new ArrayList<Cell>();
        for (Cell cell : gameBoard)
        	if (cell.isFlagged())
            	flaggedCells.add(cell);
        return flaggedCells;
    }

     

    2) 그릇된 정보를 피하라

    - List가 아니라면 Group을 사용해라

    - 서로 흡사한 이름 사용하지 않기

     

    3) 의미 있게 구분하라

    이미 해당 변수가 있다고 해서

    - 연속된 숫자를 덧붙이지 마라 (ex. a1, a2..)

    - 불용어를 붙이지 마라 (ex. Product가 있으므로 ProductInfo)

     

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

     

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

    이름 길이는 범위 크기에 비례해야 한다. (ex. s, j X / WORK_DAYS_PER_WEEK O)

     

    6) 인코딩을 피하라

    - 헝가리식 표기법을 사용하지 마라

    - 멤버 변수 접두어를 붙이지 마라 (ex. m_dsc 등)

    - 인터페이스 클래스와 구현 클래스(IShapeFactory X ShapeFactoryImp O)

     

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

    - 문자 하나만 사용하는 변수 이름은 문제가 있다. (루프에서 반복횟수를 세는 i, j, k는 괜찮다.)

     

    8) 클래스 이름

    클래스 이름과 객체 이름은 명사나 명사구가 적합하다. (Customer, WikiPage, Account O | Data, Info X)

     

    9) 메서드 이름

    메서드 이름은 동사나 동사구가 적합하다. (postPayment, deletePage, save)

     

    10) 기발한 이름은 피해라

     

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

    - controller, manager, driver를 섞어 쓰면 혼란스럽다. 

    - DeviceManager와 ProtocolController는 근본적으로 어떻게 다른가?

     

    12) 말장난을 하지마라

    - 다른 개념에 같은 단어를 사용하지마라

    - 기존의 add는 기존 값 두 개를 더하거나, 이어서 새로운 값을 만든다. 새로 작성하는 메서드는 집합에 값 하나를 추가한다. 이 메서드를 add라 불러도 괜찮을까? ==> 기존 add 메서드와 맥락이 다르므로 X

     

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

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

     

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

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

     

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

    - 클래스, 함수, 이름 공간에 넣어 맥락을 부여한다. 모든 방법이 실패하면 마지막 수단으로 접두어를 붙인다.

    - 예를 들어, fisrtName, lastName => addrFisrtName, addrLastname 등 분명하게 표현한다. 

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

    - 'Gas Station Deluxe' => 'GSD'로 변경 X

    - 일반적으로 긴 이름이 짧은 이름보다 좋다. 다만 맥락이 분명해야 한다.

    반응형

    '스터디 > Clean Code' 카테고리의 다른 글

    01. 깨끗한 코드  (0) 2021.08.17

    댓글

Designed by Tistory.