Hakase Refactoring Roadmap
Closed this issue · 1 comments
Sayakie commented
Roadmap Preview
디스코드 Basixlounge 서버에서 받은 코드 리뷰를 토대로 리팩토링 로드맵을 작성했습니다.
아래의 코드를 전부 리팩토링하는 것이 이 로드맵의 최종 목표입니다.
-
누락된
return
추가하기
[File]: PokemonUtil.ts#L151 -
PokemonUtil.ts
에서 반복되는 importing 작업을 초기화 페이즈만을 담당하는 다른 파일로 옮기기
[Files]: PokemonUtil.ts#L12-#L58 -
인스턴스화를 방지하기 위해 클래스에 null을 확장하는 것을 걷어내기
[Benefits]: UB에 준하는 동작을 미리 걷어냄으로써 미래에 야기될 수 있는 문제를 방지합니다.
[Drawbacks]: 타입스크립트를 컴파일한 뒤 런타임에서 클래스를 인스턴스화 할 수 있습니다.
[Files]: ArrayUtil.ts#L5 / Util.ts#L871 / PokemonUtil.ts#L101
[Reference]: tc39/ecma262#1321 -
조사(은는이가)를 구하는 함수를 문자열 헬퍼 함수를 제공하는
StringUtil.ts
파일에 따로 분리시키기
[File]: PokemonUtil.ts#L73-#L99 -
타입 단언한 코드들을 타입 추론으로 옮기기
[Benefits]: 타입을 명시하는 의미가 더 명확해집니다.
=== Example)
- const dropItemLengthOrder = {} as { [P in Extract<keyof PokeDrop, `${string}data`>]: number }
+ const dropItemLengthOrder: { [P in Extract<keyof PokeDrop, `${string}data`>]: number } = {}
Sayakie commented
충분히 리팩토링이 이루어져 이슈를 닫습니다.