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

Hakase Refactoring Roadmap #1

Closed
Sayakie opened this issue Oct 18, 2021 · 1 comment
Closed

Hakase Refactoring Roadmap #1

Sayakie opened this issue Oct 18, 2021 · 1 comment
Assignees

Comments

@Sayakie
Copy link
Owner

Sayakie commented Oct 18, 2021

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]: Normative: Fix extending null 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 Sayakie self-assigned this Oct 18, 2021
@Sayakie Sayakie pinned this issue Oct 18, 2021
@Sayakie
Copy link
Owner Author

Sayakie commented Dec 22, 2021

충분히 리팩토링이 이루어져 이슈를 닫습니다.

@Sayakie Sayakie closed this as completed Dec 22, 2021
@Sayakie Sayakie unpinned this issue Dec 22, 2021
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

No branches or pull requests

1 participant