개발서적

Clean Code, #1

규동 2023. 9. 1. 23:20

의미있는 이름

  1. 변수, 함수, 클래스, 패키지 이름의 의도를 분명히 밝혀라.
  2. 발음하기 쉬운 이름을 사용하라. : 줄임말 지양, 대화가 가능한 단어 사용
  3. 검색하기 쉬운 이름을 사용하라.
  4. 기억력을 믿지마라.
  5. 기발한 이름은 피하라. : 일반적으로 사용하는 단어를 사용
  6. 한 개념에 한 단어를 사용하라.
  7. 코드를 읽는건 개발자다. 개발자에게 익숙한 이름을 사용

함수

  1. 작게 만들어라. : 무조건 작게 만드는 것이 좋다고 생각하지 않는다.
  2. 한가지만 해라 : 함수 당 추상화 수준은 하나로. : 함수 내 모든 문장의 추상화 수준이 동일하게 해야한다.
  3. 내려가기 규칙 : 코드는 위에서 아래로 읽는다.
  4. Switch문
    1. switch문은 본질적으로 N가지를 처리한다.
    2. 저차원 클래스에 숨기고 절대로 반복하지 않도록 한다.
    3. 다형성을 이용한다.
  5. 서술적인 이름을 이용해라. 
  6. 함수 인수 : 이상적인 인수 개수는 0개, 다음은 1개, 다음은 2개, 3개부터는 피하는 것이 좋다.
  7. 부수효과를 만들지 않는다. : 함수명으로 유추하지 못할 기능을 넣지 않는다.
  8. 명령과 조회를 분리하라. : 객체 상태를 변경하거나 객체 정보를 반환하거나 둘 중 하나다.
  9. 오류 코드보다 예외를 사용하라.
    1. Try/Catch 블록 뽑아내기 : 함수로 분리해라.
    2. 오류 처리도 한 가지 작업이다.
  10. 반복하지 마라. : 구조적 프로그래밍, AOP, COP 모두 어떤면에서 중복 제거 전략이다.

주석

  1. 주석은 나쁜 코드를 보완하지 못한다.
  2. 코드로 의도를 표현해라. : 함수로 분리 후 함수명을 이용할 수 있다.
  3. 좋은 주석
    1. 법적인 주석
    2. 정보를 제공하는 주석
    3. 의도를 설명하는 주석
    4. 의미를 명료하게 밝히는 주석
    5. 결과를 경고하는 주석
    6. TODO 주석
  4. 나쁜 주석
    1. 주절거리는 주석
    2. 같은 이야기를 중복하는 주석
    3. 오해할 여지가 있는 주석
    4. 의무적으로 다는 주석
    5. 이력을 기록하는 주석
    6. 있으나 마나 한 주석
    7. 위치를 표시하는 주석
    8. 닫는 괄호에 다는 주석
    9. 주석으로 처리한 코드
    10. 너무 많은 정보
    11. 모호한 관계