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

step3 #5070

Open
wants to merge 2 commits into
base: leekangyon
Choose a base branch
from
Open

step3 #5070

wants to merge 2 commits into from

Conversation

leekangyon
Copy link

단위테스트 구현이 부실합니다...

리뷰 잘 부탁드립니다...!

Copy link

@csh0034 csh0034 left a comment

Choose a reason for hiding this comment

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

3단계 구현하시느라 수고많으셨습니다.
코멘트 확인해주시고 다시 리뷰요청 부탁드려요!

src/main/java/racing/InputView.java Show resolved Hide resolved
src/main/java/racing/ResultView.java Outdated Show resolved Hide resolved
src/main/java/racing/ResultView.java Outdated Show resolved Hide resolved
src/main/java/racing/RacingCar.java Outdated Show resolved Hide resolved
src/main/java/racing/RacingCar.java Outdated Show resolved Hide resolved
src/main/java/racing/RacingCar.java Outdated Show resolved Hide resolved
@csh0034
Copy link

csh0034 commented Nov 9, 2023

1. gitkeep 삭제

.gitkeep 파일의 경우 git 은 디렉토리에 파일이 없을 경우 업로드 되지않아
디렉토리 구조를 유지시키기 위한 파일입니다. 파일을 추가해주셨으니 삭제해주셔도 됩니다.

2. 기능 목록 작성

기능을 구현하기 전에 README.md 파일에 구현할 기능 목록을 정리해 추가한다. 의 요구사항을 지켜보면 좋을것 같습니다.

3. AngularJS Commit Message Conventions 적용

2번 기능목록에서 작성한 기능 단위로 커밋 컨벤션을 지켜서 commit 부탁드려요!

4. 콘솔에서 Scanner 를 통한 입력

사용자는 몇 대의 자동차로 몇 번의 이동을 할 것인지를 입력할 수 있어야 한다.

현재 main 메서드 없이 테스트 코드로만 테스트가 가능한데요.
main 패키지에 레이싱게임을 실행할수있는 형태로 추가 부탁드려요.

5. 객체 지향적 설계

현재 코드가 객체지향적이지 않고 메서드만 존재하여 절차지향적으로 작성되어있습니다.
요구사항으로부터 어떤 도메인(객체) 가 존재하는지 파악한후에 해당 객체에 상태(필드)와 행위(메서드)를 부여해보면 좋을것 같아요.

힌트를 드리자면 자동차의 움직인 거리 를 표현해야하므로
Car 또는 RacingCar 라는 객체가 distance 또는 position 등의 상태를 가져야겠죠!
또한 이동 이라는 행위와 조건에 따라 거리를 증가 시키는 행위가 포함될것 같습니다.

객체지향적설계와 요구사항의 내용들은 모두 구현해보시는데 초점을 맞춰보시면 좋을것 같습니다.
궁금하신 사항있으시면 편하게 DM 주세요!

Copy link

@csh0034 csh0034 left a comment

Choose a reason for hiding this comment

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

코멘트 반영하시느라 수고많으셨습니다.
추가적으로 몇가지 코멘트 남겨두었는데
반영후에 리뷰요청 부탁드립니다!

import java.util.Scanner;

public class InputView {
public static Map<String, Integer> inputData() {
Copy link

Choose a reason for hiding this comment

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

사용하지 않는코드는 제거해주세요!


public class ResultView {

private static final String OutputRacing = "-";
Copy link

Choose a reason for hiding this comment

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

해당케이스는 클래스명에 사용하는 파스칼케이스입니다.
상수 표현 컨벤션을 찾아 적용해보면 좋을것 같아요.

return distance;
}

public void setDistance(int distance) {
Copy link

Choose a reason for hiding this comment

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

규칙 9: 게터/세터/프로퍼티를 쓰지 않는다.

요구사항인 거리값 출력에 의해서 getter 제공은 하더라도 setter 사용은
객체지향적이지 않은 설계에 해당됩니다.

setter 를 제거하고 구현해보시면 좋을것 같습니다.


private static final int RandomRange = 10;

public static void Race() {
Copy link

Choose a reason for hiding this comment

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

메서드명은 카멜케이스를 사용해주세요!

}

//Car 대수 만큼 객체 리스트 생성
public static List<Car> createCarList(int inputNumberOfCar) {
Copy link

Choose a reason for hiding this comment

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

List<Car> 를 상태로 가지고있는 적절한 객체를 추가해보시면 좋을것 같아요!

}

//랜덤값을 통한 전진여부 메서드
public static boolean checkRandomData() {
Copy link

Choose a reason for hiding this comment

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

움직일지에 대한 여부는 Car 에서 처리해보도록 하고 단위테스트를 작성해보면 좋을것 같습니다.

return carList;
}

public static int addCount(int distance) {
Copy link

Choose a reason for hiding this comment

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

조건에 따라 판단후 거리를 증가시킬지에 대한 판단은 Car 에서 처리해보도록
변경해보면 좋을것 같습니다.

@csh0034
Copy link

csh0034 commented Nov 13, 2023

현재 코드가 절차지향적이며 단위테스트 작성이 되어있지 않네요. 🥲
이번단계의 부제목이 단위테스트인만큼 테스트코드 작성 부탁드립니다.
어려우시다면 포비님의 2차 라이브 강의 - TDD로 자동차 경주 게임 구현 를 보시는걸 추천드려요!

추가로 커밋 단위를 기능단위로 나눠서 해보시면 좋을것 같습니다!

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.

2 participants