ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 클린코드
    자기계발 2022. 4. 26. 13:21

    다음은 로버트 C.마틴의 Clean Code 책 내용을 요약한 전문입니다.

    클린 코드란?

    읽기 쉬운 코드가 클린코드이다.

    • 전체적으로 고려해야 할 사항
      • 단일 책임 원칙: 하나의 인터페이스가 하나의 역할을 수행해야 한다.
      • → 컴포넌트를 분리할 때 디자인보다 시나리오를 중점적으로 바라보기
    • 변수명
      • 의도가 분명한 이름을 지으라.
      • 검색하기 쉬운 이름을 사용하라.
      • 기발한 이름보다는 명료한 이름을 선택하라.
      • 한 개념에 한 단어를 사용하라. ex. fetch, retrieve, get 등 중 하나만 선택
      • 의미있는 맥락을 추가하라 ex. state 보다는 address
    • 함수
      • 함수명은 동사, 동사구가 적합하다. ex. getName()
        • 함수가 하는 일을 서술적으로 표현할 수 있는 이름을 사용하라. ex. isTestable, includesetupAndTearDownPages
      • 인자의 개수
        • 이상적인 인수 개수는 0개
        • 3개 이상은 가능한 피하는 것이 좋다.
        • 4개 이상은 금물.
      • 부수 효과를 일으키지 말 것
      • 명령과 조회를 분리하라
        • 뭔가를 수행하거나 뭔가에 답하거나 둘 중 하나만 해야 한다.
        • 객체 상태를 변경하거나 객체 정보를 반환하거나
    • 주석
      • 잘 달린 주석은 그 어떤 정보보다 유용하다.
      • 경솔하고 근거없는 주석은 코드를 이해하기 어렵게 만든다.
      • 주석은 나쁜 코드를 보완하지 못한다.
        • 코드에 주석을 추가하는 이유가 코드 품질이 나빠서가 되어서는 안된다.
        • 주석을 달 바에야 코드를 깔끔하게 정리해라.
      • 좋은 주석
        • 법적인 주석
          • 저작권 정보와 소유권 정보
          // Copyright (C) 2003,2004,2005 by Object Mentor, Inc. All rights reserved.
          // GNU General Public License 버전 2 이상을 따르는 조건으로 배포한다.
          
          
        • 정보를 제공하는 주석
        • // 테스트 중인 Responder 인스턴스를 반환한다.
        • 의도를 설명하는 주석
          • 구현을 이해하게 도와주는 선을 넘어 결정에 깔린 의도까지 설명한다.
        • 의미를 명료하게 밝히는 주석
          • 모호한 인수나 반환값이 있을 경우 주석을 유용하게 사용할 수 있다.
        • 결과를 경고하는 주석
        • // 여유 시간이 충분하지 않다면 실행하지 마십시오.
        • TODO 주석
          • 앞으로 할 일을 // TODO 주석으로 남겨두면 편하다.
        • 중요성을 강조하는 주석
          • 자칫 대수롭지 않다고 여겨질 뭔가의 중요성을 강조하기 위해서도 주석을 사용한다.
      • 나쁜 주석
        • 특별한 이유 없이 의무감으로 작성하는 주석은 시간 낭비다.
        • 코드 내용을 그대로 중복하는 주석은 자칫하면 코드보다 주석을 읽는 시간이 더 오래 걸린다.
        • 오해할 여지가 있는 주석
        • 편집 이력을 기록하는 주석은 혼란만 가중하게 된다.
        • 주석으로 처리한 코드는 지우지 못해서 점차 쌓여간다. 쓸모 없다면 과감히 지워버리자.
        • 주석에 너무 많은 정보를 장황하게 늘어놓지 마라.
        • 주석은 근처에 있는 코드만 기술하라. 코드 일부에 주석을 달면서 시스템의 전반적인 정보를 기술하지 마라.
    • 형식 맞추기
      • 적절한 행 길이를 유지하라.
      • 변수는 사용하는 위치에 최대한 가까이 선언하라.
      • 한 함수가 다른 함수를 호출한다면 두 함수는 세로로 가까이 배치한다. 또한 가능하다면 호출하는 함수를 호출되는 함수보다 먼저 배치한다.
      • 개념적인 친화도가 높은 코드일 수록 서로 가까이 배치한다.
    • 리팩토링
      • 중복을 없애라

    댓글

Designed by Tistory.