목차
1. 말하면서 배워요 스터디 6회차 진행
2. 미해님 노션 프로젝트 페어 리뷰
2-0. 리뷰 포인트
지금은 문서 리스트를 누를 때마다 페이지가 깜빡거리면서 표시됩니다. Promise.All 등을 사용해서 최대한 줄어보고, 일부 리팩토링을 했으나 아직 깜빡임이 꽤 많은 것 같습니다. 어떤 식으로 개선하면 좋을지 또는 어떤 식으로 개선하셨는지 아이디어 만이라도 알고 싶습니다..!
document 기본 리스트를 원하는 값을 가진 리스트로 변경하는 함수
getModifiedDocumentList
를 구현할 때 재귀적으로 내부 documents를 들어가도록 구현했는데, 이런 방식으로 구현하는 것이 원래 맞는 방식인지 알고 싶습니다. 개발 시 재귀를 써도 성능면에서 문제가 없을까요..?구현하면서 제가 구현한 방식이 맞는 방식인지 수많은 고민이 많이 들었습니다. 더 좋은 방식으로 구현할 수 있을 것 같은 함수/기능 이 있다면 알려주세요!
전체적으로 코드 길이가 긴데 가독성에 문제가 없었는지, 문제가 있었다면 어떤 식으로 개선하면 좋을지 알고 싶습니다!
함수명에 신경을 써보았는데, 함수명이 적절했는지 또는 더 나은 함수명이 있는지 알고 싶습니다.
new를 호출했는지 여부를 판단하는 예외처리만 해 두었는데, 실제 개발시에는 각 state마다 원하는 속성이 있는지 validation도 진행해야하는지 궁금합니다!
2-1. 좋은 점
문서화 능력
- 기능 구현 설명이 너무 잘 되어 있어서, 코드 보기전에 어느정도 다 그려진 상태가 됨. 정말 중요하고 차별있는 능력,강점이라고 생각
2-2. 개선 점
코드가 긴 것 자체가 문제가 아니라, 해당 컴포넌트(or파일)에서 핵심 부분과 세부 부분을 찾기 어렵다는 것이 문제라고 생각합니다.
현재 코드를 작성하지 않은 사람이 보기에는 핵심/세부를 분간하기 어려워 읽는 것 자체에 많은 시간이 소요된다고 생각합니다.
저도 처음 작업 시 이러한 피드백을 많이 받았었는데, 시도할 수 있는 가장 첫 번째 방법은 세부 구현을 담당하는 util성 함수를 분리해주고, 역할이 분명한 컴포넌트들로 쪼개주는 것이라고 생각합니다.
컴포넌트의 마운트 시점이 불분명하여, 처리가 조금 까다로워지고 있다는 생각이 듭니다.
- if(documentListsComponent) ...
- render(현재 컴포넌트 렌더관련) mount(하위 컴포넌트 렌더 관련) 처리를 명시적으로 구분해주면, 가독성과 코드 개선에 도움이 될 것이라고 생각합니다.
- 황준일님블로그 - 관련 상당히 많은 도움을 받았습니다. 다만 처음에 이해하는데 오랜 시간이 걸렸습니다.ㅠ.ㅠ
2-3 작성
미해님 코드 잘 보았습니다 : )
우선 PR에 올려주신 문서가 너무 잘 정리되어있어서, 코드를 보기 전에 이미 흐름이 머리속에 그려져 리뷰를 빠르게 진행할 수 있었습니다.
문서화능력은 정말 가지기 어려운 부분으로 미해님만의 강점이라고 생각합니다.
세부적인 로직은 제외하고, 크게 2가지 부분에 대해 말씀드리고 싶습니다.
첫번째는 컴포넌트(파일) 내부에서 "핵심부분과 세부부분의 구분"이 되어 있지 않다고 느꼈습니다.
코드가 긴 것 자체가 문제가 아니라, 코드를 작성하지 않는 사람이 볼 때에 핵심부분을 파악하기 힘들어, 모든 코드를 보아야하는 어려움이 있었습니다.
저도 처음 작업 시 이러한 피드백을 많이 받았었는데, 시도할 수 있는 가장 첫 번째 방법은 세부 구현을 담당하는 util성 함수를 분리해주고, 역할이 분명한 컴포넌트들로 쪼개주려고 한다면 눈에 띄는 가독성 증가를 맛보실 수 있습니다 : )
두번째는