-
Notifications
You must be signed in to change notification settings - Fork 0
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
implement & apply data fetching hook #49
Conversation
a61f510
to
e5cb605
Compare
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.
So far so good!
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.
member hook 에러처리까지 깔끔하게 구현하셨군요!
성공, 실패 두가지 케이스로 테스트 작성도 깔끔해서 코드읽기가 편했네요 👍
달레님 코멘트 있으니 approve는 달레님께 넘기도록 하겠습니다 :)
@Sunjae95 승인은 양보하지 않으셔도 됩니다. 병합을 위한 최소 승인 개수는 하나이지만 둘 이상이 이상적인 것 같습니다 :) |
6cfc282
to
e3f9c86
Compare
e3f9c86
to
e0479e7
Compare
e0479e7
to
bf4e7f9
Compare
src/hooks/useMembers.ts
Outdated
function mapToMembers(members: MemberInfo[]): Member[] { | ||
return members.map((member) => ({ | ||
id: member.id, | ||
name: member.name, | ||
cohort: member.cohort, | ||
profileUrl: member.profileUrl, | ||
progress: member.progress, | ||
grade: member.grade, | ||
solvedProblems: member.submissions.map( | ||
(submission) => submission.problemTitle, | ||
), | ||
})); | ||
} |
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.
api
모듈이 우리가 수정할 수 없는 써드 파티 모듈도 아니고 왜 이렇게 번거로운 데이터 맵핑을 해야하는지 모르겠습니다. MemberInfo
타입과 Member
타입을 구분해서 얻고자 하는 이득이 뭐죠? 과연 이렇게 소규모 프로젝트에서 동일한 엔티티를 가리키기 위한 타입을 2개를 유지할 필요가 있을까요? api
모듈의 MemberInfo
타입을 수정해서 (Info
를 땠으면 좋겠습니다) hooks
모듈에서 그대로 사용하는 것이 더 이상적일 것 같은데 어떻게 생각하시는지요?
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.
피드백 감사합니다!
현재 api 모듈(fetchLeaderborad)이 반환하는 값은 UI에서 필요하지 않는 값도 담겨 있는데요.
저의 의도는 api 모듈을 수정하지 않고도 독립적으로 hook이 UI에서 필요한 정보만 반환하게 만들고 싶었습니다. 말씀하신 대로 api 모듈을 외부 라이브러리처럼 바라봤어요.
api 모듈을 건드리지 않고 개발하고 싶은 마음이 컸던 것 같네요. 내심 api 모듈의 주인이 제가 아니라고 생각해 수정하기 꺼렸던 것 같습니다. 어쩌면 이 또한 소통 부재!
달레님 말마따나 상대적으로 작은 프로젝트에서 불필요한 행동일 수도 있겠습니다. api 모듈의 타입을 수정하고 그 타입을 hook에서 그대로 사용할 수 있도록 해볼게요!
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.
이상적이긴 한데 코드 변경에 엄청난 부담이 가는 군요.. 일단 진행 중입니다. 오늘까지 변경사항 올려보겠습니다🙇♂️
bf4e7f9
to
962a791
Compare
- Ensure that only values that meet requirements are returned
962a791
to
c8141ed
Compare
|
export type Cohort = number; | ||
|
||
export type Member = { | ||
export type MemberIdentity = { |
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.
좋은 이름 추천 받습니다...
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.
MemberInfo 혹은 MemberProfile.추천합니다..!
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.
�Github Member Response에 기수를 추가하는 로직을 거치기에 필요한 타입이군요.
CoreMember는 어떨까요?
그러면 Member타입을 확장을 해줄수 있어서 클라이언트에서 상속받아 사용하기 좋아보인다고 생각해요.
bad8cc1
to
b839cfb
Compare
b839cfb
to
48d414a
Compare
export type Cohort = number; | ||
|
||
export type Member = { | ||
export type MemberIdentity = { |
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.
MemberInfo 혹은 MemberProfile.추천합니다..!
전체적으로 리팩토링을 하시면서 불필요한 의존성과 타입 및 변수 사용을 줄이고 논리 구조를 단순화하려는 노력이 돋보인 것 같습니다! 기존 코드와 비교해가면서 검토했는데 확실히 가독성이 증가했고 달레님이 주신 피드백처럼 복잡한 mapping도 안하게 돼서 좋은 것 같습니다! |
export type Cohort = number; | ||
|
||
export type Member = { | ||
export type MemberIdentity = { |
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.
�Github Member Response에 기수를 추가하는 로직을 거치기에 필요한 타입이군요.
CoreMember는 어떨까요?
그러면 Member타입을 확장을 해줄수 있어서 클라이언트에서 상속받아 사용하기 좋아보인다고 생각해요.
@DaleStudy/leaderboard PR이 계류된지 오래되기도 했고 다른 분들 개발에 병목이 되기도 하는 것 같아서, 심각한 이슈가 없는 한 오늘 중으로 병합하겠습니다. |
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.
수고하셨습니다!
체크리스트
참고해주셨으면 하는 사항