[플레이그라운드] TDD, 클린 코드 (5) - 자동차 경주 (피드백 전)
2023, Oct 01
전체 코드
https://github.com/Kyuyoung11/java-racingcar-playground/tree/firstTry
기능 목록
1. 자동차 생성 Main#_createCars
1-1. 자동차 이름 입력 - InputView#getCarNamesInput
1-2. 자동차 만들기 - CarRacing#makeCars
* 자동차 이름 5자 초과 불가능
* 자동차 이름은 쉼표를 기준으로 구분
2. 시도할 횟수 입력 - InputView#getTryNumber
3. [시도 횟수 만큼 loop] 자동차 전진 - CarRacingGenerator#moveCars
3-1. 랜덤 값 구하기 - CarRacingGenerator#getMovingNumber
3-2. 4 이상이면 전진 - Car#moveCar
3-3. 전진 결과 출력 - ResultPrinter#printMoveResult
4. 우승한 자동차 출력 - ResultPrinter#printWinner
* 한 명 이상일 수 있다.
클래스 목록
패키지명 | 클래스명 | 기능 |
---|---|---|
object | Car | 이름과 위치를 필드로 가진 객체 |
object | Cars | list로 car들을 묶어서 갖고있는 객체 |
object | CarMovingInfo | Car 전진과 관련된 변수 및 메소드 제공 |
object | Length | 길이 값 저장 (원시값 포장을 위한 목적) |
object | Splitter | 구분자를 필드로 가진 split용 객체 |
service | CarRacing | 경주와 관련된 메소드 제공 |
view | ResultPrinter | 경주 OutputView |
view | InputView | 경주 InputView |
utils | ValidationUtils | 검증 Util |
의문점
- 일급컬렉션이 무엇인가
- 원시값 포장을 어떻게 해야하는지
- Car, Cars 같은 객체를 정확히 뭐라고 하는지
- try/catch 위치가 깔끔하게 안들어가는 것 같음
피드백 영상에 맡기기로…