feat : csm pagination view#937
Conversation
|
LGTM!! 고생하셨습니다ㅎㅎ |
There was a problem hiding this comment.
불필요한 주석, 콘솔 제거랑 코드 정리가 잘 되어있어서 가독성이 훨씬 좋아졌어요!
| }); | ||
| ): Promise<ClusterNodesResult> => { | ||
| // Cache engine | ||
| if (!engine || engine.getBaseBranchName() !== baseBranchName) { |
ytaek
left a comment
There was a problem hiding this comment.
와우 멋집니다!!
engine, view, vscode 모두를 잘 이해할 수 있어야 작업이 가능한 PR인데
이제 전체 구조를 완전 꿰뚫고 계시겠군요 😸
추가로, 성능 측정도 한번 해보면 좋겠습니다.
as-is, to-be 를 비교해서
전체적으로는 얼마나 빨라졌는지, csm 돌리는 부분은 얼마나 빨라졌는지를 확인할 수 있으면 좋겠습니당!!
| } else { | ||
| // Non-paginated CSM | ||
| const csmDict = buildCSMDict(commitDict, stemDict, this.baseBranchName, pullRequests); | ||
| const csmDict = buildCSMDict(this.commitDict, this.stemDict, this.baseBranchName, this.pullRequests); |
There was a problem hiding this comment.
pagedCSM 이 보편화되서 잘 정착(??)되면
이제 이 method들은 삭제해도 될 것 같군요 : )
@chae-dahee 님, 이 부분 이슈로 남겨주시면 감사하겠습니다!
아마 단기간에 없애지는 않을것 같지만, 좀 지켜보고 릴리즈 몇 번 후 안정화되면
역사의 뒤안길로 보내버리던지 해야겠네요 😈
| | "updateTheme"; No newline at end of file | ||
| | "updateTheme"; | ||
|
|
||
| export type RefreshDataRequestPayload = { |
| command, | ||
| payload: analyzedData, | ||
| }; | ||
| if (command === "refresh") { |
There was a problem hiding this comment.
command가 늘어났네요!
switch 로 바꿔서 가독성을 올려도 좋고,
command pattern? 같은 패턴들을 써서 따로 분리해도 좋을 것 같습니다!!
There was a problem hiding this comment.
넵! 리팩토링 단계에서 작업해보겠습니다
지금까지 작업한 코드의 성능 분석을 이슈 문서로 기록해보겠습니다! |
Related issue
#912
Result
Work list
✅ 핵심 로직 변경 파일
packages/analysis-engine/src/index.ts
packages/view/src/App.tsx
packages/view/src/store/data.ts
packages/view/src/hooks/useAnalayzedData.ts
packages/vscode/src/extension.ts
packages/vscode/src/webview-loader.ts
Discussion
시나리오
0 : 첫 로드
1 : load more 버튼
2 : branch select 변경 → 새로운 브랜치리스트 이동은 데이터를 재생성하지만, 방문했던 브랜치를 다시 방문하면(develop) 캐싱 사용
3 : refresh 버튼 → 언제든 캐싱을 사용하지 않고, 데이터 재생성