콘텐츠로 이동

11-25-클린코드

오늘 한 일

클린코드 p379 - p406

냄새와 휴리스틱

  • Boolean, enum, int 등 함수 동작을 제어하는 인수 대신 새로운 함수를 만들어라
  • static 함수는 재정의할 가능성이 없는 함수만 선언
  • 계산을 여러 단계로 나누고 중간 값으로 서술적인 변수 이름을 사용해라
    • 중간 값에 좋은 변수 이름을 쓰면 읽기 쉬운 모듈이 된다
  • 코드에서 뭔가를 결정할 때는 정확히 결정해라
    • 결정을 내리는 이유와 예외를 처리할 방법을 분명히 해라
  • 부정 조건을 피하고 가능한 긍정 조건으로 표현해라
  • 함수는 한가지 임무만 수행하도록 해라
  • 여러 함수 호출에 실행 순서가 중요하다면 시간적인 결합을 노출해라

    public void function() {
        A();
        B();
        C();
    }
    
    // 시간적인 결합 노출
    public void function() {
        x = A();
        y = B(x);
        C(y, z);
    }
    

  • 경계 조건을 캡슐화 해라

    if(level + 1 < tags.length) {
        //...
    }
    
    // 경계 조건 캡슐화
    int nextLevel = level + 1;
    if(nextLevel < tags.length) {
        //...
    }
    

  • 디미터의 법칙: 자신이 직접 사용하는 모듈만 알아야 한다

    • a.getB().getC().doSomnething(); xxx

다음 할 일

클린코드 마지막!