깨끗한 코드 2장

저는 현재 Robert C Martin의 Clean Code를 읽고 있습니다. 다음은 챕터별로 제 테이크 아웃 중 일부입니다.


의미 있는 이름 쓰기.



이 장은 이름을 짓는 것에 관한 것입니다. 나는 이름을 짓는 것의 어려움과 복잡성, 그리고 이름이 의미가 없거나 정확하지 않다고 느낄 때 이름을 바꾸는 것을 주저하는 것을 이해할 수 있습니다.

아마도 이 장에서 내가 얻은 가장 큰 교훈은 다음과 같습니다.

The length of a name should correspond to the size of its scope.

- Page 22



본질적으로 이 장에서는 다음과 같이 말합니다.
  • 정확하고 명시적이어야 합니다.
  • 이름을 쉽게 변경할 수 있는 도구를 사용하십시오.
  • 가 아닌 한 일반적으로 더 길고 더 설명적인 이름이 더 좋습니다.
  • 중복 정보가 포함되어 있습니다.
  • 솔루션 또는 문제 도메인 이름은 우리 코드 및 해당 개념의 소비자에게 적절합니다.



  • 의도를 드러내는 이름 사용


  • 함수, 변수 또는 클래스의 이름은 모든 중요한 질문에 답해야 합니다.
  • 왜 존재합니까?
  • 무엇을 합니까?
  • 어떻게 사용하나요?


  • function calculateCartItemTotal(item: CartItem): number
    
    function calculateCartTotal(items: CartItem[]): number
    


    잘못된 정보를 피하십시오


  • 특정 의미가 있는 단어를 다른 의미로 사용하지 마십시오.
  • 조금씩 다른 이름을 사용하지 않도록 주의하십시오.
  • 일관성이 없거나 잘못된 철자를 사용하는 것은 잘못된 정보입니다.

  • 의미 있는 구분 만들기


  • 이름이 달라야 한다면 의미도 달라야 합니다.
  • 숫자 시리즈는 잘못된 정보가 아닌 정보가 아닙니다: a1, a2, a3 ... aN
  • 노이즈 단어를 사용하지 마십시오: ProductInfoProductData , 같은 의미입니다.
  • 유형 정보가 변수 이름에 속하지 않습니다.

  • /* Don't encode type info in variable names */
    const nameString = 'name';
    const totalFloat = 85.99;
    const quantityInteger = 2;
    
    /* Don't use similar names for different things. */
    function parseIn(a, b)
    function parseOut(a, b)
    
    /* Use explicit names that clearly indicate purpose, intention and usage. */
    function parseInputItemsToJson(inputItems, itemsJson)
    function parseOutputItemsJson(itemsJson, outputContent)
    


    검색 가능한 이름 사용


  • 번호MAX_USERS_ALLOWED를 찾는 것보다 7를 찾는 것이 훨씬 쉽습니다.
  • 문자e는 영어에서 가장 흔한 문자이기 때문에 변수에 대한 끔찍한 이름입니다.
  • event
  • exception
  • error
  • energy
  • element

  • 단일 문자 변수는 매우 작은 메서드 내부에서만 로컬로 사용할 수 있습니다.

  • 인코딩을 피하십시오


  • 이미 처리하기에 충분한 인코딩이 있습니다.
  • IDE는 이름으로 인코딩하지 않고 참조 유형에 대한 정보를 추출할 수 있습니다.
  • 자동 완성 기능도 뛰어나므로 명확하고 평이한 언어를 사용하여 더 긴 이름을 사용하는 것이 좋습니다.
  • 피해야 할 인코딩의 예:
  • 유형 인코딩: propertyString
  • 회원 접두사: m_property
  • 인터페이스: SomeModuleInterface
  • 공장: ISomeModuleFactory


  • 기타 하이라이트


  • 문화적 참조를 피하십시오
  • 속어나 구어체를 사용하지 마십시오.
  • 이름을 영리하게 만들지 마십시오.
  • 당신이 의미하는 바를 말하십시오, 당신이 말하는 것을 의미하십시오.
  • 개념당 한 단어를 선택하고 말장난을 사용하지 마십시오.
  • 다른 엔지니어가 의미를 유추할 수 있으므로 솔루션 도메인 이름을 사용하십시오.
  • 비기술적 이해 관계자가 의미를 유추할 수 있으므로 문제 도메인 이름을 사용합니다.
  • 좋은 웹페이지 즐겨찾기