Choi May 2014. 3. 25. 18:32

Test-Driven Development : By Example

1장~17장중 17장은 요약본!! 17장을 잘 읽어요.


TDD

TDD는 적절한 때에 번뜩이는 통찰을 보장하지 못한다. 그렇지만 확신을 주는 테스트와 조심스럽게 정리된 코드를 통해, 통찰에 대한 준비와 함께 통찰이 번뜩일 때 그걸 적용할 준비를 할 수 있다. 


TDD가 경제적이기 위해서는 매일 만들어 내는 코드의 줄 수가 두배가 되거나 동일한 기능을 구현하되 절반의 줄 수로 해내야 할 것이다.


다음에 할일이 무엇인가? == 어떤 테스트들이 추가로 더 필요할까? 


statement coverage가 테스트의 시작점.

defect insertion은 코드의 의미를 바꾼 후에 테스트가 실패하는지 보는 것.


습관으로 만들 것!

- 하던 일을 중단하고 다른 일을 하는 상태에서 그 일을 또 중단하지 않는다.( Jim coplien)

- 이미 빨간 막대 상태인데 이 상태에서는 새로운 테스트를 작성하지 않는다.

- 핵심이 되는 객체가 다른 부분에 대해서 될 수 있는 한 모르도록 하자! => 재활용가능, 유연함.

- 할일 목록이 빌 때가 설계한 것을 검토할 때입니다!


주의해야할 것

- 보통 클래스가 인터페이스로 바뀌는 일이 잦은데, 그 반대로 바뀌는 것은 일반적인 방향이 아니다.


용어

메타포 : 

사칭 사기꾼 : 객체가 우리가 원하는 방식으로 동작하지 않을 경우엔 그 객체와 외부 프로토콜이 같으면서 내부 구현은 다른 새로운 객체(imposter)를 만들수 있다.


질문!

composite 패턴은 무엇인가요??'-' 139p에서 어떻게 composite 패턴이 보이나요?'-' 둘인자의 값을 가지면 어떻게 적용되나요.


컴포지트 패턴(Composite pattern)이란 객체들의 관계를 트리 구조로 구성하여 부분-전체 계층을 표현하는 패턴으로, 사용자가 단일 객체와 복합 객체 모두 동일하게 다루도록 한다.