점진적인 개선
Args 유틸리티를 구현하고 점진적으로 개선한 사례를 보인다.
- Args는 명령행 인수의 구문 분석을 위한 유틸리티이며 두 개의 매개변수를 받는다.
- 첫째 매개변수는 형식 또는 스키마를 지정하는 문자열이다.
- 둘째 매개변수는 구문 분석을 할 명령행 인수 배열이다.
- 형식 문자열이나 명령행 인수에 문제가 있을 경우 ArgsException이 발생한다.
Args 구현
- 세부 로직을 이름을 붙여 별도의 모듈로 분리했고, 위에서 아래로 읽히도록 호출한 코드 아래에 모듈 코드를 배치했다.
- 스키마를 parse하는 메서드와 인자값을 parse하는 메서드를 명시적으로 나누었고 각각 호출한다.
- 인자를 다루는 로직은 인자의 타입별로 ArgumentMarshaler를 파생한 별개의 클래스를 만들어 처리한다.
=> 새로운 인수 유형을 추가하고자 할 때 기존 코드를 고칠 필요가 없으며 처리가 간편함 -> ArgumentMarshaler에서 새 클래스를 파생해 get함수를 추가하고 parseSchemaElement에 새 case를 추가하면 된다. - 오류가 났을 때 호출하는 ArgsException 또한 다른 클래스로 분리한다.
'독서일지 > 클린 코드' 카테고리의 다른 글
클린 코드 독서일지 - Day 29 (0) | 2023.12.03 |
---|---|
클린 코드 독서일지 - Day 28 (1) | 2023.12.03 |
클린 코드 독서일지 - Day 26 (0) | 2023.11.29 |
클린 코드 독서일지 - Day 25 (1) | 2023.11.28 |
클린 코드 독서일지 - Day 24 (0) | 2023.11.27 |