본문 바로가기

강의/TDD, Clean Code with Java 12기

Step5 - 자동차 경주(우승자) - 피드백 (15일차)

마지막 피드백이 도착하였다.

 

from. 멘토

코드 컨벤션 생각하며 작성하기
MVC 에 맞게 코드를 구분하기
private, static, final 을 적절하게 사용하기
테스트 코드 작성하기
매직 넘버 추출하기
객체가 사용되는 시점에 검증하기
어레이 보다는 컬렉션을 사용하기
stream 사용해보기
위 사항을 지키면서 코드를 다시 한번 작성해 보았습니다.

너무 고생 많으셨습니다 👍
이 열정 무엇?? 👍

이번에는 자동차 등록하는 부분은 Race 클래스에서 -> CarRacer 부분으로 이동하였습니다.
그렇게 되면 CarRacer의 객체가 생성될 때마다 input에 대하여 검증을 진행하겠지만,
멘토님께서 말씀하신 객체가 사용되는 시점에 검증하기 위해서는 이렇게 진행하는 것이 더 옳다고 판단하였습니다.
멘토님께서는 대부분의 코드를 stream으로 작성하셨는데, 저는 아직 stream이 익숙하지 않아 연습하는 기간을 가졌었습니다.

구조 관점에서는 정답이 없는 부분이라서 😄
그 때 그 때 적절하게 하지만 과하지 않게 중심을 잘 잡아나가는게 중요한데
이건 차츰 차츰 연습하시다보면 어느정도 기준이 생기실 꺼라서 저는 오히려 크게 걱정이 안되네요 😄
stream은 사다리 미션을 하시면서 충분히 연습하실 수 있는 시간이 있습니다 😨
제가 오히려 더 복잡하게 만들어드렸네요 😭

MVC 패턴에 따라 클래스들을 나눠서 폴더에 정리하였습니다.
뭔가 열심히 한것 같았는데 다시 작성해고 난 뒤 확인해 본 결과 step4에 비해서 변한건 별로 없긴하네요...
컨펌 부탁드립니다. 감사합니다!!

step4에 비해서 변한게 별로 없다는건,
리팩토링 할만한 요소가 보이지 않았다는건
그만큼 step4까지 오시면서 잘했다는 거죠 😄

 

안녕하세요 재영님 😄

마지막 단계도 잘 진행해주셨습니다 😄

이전 리뷰 과정에서 너무 괴롭혀드린게 아닌가
걱정이 많이 됐는데, 그리도 이렇게 잘 마무리 해주셔서
제가 더 감사하네요 😄

소소한 의견 좀 드렸습니다
개선까지 할 필요는 없을 것 같습니다 😄
이번 과정에서 했던 내용 한번 정리하고 가시면
더 좋을 것 같습니다 🙇

그간 미션 진행하시느라 수고 많으셨습니다
🚗 🚗 🚗 🚗 🚗
🏎️ 🏎️ 🏎️ 🏎️ 🏎️


  race.printResult();
  ResultView resultView = new ResultView();
  resultView.printFinalResult(race.getMaxCarName());
  Race race = new Race(carNames.split(","), round);

 

"," 이 부분도 상수로 추출되면 가독성 측면에서 좀 더 좋을 것 같습니다 😄
이번 과정에서 만큼은 좋은 습관을 들이신다 생각하고 엄격하게 연습해보시길 권장 드립니다 😄

 


resultView.printCurrState(carRacers);
runGameByCycle();
carRacers.stream()
        .forEach(carRacer -> findMaxPositionCarName(carRacer.getCarName(),carRacer.getCurrPosition()));

 

단순 forEach만 사용하실 경우에는 굳이 stream()을 생성하지 않으셔도 됩니다 😄
참고만 부탁 드립니다 🙇


public class RandomGame {
  static Random rd = new Random();
  public boolean throwDice() {
    int randNum = rd.nextInt(10);

10, 4도 매직넘버 추출되면 좋을 것 같습니다 😄


 

to. 멘토

 

매직 넘버, 상수를 추출한다고 생각을 했는데 무의식 중에 그대로 사용하는 모습이 여전히 나타나고 있습니다.

좀 더 좋은 습관을 들일 수 있도록 천천히 꼼꼼하게 코드를 짜도록 하겠습니다.

 

레이싱 게임 프로젝트를 진행하는 동안 세심하게 피드백을 주셔서 감사합니다.

더 좋은 코드란 어떤 것일까, 고민하면서 레이싱 게임 프로젝트를 진행하였는데, 순간 순간이 재밌는 경험이었습니다.

처음에 짠 코드와 지금 코드를 비교하면, 구조적인 측면에서 많은 발전이 있었다고 생각합니다.

남은 프로젝트도 열심히 해보도록 하겠습니다.

 

멘토님과 2주란 기간을 함께 보냈는데, 많은 도움을 주셔서 감사합니다.

그동안 정말 감사했습니다!!