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
- 코틀린
- TDD
- 스터디
- Spring
- 만들면서배우는클린아키텍처
- 개발서적
- 책스터디
- 개발방법론
- 테스트
- 객체지향의사실과오해
- Java
- 조영호
- Kotlin
- 함수형프로그래밍
- GrokkingFunctionalProgramming
- 도메인 주도 개발 시작하기
- DDD
- 이펙티브코틀린
- 계층형아키텍처
- 아키텍처
- FP
- Boot Legacy 차이점
- template
- 헥사고날아키텍처
- 테스트주도개발
- web
- 클린아키텍처
- 추상화 설계
- 유지보수
- Thymeleaf
Archives
- Today
- Total
김동형수 개발기
테스트 주도 개발 - 1부 9장 본문
9장 우리가 사는 시간
할일목록
- $5 + 10CHF = $10(환율이 2:1일 경우)
$5 X 2 = $10amount를 private로 만들기Dollar 부작용?- Money 반올림?
equals()- hashCode()
- Equal null
- Equal object
5CHF X 2 = 10CHF- Dollar / Franc 중복
공용 equals- 공용 times
Franc와 Dollar 비교하기- 통화?
- testFrancMultiplication을 지워야 할까?
통화 개념 테스트 및 구현
경량 팩토리를 사용할 수 있다. 하지만 당분간은 대신 문자열을 사용한다.
Dollar, Franc 동일한 구현 후 공통 상위 클래스에 관련 내용을 push up 한다.
통화를 인스턴스 변수에 저장하길 원한다.
두 currency가 동일하므로 변수 선언과 currency()를 공통 클래스인 Money로 Push up 한다.
그리고 통화문자열을 정적 팩토리 메서드로 옮긴다면 두 생성자가 동일해질 것이고 그렇다면 공통 구현을 만들 수 있을 것이다.
Franc.times에서 Money.franc인 스태틱 메서드를 호출해야하지만 지금 하는 일 ( 통화 추가 ) 가 끝나지 않았기 때문에 일이 끝날 때 까지 기다린다.
하던 일을 중단하고 다른 일을 하게 되면, 그 다른 일이 끝날 때 까지는 중단하지 않는다.
저자는 무조건 작은 단계로 진행하라고 말하는 것은 아니고 이런 식으로 진행할 수도 있어야 한다고 말한다. ( 경우에 따라 위 방법으로 진행해야 더 좋은 결과가 있을 수 있다는 경험에서 비롯된 의견인듯 )
큰 단계를 작업하려다가 다시 작은 단계로 돌아왔다.
Dollar에도 동일하게 적용해준다.
이제 상위클래스에 올린다.
할일목록
- $5 + 10CHF = $10(환율이 2:1일 경우)
$5 X 2 = $10amount를 private로 만들기Dollar 부작용?- Money 반올림?
equals()- hashCode()
- Equal null
- Equal object
5CHF X 2 = 10CHF- Dollar / Franc 중복
공용 equals- 공용 times
Franc와 Dollar 비교하기통화?- testFrancMultiplication을 지워야 할까?
정리
- 큰 설계 아이디어를 다루다가 조금 곤경에 빠졌다. 그래서 좀 전에 주목했던 더 작은 작업을 수행했다.
- 다른 부분들을 호출자(팩토리 메서드)로 옮김으로써 두 생성자를 일치시켰다.
- times()가 팩토리 메서드를 사용하도록 만들기 위해 리팩토링을 잠시 중단했다.
- 비슷한 리팩토링(Franc에 했던 일을 Dollar에도 적용)을 한번의 큰 단계로 처리했다.
- 동일한 생성자들을 상위 클래스로 올렸다
'책 스터디 > [완료] 테스트 주도 개발' 카테고리의 다른 글
테스트 주도 개발 - 2부 18장 (0) | 2022.09.28 |
---|---|
테스트 주도 개발 - 1부 10장 (0) | 2022.09.23 |
테스트 주도 개발 - 1부 16장 (0) | 2022.09.18 |
테스트 주도 개발 - 1부 15장 (0) | 2022.09.18 |
테스트 주도 개발 - 1부 14장 (0) | 2022.09.18 |
Comments