[Clean code] 창발성

Coodori·2023년 12월 11일
0

ETC

목록 보기
3/3

설계

설계는 단순하게 해야한다.

  1. 모든 테스트를 실행한다.

    • DIP 같은 원칙을 적용한다.
    • 인터페이스, DI, 추상화등을 통해 결합도를 낮춘다.
  2. 중복을 없앤다.

    • 템플릿 패턴
        abstract public class VacationPolicy {
      public void accrueVacation() {
        caculateBseVacationHours();
        alterForLegalMinimums();
        applyToPayroll();
      }
    
      private void calculateBaseVacationHours() { /* ... */ };
      abstract protected void alterForLegalMinimums();
      private void applyToPayroll() { /* ... */ };
    }
    
    public class USVacationPolicy extends VacationPolicy {
      @Override protected void alterForLegalMinimums() {
        // 미국 최소 법정 일수를 사용한다.
      }
    }
    
    public class EUVacationPolicy extends VacationPolicy {
      @Override protected void alterForLegalMinimums() {
        // 유럽연합 최소 법정 일수를 사용한다.
      }
    }
  3. 프로그래머의 의도를 표현한다.

  4. 클래스와 메서드 수를 최소로 줄인다.


표현하라

자신이 이해하는 코드는 짜기 쉽다.
하지만 장기적인 유지보수는 해당 프로젝트가 커감에 필수적이다.
아래 항목을 따라가야한다.

  1. 좋은 이름을 선택하라
  2. 함수와 클래스를 가능한 줄인다. => 이름 짓기에도 용이함.
  3. 표준 명칭을 사용한다.
    • 패턴 이름이나 설계의도를 넣어준다.
  4. 단위 테스트 케이스를 꼼꼼히 작성한다.
  5. 노력

나중에 코드를 읽을 사람은 바로 자신이다.

profile
https://coodori.notion.site/0b6587977c104158be520995523b7640

0개의 댓글