## 목차 ##
## Intro ##
이 장은 명령행 인수 구문분석기(main함수의 args로 넘어오는 문자열을 분석하는 프로그램) 코드를 점진적으로 개선시키는 사례연구다.
이번 사례에 나오는 코드는 출발은 좋았으나 확장성이 부족했다. 이 코드를 개선하고 정리하는 과정을 따라가본다.
일단 아래는 명령행 인수 구문분석기를 사용하는 예제 코드다.
아래는 명령행 인수를 분석하는 유틸리티인 Args클래스의 코드이다.
public static void main(String[] args) {
try {
Args arg = new Args("l,p#,d*", args);
boolean logging = arg.getBoolean('l');
int port = arg.getInt('p');
String directory = arg.getString('d');
executeApplication(logging, port, directory);
} catch (ArgsException e) {
System.out.print("Argument error: %s\n", e.errorMessage());
}
}
main()
함수의 인수로 넘어온 args와 형식 혹은 스키마를 지정하는 "l,p#,d*
를 가지고 Args 객체를 생성한다.
첫째 인수인 형식 문자열이나 둘째 인수인 명령행에 문제가 있으면 ArgsException이 발생한다.
일단 객체 생성이 성공하면 구문분석이 성공한 것이므로 getBoolean()
, getString()
과 같은 메소드를 통해 값을 가져올 수 있다.
## Args 구현 ##
## Args 1차 초안 ##
## String 인수 ##
## 최종 코드 ##
## 결론 ##
'소프트웨어 공학 > 클린코드' 카테고리의 다른 글
(클린코드) Chapter13 - 동시성 (0) | 2020.05.16 |
---|---|
(클린코드) Chapter12 - 창발성 (0) | 2020.05.16 |
(클린코드) Chapter11 - 시스템 (0) | 2020.05.16 |
(클린코드) Chapter10 - 클래스 (0) | 2020.05.16 |
(클린코드) Chapter09 - 단위 테스트 (0) | 2020.05.16 |