도서
클린코드 : 점진적인 개선
스루나루
2024. 7. 27. 23:00
728x90
728x90
점진적인 개선
어떻게 짰느냐고?
- 프로그래밍은 과학보다 공예
- 깨끗한 코드는 바로 나오지 않는다. 초안부터 작성후 점진적으로 고쳐야 한다
점진적으로 개선하다
- 점진적인 개선을 위해 필요한 것은 TDD
- 점진적으로 수정해도 해당 코드가 유효한지 빠르게 파악 가능
결론
- 그저 돌아가는 코드로 만족하지 마라
- 서두르지 말고 시간을 들여 설계 그리고 개선해 코드를 작성하자
코드
해당 장에서는 대부분 코드의 수정 사항을 보여주면서 어떻게 개선했는지 보여준다.
처음에는 boolean 변수만 수정해서 진행했으나 그 외 String, Integer등 인수의 숫자를 늘리면 늘릴수록 코드는 길어지고 복잡해지며 답도 없어진다. 그래서 인수 유형을 HashMap으로 선언한 다음 스키마 요소를 분석해서 진짜 유형으로 반환 후 get메서드로 반환시켜주는 걸 완성된 코드에서 확인 가능
public Args(String schema, String[] args) throws ArgsException {
marshalers = new HashMap<Character, ArgumentMarshaler>();
argsFound = new HashSet<Character>();
private Map<Character, Boolean> booleanArgs = new HashMap<Character, Boolean>();
-> private Map<Character, ArgumentMarshaler> booleanArgs = new HashMap<Character, ArgumentMarshaler>();
private void parseBooleanSchemaElement(char elementId) {
booleanArgs.put(elementId, false);
-> booleanArgs.put(elementId,new BooleanArgumentMarshaler());
}
private void setBooleanArg(char argChar, boolean value) {
booleanArgs.put(argChar, value);
-> booleanArgs.get(argChar).setBoolean(value);
}
public boolean getBoolean(char arg) {
return falseIfNull(booleanArgs.get(arg));
-> Args.ArguemntMarshaler am = booleanArgs.get(arg);
return am != null && am.getBoolean();
}
String 인수 추가할 때도 이하 동일
참고
https://product.kyobobook.co.kr/detail/S000001032980
728x90
728x90