728x90
반응형
도메인 기반 지식이 있으면 좋지만 어려울 경우 체크할 것!
구현할 기능 목록 작성하기
- 구현할 기능 목록을 작성한 후에 TDD로 도전 - todo list
- TODO List는 계속 변경이 되는 것
- 기능 목록을 작성하는 것도 고민이 필요하고 연습이 필요하다.
- 적은 테스트 값으로 가능한 범위를 모두 테스트할 수 있는 것이 좋다.
이것도 어렵다면
- 일단 구현한다. (원래 하던대로)
- 도메인 지식을 쌓는다.
- 구현한 모든 코드를 버린다.
- 구현할 기능 목록 작성 또는 간단한 도메인 설계
- 기능 목록 중 만만한 것부터 TDD구현 시작
- 복잡도가 높아져서 리팩토링하기 힘든 상태가 되면 다시 버린다.
- 다시도전
TDD 단계
- 실패하는 작은 단위 테스트를 작성한다. 처음에는 컴파일조차 되지 않을 수 있다.
- 빨리 테스트를 통과하기 위해 프로덕션 코드를 작성한다. 이를 위해 정답이 아닌 가짜 구현 등을 작성할 수도 있다.
- 그 다음의 테스트 코드를 작성한다. 실패 테스트가 없을 경우에만 성공 테스트를 작성한다.
- 새로운 테스트를 통과하기 위해 프로덕션 코드를 추가 또는 수정한다.
- 1~4단계를 반복하여 실패/성공의 모든 테스트 케이스를 작성한다.
- 개발된 코드들에 대해 모든 중복을 제거하며 리팩토링한다.
코딩할 때 좀 더 객체지향적으로 하는 법
- getter, setter사용을 지양하고, 객체에게 맡겨라.
- 객체에게 물어보라. 객체의 값을 직접 바꾸지 말고
- 메서드를 쪼개고, 클래스를 쪼개라.
- 한 메서드에 오직 한 단계의 들여쓰기
- else 예약어를 쓰지 않는다.
- 모든 원시값과 문자열을 포장한다.
- 일급 콜렉션을 쓴다.
728x90
반응형
'TDD이론과연습&리팩토링' 카테고리의 다른 글
구글 코딩 컨벤션 위반 Rule 수정하기 (0) | 2022.10.19 |
---|---|
intellij 구글 코딩 컨벤션 적용하기 (0) | 2022.10.19 |
자바 플레이그라운드 문자열 덧셈 계산기 (0) | 2022.10.13 |
자바 플레이그라운드 with TDD - 문자열 계산기 (0) | 2022.10.07 |
자바 플레이그라운드 with TDD, 클린코드 학습테스트 (1) | 2022.10.07 |