Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 함수형프로그래밍
- 추상화 설계
- FP
- 개발방법론
- template
- DDD
- 헥사고날아키텍처
- 테스트
- 만들면서배우는클린아키텍처
- 테스트주도개발
- 도메인 주도 개발 시작하기
- TDD
- Kotlin
- 스터디
- 아키텍처
- 클린아키텍처
- 코틀린
- 책스터디
- 조영호
- web
- 개발서적
- Thymeleaf
- 유지보수
- Boot Legacy 차이점
- 이펙티브코틀린
- Spring
- 객체지향의사실과오해
- Java
- 계층형아키텍처
- GrokkingFunctionalProgramming
Archives
- Today
- Total
김동형수 개발기
테스트 주도 개발 - 1부 16장 본문
16장 드디어 추상화
할일목록
$5 + 10CHF = $10(환율이 2:1일 경우)$5 + $5 = $10- $5 + $5에서 Money 반환하기
Bank.reduce(Money)Money에 대한 통화 변환을 수행하는 ReduceReduce(Bank, String)- Sum.plus
- Expression.times
Expression.plus를 끝마치려면 Sum.plus를 구현해야한다.
그리고 Expression.times를 구현하면 전체 예제가 끝난다.
Sum.plus에 대한 테스트이다.
fiveBucks, tenFrancs를 더해서 Sum을 생성할 수도 있지만 위의 코드에서는 명시적으로 Sum을 생성하는데, 이게 더 직접적으로 우리 의도를 드러낸다.
할일목록
$5 + 10CHF = $10(환율이 2:1일 경우)$5 + $5 = $10- $5 + $5에서 Money 반환하기
Bank.reduce(Money)Money에 대한 통화 변환을 수행하는 ReduceReduce(Bank, String)Sum.plus- Expression.times
TDD로 구현할 땐 테스트 코드의 줄 수와 모델 코드의 줄 수가 거의 비슷한 상태로 끝난다.
TDD가 경제적이긴 위해서 매일 만들어 내는 코드가 2배가 되거나 동일한 기능을 절반의 줄 수로 구현해야 한다.
TDD vs 자신의 방법 비교해야한다.
디버깅, 통합 작업, 다른 사람에게 설명하는 데 걸리는 시간 등의 요소를 반드시 포함해야 한다.
Expression.times를 interface에 선언하고 Sum, Money에서 public으로 구현했다.
할일목록
$5 + 10CHF = $10(환율이 2:1일 경우)$5 + $5 = $10- $5 + $5에서 Money 반환하기
Bank.reduce(Money)Money에 대한 통화 변환을 수행하는 ReduceReduce(Bank, String)Sum.plusExpression.times
$5 + $5 = $10 에 대한 테스트를 작성했다.
깔끔하지 않은 방법(instanceof 같음)으로 작성한 테스트를 저자는 마음에 들어 하지 않았다.
정리
- 미래에 코드를 읽을 다른 사람들을 염두에 둔 테스트를 작성했다.
- TDD와 여러분의 현재 개발 스타일을 비교해 볼 수 있는 실험 방법을 제시했다.
- 또 한 번 선언부에 대한 수정이 시스템 나무지 부분으로 번져갔고, 문제를 고치기 위해 역시 컴파일러의 조언을 따랐다.
- 잠시 실험을 시도했는데, 제대로 되지 않아서 버렸다.
'책 스터디 > [완료] 테스트 주도 개발' 카테고리의 다른 글
테스트 주도 개발 - 1부 10장 (0) | 2022.09.23 |
---|---|
테스트 주도 개발 - 1부 9장 (0) | 2022.09.23 |
테스트 주도 개발 - 1부 15장 (0) | 2022.09.18 |
테스트 주도 개발 - 1부 14장 (0) | 2022.09.18 |
테스트 주도 개발 - 1부 13장 (0) | 2022.09.14 |
Comments