Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[자동차 경주 게임] 이영수 미션 제출합니다. #253

Open
wants to merge 52 commits into
base: main
Choose a base branch
from

Conversation

youngsu5582
Copy link

No description provided.

docs/README.md 에
구현 전 체크리스트 , 구현 후 체크리스트로 구분하여 작성
TDD 기법에 따라 테스트 코드 우선 작성 ( RED )
- 사용자의 입력을 받는 테스트 케이스
- 사용자의 입력 받지 못하는 테스트 케이스
TDD 기법에 따라 테스트 코드에 대한 기능 구현 ( BLUE )
두 가지 테스트 케이스 통과
docs/README.md 에 이모지 수정
TDD 기법에 따른 기능 구현 후 리팩토링 ( BLUE )
try-catch 문 삭제 , 불필요한 import 제거
TDD 기법에 따라 테스트 코드 우선 작성 ( RED )
- 정해진 형식대로 입력한 케이스
- 형식이 맞지 않은 케이스
TDD 기법에 따라 테스트 코드에 대한 기능 구현 ( BLUE )
두 가지 테스트 케이스 통과
docs/README.md 에 이모지 수정
TDD 기법에 따라 테스트 코드 우선 작성 ( RED )
- 이름이 일정 길이를 초과하는 케이스
TDD 기법에 따라 테스트 코드에 대한 기능 구현 ( BLUE )
기존 , 잘못 입력한 테스트 케이스 수정 ( GREEN )
docs/README.md 에 이모지 수정
TDD 기법에 따라 테스트 코드 우선 작성 ( RED )
- 중복된 이름이 존재하는 케이스
TDD 기법에 따라 테스트 코드에 대한 기능 구현 ( BLUE )
docs/README.md 에 이모지 수정
숫자 -> 양의 정수로 수정
( 0 , 음수 인 경우에도 에러를 발생하기 위해 )
TDD 기법에 따라 테스트 코드 우선 작성 ( RED )
- 양의 정수를 입력한 케이스
- 숫자가 아닌 값을 입력한 케이스
- 음의 정수를 입력한 케이스
- 숫자 0을 입력한 케이스
TDD 기법에 따라 테스트 코드에 대한 기능 구성 ( BLUE )
docs/README.md 이모지 수정
TDD 기법에 따라 테스트 코드 우선 작성 ( RED )
- 숫자가 일정값을 넘는 케이스
- 숫자가 일정값을 넘지 못하는 케이스
TDD 기법에 따라 테스트 코드에 대한 기능 구현 ( BLUE )
docs/README.md 에 이모지 수정
TDD 기법에 준수하나 ,
private 에서 protected 로 변경에 따라 테스트 추가 구현
TDD 기법에 따른 기능 구현 후 리팩토링 ( BLUE )
상수 Config Class 로 별도 분리
이에 따라 , Car Class 와 CarTest Class 둘다 수정
기존 추가 누락된 docs/README.md 이모지 수정
새로운 차를 생성해서 줄 수 있다 기능 추가
TDD 원칙에 준수하나 , 단순 객체 생성 후 return 이 끝이므로
테스트 와 기능 구현 동시에 진행
docs/README.md 에 이모지 수정
TDD 기법에 따라 테스트 코드 우선 작성 ( RED )
- 자동차 공장에서 차를 생성받는 케이스
- 자동차 전진여부에 따라 현재 위치에서 일정 칸 전진하는 케이스
TDD 기법에 따라 테스트 코드에 대한 기능 구현 ( BLUE )
docs/README.md 에 이모지 수정
TDD 기법에 따른 기능 구현 후 리팩토링 ( BLUE )
상수 Config Class 로 별도 분리
Racer Class 와 RacerTest Class 둘다 수정
TDD 기법에 따라 테스트 코드 우선 작성 ( RED )
- 현재 경기 상황을 출력하는 케이스
TDD 기법에 따라 테스트 코드에 대한 기능 구현 ( BLUE )
docs/README.md 에 이모지 수정
TDD 기법에 따라 테스트 코드 우선 작성 ( RED )
- 단독 우승자를 출력하는 케이스
- 공동 우승자를 출력하는 케이스
TDD 기법에 따라 테스트 코드에 대한 기능 구현 ( BLUE )
PrinterTest 코드에 있는 오타 수정
docs/README.md 에 이모지 수정
TDD 기법에 따라 테스트 코드 우선 작성 ( RED )
- 해당_경주에_참여하는_레이서_명단_접수하는_케이스
TDD 기법에 따라 테스트 코드에 대한 기능 구현 ( BLUE )
confrimRacerList 함수가 String 을 받도록 변경
docs/README.md 에 이모지 수정
경주를 진행 하는 횟수를 접수할 수 있다 기능 추가
TDD 기법에 따라 테스트 코드 우선 작성 ( RED )
- 경주를 시도하는 횟수를 접수하는 케이스
TDD 기법에 따라 테스트 코드에 대한 기능 구현 ( BLUE )
docs/README.md 에 이모지 수정
TDD 기법에 따라 테스트 코드 우선 작성 ( RED )
- 경주를 시작하는 케이스
TDD 기법에 따라 테스트 코드에 대한 기능 구현 ( BLUE )
docs/README.md 에 이모지 수정
공통되는 코드 Util 함수로 분리
Racer 의 continueRace -> runRaceEachStep 로 변경
함수명 변경에 따라 , 클래스에 사용하는 부분 변경
TDD 기법에 따라 테스트 코드 우선 작성 ( RED )
- 레이서들중 우승자를 출력하는 케이스
TDD 기법에 따라 테스트 코드에 대한 기능 구현 ( BLUE )
docs/README.md 에 이모지 수정
기능 요구사항 구현 완료에 따른 기능 통합
테스트 통과하기 위해 부가적인 print 문 추가
ApplicationTest 테스트 케이스 통과
기존 : Car Class 를 Mocking 하여 함수 값 조작 ->
Randoms.pickNumberInRange 함수를 Mocking 하여 통과하게 수정
Randoms 함수를 Mocking 하는 Class
pickNumberInRange 의 함수 결과가 원하는 값이 나오게 수정
기존 , pickNumberInRange 사용하는 테스트 수정
- 레이서들중 다중 우승자를 출력하는 케이스
가독성 위해 , package 생성해 분리
이에 따라 , protected 생성자들 public 으로 변경
검증 위해 Validator 를 생성할 필요 없다고 생각하여 수정
Validator 를 사용하는 Server Class 에서도 수정
기존 : 시도 횟수 관련 로직에 count 를 포함
변경 : count->round 로 변경
기존 : checkCanMoveForwardIfSpeedIsExceedThreshold 함수명, canMoveForwardStatus 라는 불필요한 변수

변경 : checkCarSpeedIsExceedThreshold 로 변경 , 함수 분리
기존 : Util Class 명 사용 ( utils 클래스와 중복 )

변경 : 기능에 따라 Util -> Parser
- 자동차 전진여부에 따라 현재 위치에서 일정 칸 전진 못하는 케이스
기존 : Car 객체를 받아서 검사

변경 : Car 객체가 있는지 확인하여 boolean 통해 검사
기존 : "-" 문자열 그대로 사용

변경 : Config 에 POS_INDICATOR 로 분리
- 공동 우승 케이스
- 이름 중복 입력 예외 처리 케이스
- 횟수 문자열 입력 에외 처리 케이스
- 횟수 음수값 입력 예외 처리 케이스
마지막 검수 후 , 코드 컨벤션 준수함 에 따라 체크 버튼 수정
Class 내 import 순서를 아래와 같이 통일

1. racingcar Class
2. java.utils
3. org.junit
4. org.mockito
기존 : printInProgress , printTotalWinners

변경 : printCurrentRaceResult , printFinalResult

이에 따라 , 관련 Class 에 함수명 변경
Copy link

@chosunghyun18 chosunghyun18 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

좋은코드 보고 많이 배우고 갑니다!
MVC 패턴을 사용하지 않고 OOP 를 지키면서 설계하신 점, 모킹 및 테스트를 활용하신점 모두 멋지십니다. 👍

docs/README.md Show resolved Hide resolved
src/main/java/racingcar/configs/Config.java Show resolved Hide resolved
src/main/java/racingcar/racer/Racer.java Show resolved Hide resolved
Copy link

@aammddkkzxc aammddkkzxc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

정말 체계적으로 잘 짜신 것 같아요 많이 배워갑니다. 다만 자바 코드 컨벤션 다시 보시는것 추천드려요!!

src/main/java/racingcar/car/Car.java Show resolved Hide resolved
src/main/java/racingcar/player/Player.java Show resolved Hide resolved
src/main/java/racingcar/racer/Racer.java Show resolved Hide resolved
src/main/java/racingcar/racer/Racer.java Show resolved Hide resolved
public class Server {
private List<Racer> racerList;
private int raceRound;
public Server(){

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

위에 13번째 줄에서 List<Racer racerList = new ArrayList<>();로하는게 더 보기 편할 것 같아요. 또 이번에 피드백 온것에 List라는 자료형을 쓰지 말라고 왔던데 확인해 보시는게 좋을 것 같아요

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

넵! 감사합니다!
혹시 이번 피드백에서 내용을 못봤는데 , 어디에 있었는지 알려줄 수 있을까요??!
@aammddkkzxc

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

메일 확인해보셔요 문서로 첨부해서 나눠줬어요. 아 List 자체를 쓰지 않는게 아니라 네이밍을 racerList이런식으로 하지마라고 온건데 오해의 소지가 있게 말씀 드린거같네요 죄송합니다 ㅠㅠ

src/main/java/racingcar/server/Server.java Show resolved Hide resolved
src/main/java/racingcar/configs/Config.java Show resolved Hide resolved
src/main/java/racingcar/utils/Validator.java Show resolved Hide resolved
src/main/java/racingcar/utils/Printer.java Show resolved Hide resolved
src/main/java/racingcar/utils/Validator.java Show resolved Hide resolved
Copy link

@Dongwoongkim Dongwoongkim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

코드 잘 읽었습니다 3주차부터는 컨벤션을 잘 지키시면 지금보다 더 읽기 좋은 코드가 될 것 같습니다 3주차도 홧팅입니닷

src/main/java/racingcar/car/CarFactory.java Show resolved Hide resolved
src/main/java/racingcar/Application.java Show resolved Hide resolved
src/main/java/racingcar/racer/Racer.java Show resolved Hide resolved
src/main/java/racingcar/player/Player.java Show resolved Hide resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants