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

[Step4] 수강신청(요구사항 변경) #512

Open
wants to merge 24 commits into
base: danden1
Choose a base branch
from

Conversation

Danden1
Copy link

@Danden1 Danden1 commented Apr 17, 2024

안녕하세요.

이번엔 step3 리뷰 신청하고, step4를 바로 해봤었습니다.
그래서 중간에 conflict이 나서 commit 메시지가 지저분해졌습니다.

docs: 기능 목록 부터 보시면 될 것 같습니다!

벌써 마지막 과제네요. 잘 부탁드립니다.

Copy link
Member

@testrace testrace left a comment

Choose a reason for hiding this comment

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

안녕하세요 용하님 😃
4단계도 잘 구현해 주셨네요
몇 가지 코멘트 남겨두었는데 확인해 주시고 다시 리뷰 요청 부탁드려요

Comment on lines +51 to +53
public final void removeNotApproveUser() {
students.removeIf(student -> !approveStudents.contains(student));
}
Copy link
Member

Choose a reason for hiding this comment

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

수강을 취소하더라도 신청 내역을 존재할 수 있을 것 같은데요
취소된 수강생을 삭제하기 보다 '수강생' 이라는 도메인을 도출해서 승인/선발 이라는 상태를 추가하면 어떨까요?

Comment on lines 15 to +16
private final Set<NsUser> students;
private final Set<NsUser> approveStudents;
Copy link
Member

Choose a reason for hiding this comment

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

선발 과정이후 students, approveStudents 두 필드의 요소는 같을 것으로 예상됩니다.
두 가지를 모두 가지고 있을 필요가 있을까요?

Comment on lines +12 to +16
private final List<SessionImage> sessionImage;
private RecruitStatus recruitStatus;
private SessionProgressStatus sessionProgressStatus;
private final Set<NsUser> students;
private final Set<NsUser> approveStudents;
Copy link
Member

Choose a reason for hiding this comment

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

규칙 7: 3개 이상의 인스턴스 변수를 가진 클래스를 쓰지 않는다.
인스턴스 변수의 수를 줄이기 위해 도전한다.

'수강신청'과 관련된 필드만 모아서 객체를 도출하면 어떨까요?

import java.util.stream.Collectors;

@Repository("sessionRepository")
public class JdbcPaySessionRepository implements PaySessionRepository {
Copy link
Member

Choose a reason for hiding this comment

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

Repository를 분리해주셨네요
두 SessionRepository의 컴포넌트 이름 "sessionRepository"은 일부러 같게 해주신걸까요?

그리고 '수강신청'과 관련된 흐름을 검증할 수 있게 Service 도 추가하면 어떨까요?

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