-
Notifications
You must be signed in to change notification settings - Fork 709
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
3단계 - 사다리(게임 실행), 2단계 - 사다리(생성) 수정 #2281
Conversation
- X 생성 - 0보다 작으면 오류 - Y 생성 - 0보다 작으면 오류 feat(ladder): create X feat(ladder): create Y
- X 이동 - X 우로 이동 - X 좌로 이동 - X 좌로 이동 실패 0보다 작음 feat(ladder): add X moveRight, moveLeft method test(ladder): add 오른쪽으로 이동한다, 왼쪽으로 이동한다, 왼쪽으로 이동 실패: 0미만
- Y 이동 - Y 아래로 이동 feat(ladder): add Y moveDown test(ladder): add Y 아래로 이동한다
- Position 생성 - Position 이동 feat(ladder): add Position, constructor, move method test(ladder): add Position create, move test methods
- PlayerName 이름이 all 일 수 없다 feat(ladder): rename Name -> PlayerName test(ladder): add PlayerName create_키워드_all_실패 test method
- Player 생성 - Player 이름을 출력한다 feat(ladder): add Player constructor, name method test(ladder): add PlayerTest create, name feat(ladder): modify PlayerName name() -> value()
- RewardName 생성 feat(ladder): add RewardName constructor, value test(ladder): add RewardName create, value
- Reward 생성 - Reward 이름을 출력한다 - Reward Position 동등 비교 - Player 포지션을 출력한다 feat(ladder): add Reward constructor, name, isEqualPosition test(ladder): add RewardTest create, name, isEqualPosition feat(ladder): add Player position test(ladder): add PlayerTest position
test(ladder): modify PlayersTest create feat(ladder): modify Player name return type String -> PlayerName test(ladder): modify PlayerTest name
- Rewards 생성 - Rewards 게임결과를 도출한다 - Rewards 게임결과들을 도출한다 - Result 생성 - Result 플레이어의 결과인지 출력 - Result RewardName 출력 - Result PlayerName 출력 - Results 생성 - Results 결과목록 출력 feat(ladder): add Result test(ladder): add ResultTest feat(ladder): add Results test(ladder): add ResultsTest feat(ladder): add Rewards test(ladder): add RewardsTest feat(ladder): add Players each method test(ladder): add PlayersTest each method feat(ladder): add Reward test(ladder): add RewardsTest
- modify Reward position x 동등 비교 - modify Reward field Position -> X - add Player 가로 일치 여부를 출력한다 feat(ladder): modify Reward constructor, field Position -> X test(ladder): modify RewardTest feat(ladder): modify Rewards constructor test(ladder): modify RewardsTest feat(ladder): add Position xEquals test(ladder): add PositionTest xEquals
- Players 플레이어 모두 한칸 아래 이동 - Point 이동 feat(ladder): add Players moveLine test(ladder): add PlayersTest moveLine feat(ladder): add Point move test(ladder): add PointTest move
- Line 플레이어 모두 한칸 아래 이동 feat(ladder): remove Players moveLine test(ladder): remove PlayersTest moveLine feat(ladder): add Line move test(ladder): add LineTest move feat(ladder): add Vertical test(ladder): add VerticalTest feat(ladder): add Players vertical test(ladder): add PlayersTest vertical
- Lines 플레이어 모두 마지막까지 이동 feat(ladder): remove Players moveLine feat(ladder): add Lines move test(ladder): add LinesTest move
- PlayerName 생성 - RewardName 생성 feat(ladder): add RewardName test(ladder): add RewardNameTest
- Ladder 결과들을 생성한다 - Rewards 이름을 출력한다 - Results 생성 - Results 게임결과를 도출한다 - Results 게임결과들을 도출한다 feat(ladder): add Ladder results test(ladder): add LadderTest results feat(ladder): add Rewards names test(ladder): add RewardsTest names feat(ladder): add Results test(ladder): add ResultsTest
- modify unused Exceptions test(ladder): modify omitted @DisplayName
- Rewards 생성 실패 - Players 생성 실패 - Vertical 생성 실패 - InputView 실행 결과를 입력받는다.(실행 결과를 입력하세요. (결과는 쉼표(,)로 구분하세요)) - InputView 결과를 볼 플레이어 이름을 입력받는다.(결과를 보고 싶은 사람은?) - InputView 결과를 볼 플레이어 전체를(all) 입력받는다.(결과를 보고 싶은 사람은?) - ResultView 사다리결과에 Rewards 를 붙여 출력한다 - ResultView 실행 결과를 출력한다(실행 결과) - ResultView 실행 결과들을 출력한다(실행 결과) feat(ladder): add InputView inputNamesToRewards, inputResultPlayer feat(ladder): add ResultView renderResults - modify ResultView renderLadderAndRewards, toLadder feat(ladder): modify LadderController run feat(ladder): modify Players constructor test(ladder): modify PlayersTest create_실패_플레이어_목록이_1명_미만 feat(ladder): modify Rewards constructor test(ladder): modify RewardsTest create_실패_rewardNames_갯수와_playersCount_갯수_불일치 feat(ladder): modify Vertical constructor test(ladder): modify VerticalTest create_실패_0보다_작을_수_없다
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
사다리타기 3단계 구현 넘 깔끔하게 잘 했네요. 💯
객체 설계, 클린 코드 구현, 테스트 코드 구현 등 여러 측면에서 잘 구현한 코드네요.
테스트 코드에 초기화하는 값이 많아 피드백 남겼어요.
이번 기회에 한번 고민해 보는 시간이 되면 좋겠습니다.
return Collections.unmodifiableList(lines); | ||
} | ||
|
||
public Players move(Players players) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
@@ -4,7 +4,7 @@ | |||
|
|||
import java.util.Objects; | |||
|
|||
public class Name { | |||
public abstract class Name { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
추상 메서드도 없는데 굳이 추상 클래스로 구현한 이유는?
@@ -1,56 +1,67 @@ | |||
package ladder.domain; | |||
|
|||
import ladder.domain.enums.MoveStatus; | |||
import ladder.exception.PointException; | |||
|
|||
import java.util.Objects; | |||
|
|||
public class Point { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이 같이 작은 단위의 객체 추가하기 쉽지 않았을텐데 👍
private Players players; | ||
private PlayerName playerName1; | ||
private PlayerName playerName2; | ||
private PlayerName playerName3; | ||
private PlayerName playerName4; | ||
|
||
private Point firstPoint; | ||
private Point next1Point; | ||
private Point next2Point; | ||
private Point lastPoint; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
테스트 코드에 전반적으로 인스턴스 변수가 많다.
초기화하는 인스턴스 변수가 많으면 테스트 코드를 읽는 사람 입장에서 테스트 코드의 의도를 파악하기 힘들지 않을까?
약간의 중복은 있더라도 테스트 코드의 setUp에서 초기화하는 값의 수를 최소화해보면 어떨까?
안녕하세요 리뷰어님,
기한을 더 주셨는데도 막바지에 리뷰요청을 드립니다.
감사합니다.