2. Args 명령행 파서
public static void main(String[] args){
try{
• Args 두개의 인자. 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.printf("Argument error: %sn", e.errorMessage());
}
}
• 명령행 인수 배열.
• getXXX().
• ArgsException 발생.
3.
4. Programming is a craft
more than it is a science
• 작문과 유사. • 초보 프로그래머는
• 초안을 작성하고, - 돌아가는 프로그램
을 만들고,
• 2차 초안을 작성하고,
- 동작하면 다음 업무
• 계속 다듬어서, 로 진행.
• 최종안을 작성하라. - 이런 행위는 잘못되
었다.
5. 14.2 Args: 1차 초안
• Boolean 인수만 지원하는 버전을 작성. [목록 14-9]
- 비교적 간결, 단순, 이해하기 쉽다.
• String, Integer 인수 유형 추가.[목록 14-10]
- 버그와 결함이 보이는 지저분한 코드.
6. 작업 중지!!!
• 인수 유형이 2개 추가되자 복잡해짐.
2개의 인수를 더 추가하는 것은 분명히 잘못된
• 여기에
코드를 작성하게 됨.
• 지금이 코드를 재작성할 시점이다.
7. 점진적 개선
• TDD 기법을 사용하여 점진적으로 개발.
• 인수(Acceptance)
테스트 및 단위테스트를 병행하여,
코드가 정상적으로 동작되고 있음을 확인.
• 코드 수정하면서 테스트를 모두 통과시켜야 한다.
• 리팩토링은 루빅 큐브 맞추기와 유사.
- 큰 목표는 자잘한 단계 여러번 거쳐 달성됨.
8. 결론
• 단순히
돌아가는 코드에 만족하는 프로그래머는
전문가 정신이 부족하다.
• 나쁜 코드가 더 오래 동안/ 더 심각하게 프로젝트를 지
연.
• 코드는
언제나 최대한 깔끔하고
단순하게 정리하자.
• 지금!