-
Notifications
You must be signed in to change notification settings - Fork 744
2단계 #2341
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
2단계 #2341
Conversation
#tag @neojjc2 |
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.
안녕하세요 오규님 🙇
2단계 사다리 생성 잘 구현해주셨습니다.
최소한의 코드로 요구사항을 만족시켜주셨네요 👍
조금 개선될 부분이 보여서 소소한 의견 드렸는데요,
보시고 검토 해주시면 감사하겠습니다.
그리고 테스트코드가 하나도 없네요
커밋이 누락된 것 같기도 한데 이 부분도 한번 확인해주시면
좋겠습니다 🙇
그럼 재 리뷰 요청 기다리고 있겠습니다 🙏
src/main/java/LadderGame.java
Outdated
public static void main(String[] args) { | ||
|
||
InputView inputView = new InputView(); | ||
OutputView outputView = new OutputView(); |
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.
이 코드는 사용하지 않는 것 같습니다 😄
InputView
, OutputView
모두 정적 method
를 제공하고 있으므로
초기화 하는 코드는 제거하셔도 될 것 같네요 🙏
if (input.length() > 5) { | ||
throw new IllegalArgumentException("자동차 이름은 5자를 초과할 수 없습니다: " + input); | ||
} | ||
} |
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.
비즈니스 요구사항은 도메인에서 가져가는게 맞는 것 같습니다.
콘솔 입력을 사용하지 않을 경우 누락될 수 있습니다 🙏
// 검증이 누락 될 수 있습니다.
List<String> Names = List.of("ABCDEFGHIJKLMN", "1", "2");
System.out.println(); | ||
} | ||
|
||
} |
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.
테스트 코드가 없는 것 같습니다 🙇
프로그래밍 요구사항
모든 기능을 TDD로 구현해 단위 테스트가 존재해야 한다. 단, UI(System.out, System.in) 로직은 제외
src/main/java/view/InputView.java
Outdated
throw new IllegalArgumentException("입력 값이 null 이거나 빈 문자열 입니다."); | ||
} | ||
|
||
if (input.length() > 5) { |
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.
매직넘버이므로 상수로 추출 되어야 할 것 같습니다. 그리고 자동차이름은 아닙니다 😅
} | ||
builder.append("|"); | ||
System.out.println(builder); | ||
} |
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.
잘 아시겠지만 이 부분은 UI를 담당하는 로직입니다 😄
비즈니스 요구사항이 아닌, 출력 포맷에 따라 계속 수정이 발생할 수 있는 부분이므로
OutputView
로 이동이 필요할 것 같습니다 🙇
프로그래밍 요구사항
핵심 로직을 구현하는 코드와 UI를 담당하는 로직을 구분한다.
|
||
for (int i = 0; i < countOfPoints; i++) { | ||
boolean previous = (i > 0) && points.get(i - 1); | ||
points.add(!previous && random.nextBoolean()); |
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.
요구사항 구현 최소한의 코드로 잘 구현해주셨네요 💯
|
||
public void printline() { | ||
lines.forEach(Line::print); | ||
} |
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.
여기도 OutputView
로 이동이 필요할 것 같습니다 🙇
src/main/java/LadderGame.java
Outdated
InputView inputView = new InputView(); | ||
OutputView outputView = new OutputView(); | ||
|
||
List<String> Names = InputView.getInputNames(); |
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: 모든 원시값과 문자열을 포장한다.
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.
안녕하세요 오규님 🙇
개선 깔끔하게 잘 진행해주셨습니다 😄
다음단계로 가시죠 🏃
이만 merge 하겠습니다 🙇
public String getName() { | ||
return 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.
원시 객체 포장의 정석을 보는 것 같네요 👍
if (name.length() > MAX_LENGTH) { | ||
throw new IllegalArgumentException("이름은 5자를 초과할 수 없습니다: " + 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.
💯 💯 💯 💯 💯
void 라인이_사람수_기준으로_생성되는지_확인() { | ||
int countOfPoints = 3; | ||
Line line = new Line(countOfPoints); | ||
assertNotNull(line); |
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.
아주 소소한 의견이긴 합니다만, not null
을 검증하는게 아니라 사람수 기준으로 생성되는지 확인이므로
Line
당 point
가 3개씩인지 확인이 되어야 할 것 같습니다 🙇
No description provided.