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

✨ 14. 점진적인 개선 - Add String #3

Merged
merged 3 commits into from
May 6, 2022

Conversation

viiviii
Copy link
Owner

@viiviii viiviii commented May 6, 2022

No description provided.

@viiviii viiviii merged commit 2bf8e17 into chapter-14 May 6, 2022
@viiviii viiviii deleted the chapter14-v2-add-string branch May 11, 2022 09:46
viiviii added a commit that referenced this pull request May 11, 2022
* ✨ 14. 점진적인 개선 - Only boolean (#2)

* feat: Boolean 인수만 지원하던 초기 버전 / 목록 14-9

* test: Boolean 인수만 지원하던 초기 버전 테스트 추가

* 🚚 Args 클래스 패키지 안으로 이동

* ✨ 14. 점진적인 개선 - Add String (#3)

* feat: String 인수 유형 추가 버전 / 목록 14-10

* test: String 인수 유형 추가 버전 테스트 추가

* fix: schema 오타 수정

* ✨ 14. 점진적인 개선 - Add Integer (&before refactoring ver) (#4)

* feat: int 유형 추가

* test: int 유형 테스트 추가

* test: 기존 테스트를 책에 나온 테스트와 메서드명 및 순서 맞춤

* feat: 유효하지 않은 Schema element를 예외 처리

* refactor: 책과 순서 맞춤 및 메서드명 변경 등 작은 리팩토링

* refactor: UNEXPECTED_ARGUMENT errorCode 추가하여 리팩토링

* feat: ArgsException 추가

* refactor: errorArgument -> errorArgumentId로 변수명 변경

* test: 빠진 테스트spacesInFormat() 추가
viiviii added a commit that referenced this pull request May 12, 2022
* ✨ 14. 점진적인 개선 - Only boolean (#2)

* feat: Boolean 인수만 지원하던 초기 버전 / 목록 14-9

* test: Boolean 인수만 지원하던 초기 버전 테스트 추가

* 🚚 Args 클래스 패키지 안으로 이동

* ✨ 14. 점진적인 개선 - Add String (#3)

* feat: String 인수 유형 추가 버전 / 목록 14-10

* test: String 인수 유형 추가 버전 테스트 추가

* fix: schema 오타 수정

* ✨ 14. 점진적인 개선 - Add Integer (&before refactoring ver) (#4)

* feat: int 유형 추가

* test: int 유형 테스트 추가

* test: 기존 테스트를 책에 나온 테스트와 메서드명 및 순서 맞춤

* feat: 유효하지 않은 Schema element를 예외 처리

* refactor: 책과 순서 맞춤 및 메서드명 변경 등 작은 리팩토링

* refactor: UNEXPECTED_ARGUMENT errorCode 추가하여 리팩토링

* feat: ArgsException 추가

* refactor: errorArgument -> errorArgumentId로 변수명 변경

* test: 빠진 테스트spacesInFormat() 추가

* test: 값이 없는 경우 테스트 변경

* test: 잘못된 타입으로 호출한 경우 테스트 추가
@viiviii viiviii linked an issue May 12, 2022 that may be closed by this pull request
viiviii added a commit that referenced this pull request May 12, 2022
* ✨ 14. 점진적인 개선 - Only boolean (#2)

* feat: Boolean 인수만 지원하던 초기 버전 / 목록 14-9

* test: Boolean 인수만 지원하던 초기 버전 테스트 추가

* 🚚 Args 클래스 패키지 안으로 이동

* ✨ 14. 점진적인 개선 - Add String (#3)

* feat: String 인수 유형 추가 버전 / 목록 14-10

* test: String 인수 유형 추가 버전 테스트 추가

* fix: schema 오타 수정

* ✨ 14. 점진적인 개선 - Add Integer (&before refactoring ver) (#4)

* feat: int 유형 추가

* test: int 유형 테스트 추가

* test: 기존 테스트를 책에 나온 테스트와 메서드명 및 순서 맞춤

* feat: 유효하지 않은 Schema element를 예외 처리

* refactor: 책과 순서 맞춤 및 메서드명 변경 등 작은 리팩토링

* refactor: UNEXPECTED_ARGUMENT errorCode 추가하여 리팩토링

* feat: ArgsException 추가

* refactor: errorArgument -> errorArgumentId로 변수명 변경

* test: 빠진 테스트spacesInFormat() 추가

* test: 값이 없는 경우 테스트 변경

* test: 잘못된 타입으로 호출한 경우 테스트 추가

* ✨ 14. 점진적인 개선 - 리팩토링 version 1 (#7)

* 1. ArgumentMarshaler class 골격 추가 (목록 14-11)

* 2. booleanArgs의 인수 타입을 ArgumentMarshaler로 변경

* 3. getBoolean() NullPointException 발생하는 경우 처리

* 4. StringArgs도 이전 단계처럼 변경

* 5. intArgs도 이전 단계처럼 변경

* 6. ArgumentMarshaler에 있는 boolean 관련 로직을 subclass인 BooleanArgumentMarshaler로 이동

* 7. String 로직도 StringArgumentMarshaler로 이동

* 8. int 로직도 IntergerArgumentMarshaler로 이동

* 9. Args Map 3개를 없애기 위해 marshalers map을 만들어 교체

* 10: marshalers.get() 호출 코드 제거하여 한 곳에서 처리

* 11. 불필요해진 isxxxArgs 메서드를 인라인 코드로 만들고 제거

* 12. setxxx()가 ArgumentMarshaler를 파라미터로 받아 사용하도록

* 13. booleanArgs Map 제거

* 14. stringArgs, intArgs Map도 모두 제거

* 15. 이제 잘 사용하지 않는 parse 메서드들을 인라인으로 변경하여 제거

* ✨ 14. 점진적인 개선 - 리팩토링 version 2 (#9)

* 1. args 배열을 list로 변환 후 setxxxArg()에서 Iterator를 사용하도록 변경

* 2. setArgument()의 if-else 연쇄를 제거하기 위해 오류 로직을 분리

* 3. setBooleanArg()가 Iterator를 파라미터로 받도록 변경

* 4. ArgumentMarshaler set()을 직접 사용하여 setBooleanArg() 제거

* 5. setStringArg(), setIntArg() 제거

* 6. setArgument()의 타입을 일일히 확인하던 코드 제거

* 7. ArgumentMarshaler를 인터페이스로 변경

* ✨ 14. 점진적인 개선 - 리팩토링 version 3 (Add Double) (#10)

* test: double 유형 테스트 추가

* refactor: isxxxSchemaElement() 인라인으로 변경하여 제거

* feat: double 유형 추가

* ✨ 14. 점진적인 개선 - 리팩토링 version 4 (#11)

* 1. ErrorCode ArgsException class로 이동

* 2. ParseException 대신 ArgsException을 던지도록 변경

* 3. 예외 관련 로직 ArgsException으로 복사

* 4. parse()의 빈 catch절 제거하여 ArgsException을 던지게 변경

* 5. 예외에서 값을 꺼내도록 예외 테스트 코드 변경

* 6. UNEXPECTED_ARGUMENT도 ArgsException을 던지도록 변경

* 7. UNEXPECTED_ARGUMENT 예외 메세지 변경

* 8. 예외에서 값을 꺼내도록 예외 테스트 코드 변경

* 9. Args에서 불필요해진 예외 코드 제거

* 10. ArgsException 클래스 추출

* 11. ArgumentMarshaler 관련 클래스 추출

* 12. Args isValid 제거

* 13. INVALID_ARGUMENT_NAME, FORMAT errorCode 추가

* 14. 메서드 순서 변경 등 책이랑 맞춤

* ✨ 14. 점진적인 개선 - 리팩토링 version 5 (Final) (#14)

* 1. 사용하지 않는 usage() 제거

* 2. schema 필드 제거

* 3. argList 필드 제거 및 메서드명 변경

* 4. parsexxx() 리팩토링

* 5. cardinality() 제거

* 6. getxxx() 내부 로직을 타입별 ArgumentMarshaler로 이동

* 7. ArgumentMarshaler get() 제거

* 8. 책과 동일하게 메서드 순서 및 괄호 등 format 맞춤

* 9. ErrorCode.OK errorMessage 변경

* 10. 사용 코드 목록 14-1과 동일하게 변경
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

Successfully merging this pull request may close these issues.

✨ 14. 점진적인 개선
1 participant