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

[#5] 공고 마감 기능 구현 #11

Merged
merged 13 commits into from
Nov 3, 2024
Merged

Conversation

Younggun-Kim
Copy link
Collaborator

변경 사항

  • 공고 마감 기능 구현
  • 공고 상세 화면에 더보기 팝업 추가
  • DescriptionBottomSheet 추가
  • DetailBottomSheetFactory를 통해 공고 상세 화면에 필요한 DescriptionBottomSheet 를 Factory 패턴으로 생성

질문 사항

  • DetailBottomSheetFactory를 적용한 이유는 DetailBottomSheetType 의 각 타입에 따라 맞는 Bottom Sheet를 노출하기 위함입니다.
  • 최초 코드에서는 switch-case 문으로 작성하였는데 이럴 경우 OCP 원칙을 준수하지 않는다는 말씀이 기억나서, Factory 패턴을 적용해 봤습니다.
  • 적용한 코드가 OCP 원칙을 잘 준수하는지 궁금합니다.

Screenshot

Screen_recording_20241023_022043.webm

close #5

1. CompanyDto 추가해서 JobPostingDetailDto에서 회사 정보 분리
2. Mock 데이터 재활용할 수 있게 factory 생성자로 생성하도록 변경
3. dto.mock.data로 Mock 데이터 분리, dto에서는 생성하는 것만 신경쓰도록 함
4. 공고 마감 API 추가
1. closeJobPosting() 추가
1. closeJobPosting() 추가
2. JobPostingUseCaseImpl 파일 분리
1. OnClosedJobPosting() 이벤트 추가
2. closed 상태 추가
1. MoreOption 위젯 추가
2. DetailMoreOptionType으로 상세 화면에서 사용할 타입 추가
1. 공고 마감 더보기 팝업 추가
2. 공고 마감 Bloc 이벤트 연결
3. 공고 마감시 뒤로가기 추가
1. OCP 원칙 준수를 위해 switch-case 문 방식에서 Factory를 이용한 방식으로 변경
@Younggun-Kim Younggun-Kim self-assigned this Oct 22, 2024
@Younggun-Kim Younggun-Kim linked an issue Oct 22, 2024 that may be closed by this pull request
5 tasks
Copy link

@abdul0986 abdul0986 left a comment

Choose a reason for hiding this comment

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

피드백 확인 부탁드립니다.

Copy link
Collaborator Author

@Younggun-Kim Younggun-Kim left a comment

Choose a reason for hiding this comment

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

코멘트 달아주신 부분 수정 완료했습니다!

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

jobPosting 접미사를 제거하고, jobPostingApi.search() 처럼 가독성있게 변경했습니다.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

기존의 usecase 부분에 있던 Entity의 유효성 검사 코드를 Entity로 옮기고
서브 파일로 구성했습니다.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

그리고 if 조건문에서 조건 A & 조건 B 처럼 가독성이 떨어지는 부분은 getter 변수로 만들어 변경했습니다!

Comment on lines +1 to +28
/// 유효성 검사 결과
class ValidationResult {
/// 유효성 여부
final bool isValid;

/// 유효성 검사 실패 메시지
final String failMessage;

ValidationResult({
required this.isValid,
this.failMessage = '',
});

/// 검사 성공
factory ValidationResult.success() {
return ValidationResult(isValid: true);
}

/// 검사 실패
factory ValidationResult.fail({
required String message,
}) {
return ValidationResult(
isValid: false,
failMessage: message,
);
}
}
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

유효성 검사 시, null을 반환하는 대신 ValidationResult로 관리하도록 변경해 봤습니다!

Copy link

@abdul0986 abdul0986 left a comment

Choose a reason for hiding this comment

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

LGTM

@Younggun-Kim Younggun-Kim merged commit 4a55714 into main Nov 3, 2024
1 check passed
@Younggun-Kim Younggun-Kim deleted the feature/5-job-posting-close branch November 20, 2024 06:25
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