ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 켄트 벡의 구현 패턴 - 프로그래밍 이론
    My-Book(History) 2016. 10. 14. 15:34

    순성

    - 프로램을 최대한 단순화하라

    - 의미 없는 코드는 모두 제거하라.

    - 설계 시 에도 고도한 요소는 모두 빼고, 요구 사항을 분석해서 꼭 필요한 사항만을 뽑아내라.

    - 과도한 복잡도를 제거하면 코드를 새로운 관점에서 바라볼 수 있다.

     

     

    유연성

    - 프로그램은 유연해야 하지만, 프로그램이 발전하는 방향으로 유연해야 한다.

    - 추측에 의거해 설계에 유연성을 부여하는 것보다는 단순성을 유연하게 적용한 후 테스트를 철저하게 하는 편이 더욱 효과적이다.

    - 유연성이 있으면서도 당장 이득을 얻을 수 있는 패턴을 사용하라.

    - 당장 비용이 들어가지만, 앞으로 이득을 얻을 수 있을지 불확실한 패턴의 경우에는 일단 사용을 자제하는 편이 좋다.

     

     

    구현 패턴의 근간이 되는 원칙

    1. 지역적 변화 : 코드를 수정할 때 함께 바꿔야 하는 부분을 최소화하라. (지역 구간만을 변화하라는 의미인거 같다)

       2. 최소 중복 (지역적 변화 원치 근거 [0] )

    - 같은 코드가 여러 곳에서 반복된다면, 그중 하나를 바꿀 때 다른 중복된 코드들도 모두 바꿔야 할지 여부를 결정해야 한다.

    - 프로그램상의 어떤 개념을 수정했을 때 2개 이상의 클래스 계층을 수정해야 한다면 지역적 변화의 원칙을 위배하는 것이다.

    - 프로그램을 여러 작은 부분-짧은 구문, 짧은 메소드, 작은 객체, 작은 패키지-으로 나누는 것이다.

     

    3. 로직과 데이터의 결합 (지역적 변화 원치 근거 [1] )

    - 로직과 데이터를 함께 유지하는 것이다.

    - 데이터와 그 데이터를 처리하는 로직을 밀접하게 가급적 같은 메소드 혹은 같은 객체 내에, 최소한 같은 패키지 내부에 배치하라

     

    4. 변화율

    - 하나의 객체에 있는 모든 필드는 가급적 함께 변해야 한다.

    - 특정 메소드가 수행될 때만 사용되는 필드는 그 메소드의 지역 변수로 선언되어야 한다.

     

    ex)

    setAmount(int value, string currency) {

    this.value = vlaue;

    this.currency = currency;

    }

    위 코드는 다음과 같이 바꿀 수 있다.

     

    setAmount(int value, string currency) {

    this.value = new Money(value, currency);

    }

     

     

     

Designed by Tistory.