-
켄트 벡의 구현 패턴 - 프로그래밍 이론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);
}
반응형'My-Book(History)' 카테고리의 다른 글
켄트 벡의 구현 패턴 - 상태 (0) 2016.10.18 켄트 벡의 구현 패턴 - 클래스 (0) 2016.10.14 자바 프로그래밍 면접 이렇게 준비한다. (0) 2016.08.27 애자일(프랙티스) - 애자일 협력 (0) 2016.06.04 애자일(프랙티스) - 애자일 코딩 (0) 2016.05.28