[플레이그라운드] TDD, 클린 코드 (5) - 자동차 경주 (피드백 전)



전체 코드

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 위치가 깔끔하게 안들어가는 것 같음

피드백 영상에 맡기기로…

다른 글