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

재성님 안녕하세요! lms 마지막 요구사항 변경 부분 진행해봤습니다! #396

Open
wants to merge 12 commits into
base: jhd7130
Choose a base branch
from

Conversation

jhd7130
Copy link

@jhd7130 jhd7130 commented Dec 22, 2023

기존 코드를 짤 때 '수강 신청 도메인' 없이 선발 인원 리스트에 없으면 수강 신청을 못하게 해놔서 수강신청 취소에 대한 기능을 넣지 않았습니다!
리뷰 부탁드립니다 😄

Copy link
Contributor

@javajigi javajigi 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.List;
import java.util.Set;

public class CoverImages {
Copy link
Contributor

Choose a reason for hiding this comment

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

👍

Comment on lines 25 to 30
this.id = id;
this.title = title;
this.coverImages.addAll(coverImages);
this.lectureStatus = LectureStatus.YET;
this.lectureRecruitingStatus = lectureRecruitingStatus;
this.registrationPeriod = registrationPeriod;
Copy link
Contributor

Choose a reason for hiding this comment

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

중복 제거를 위해 부생성자가 주생성자를 호출해 인스턴스 변수 값을 초기화할 것을 추천

public boolean recruiting() {
return LectureStatus.RECRUITING.equals(this.lectureStatus);
public boolean isRecruiting() {
return LectureRecruitingStatus.RECRUITING.equals(this.lectureRecruitingStatus);
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
return LectureRecruitingStatus.RECRUITING.equals(this.lectureRecruitingStatus);
return lectureRecruitingStatus.isRecruiting();

enum 또한 객체라 메시지를 보내 구현 가능함

Comment on lines 4 to 8
RECRUITING("RECRUITING")
, CLOSING("CLOSING")
, PREPARING("PREPARING")
, NO_MATCH("NO_MATCH")
;
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
RECRUITING("RECRUITING")
, CLOSING("CLOSING")
, PREPARING("PREPARING")
, NO_MATCH("NO_MATCH")
;
RECRUITING("RECRUITING"),
CLOSING("CLOSING"),
PREPARING("PREPARING"),
NO_MATCH("NO_MATCH");

위와 같이 스타일로 구현하는 것도 가능함

Comment on lines +88 to 89
Lecture lecture = new PaidLecture(0L, "test", coverImage, LectureRecruitingStatus.PREPARING,
new RegistrationPeriod(startDate, endDate), new Price(BigDecimal.TEN), maxStudent);
Copy link
Contributor

Choose a reason for hiding this comment

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

Lecture 객체와 같이 인스턴스 변수가 많은 객체를 테스트하려면 객체를 생성하는데 어려움이 있다.
중복 코드 또한 많이 발생해 Lecture를 생성할 때 생성자의 인자가 변경되는 경우 변경할 부분이 많아진다.
https://www.arhohuttunen.com/test-data-builders/ 문서 참고해 Lecture와 같이 복잡한 객체의 테스트 데이터를 생성할 때 어떤 방법을 사용할 것인지 선택해 보면 좋겠다.
이번 기회에 내가 선호하는 방법을 적용해 보고 앞으로도 쭈욱 활용하는 방식이면 좋겠다.

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