도서

클린코드 : 점진적인 개선

스루나루 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

 

Clean Code(클린 코드) | 로버트 C. 마틴 - 교보문고

Clean Code(클린 코드) | 프로그래머, 소프트웨어 공학도, 프로젝트 관리자, 팀 리더, 시스템 분석가에게 도움이 될 더 나은 코드를 만드는 책『Clean Code(클린 코드)』은 오브젝트 멘토(Object Mentor)의

product.kyobobook.co.kr

 

 

728x90
728x90