Cleancode ch14-successive refinement

390 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
390
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Cleancode ch14-successive refinement

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

    ×