2009-04-13 4 views
9

The Pragmatic Programmer에 옹호 된 추적기 탄환 접근 방식을 사용하는 클라이언트 서버 응용 프로그램에서 작업 중이며 일부 조언이 필요합니다. 필자는 클라이언트에서 시작하여 서버로 돌아가서 결과를 표시하기 위해 다시 클라이언트로 돌아가는 각 유스 케이스를 통해 작업하고 있습니다.추적기 탄환 개발

내가 진행하는 두 가지 방법으로 볼 수 있습니다

  1. 커버 기본적인 사용 사례를 단지 I가 일하고 있어요 사용 사례를 충족하기에 충분한 코드를 작성, 다시 가서 구체화 모든 오류 처리 나중에.
  2. 다음 사용 사례로 진행하기 전에 가능한 한 모든 예외를 포착하고 인터페이스를 연마하여 각 사용 사례를 만큼 만듭니다.

첫 번째 옵션으로 기울어 지지만 일부 예외를 처리하는 것을 잊어 버리고 앱이 제작 중에 나에게 물어 오는 것을 두려워합니다. 또는 불분명 한 "스텁"오류 메시지가 표시 될 수 있습니다. 그러나 두 번째 옵션을 선택하면 나중에 변경 사항이 추가 될 것입니다.

질문 :
추적기 탄환 개발을 사용할 때 이러한 두 가지 방법 중 어느 것을 취해야하며 그 이유는 무엇입니까?
아니면 다른 방법이 있습니까?

답변

10

내가 알고있는 것처럼, 트레이서 총알 방법은 가능한 한 빨리

로 클라이언트에게 유용한 결과를 제공 가능한 한 빨리

  • 과 같은 두 가지 주요 목표

    1. 주소 근본적인 문제가 당신의 각 유스 케이스를 "연마"하지 않는 동기는 아마도 2를 더 빠르게하는 것입니다. 문제는 당신이 그렇게하여 1을 위험에 빠뜨릴 지 여부와 고객이 실제로 "비경쟁적인"결과에 관심이 있는지 여부입니다. 그렇지 않은 경우에도 클라이언트에서 피드백을 신속하게 얻을 수있는 이점이 있습니다.

      난 당신이 "닦지"부분에 숨어있는 근본적인 문제가 아니라는 것을 확인

      • 한 귀하의 생각은 OK이다라고 말하고 싶지만 -이 확실히 오류가
      • 처리로 일어날 수 나중에 이슈 트래커 나 TODO를 소스 코드에서 "연마"해야하고 유스 케이스가 작동하면 TODO를주의 깊게 살펴야합니다.
      • 사용 사례는 클라이언트가 수행 할 수있는 " 너에게 그들에게 유용한 피드백을주지 않을거야
  • 4

    접근 방법 1을 택하면 기능의 90 %가 매우 빠르게 작동합니다. 그러나 고객은 90 %가 완료되었다고 생각하고 왜 일을 끝내기까지 9 배나 오래 걸릴지 궁금해 할 것입니다.

    접근법 # 1을 사용하면 프로토 타입 이상을 호출하고 그런 식으로 취급합니다. 그것보다 더 중요한 것을 표현하는 것은 나중에 문제가 될 것입니다. 행복한 날 시나리오는 직업의 10 %에 불과합니다. 나머지 90 %는 다른 시나리오가 작동하도록하고 해피 데이 시나리오는 안정적으로 작동합니다. 개발자가 아닌 것을 믿는 것은 매우 어렵습니다.나는 보통 # 1 & # 2 사이에서 뭔가를한다. 나는 유스 케이스와 모든 시나리오를 확인하는 일을 상당히 잘 해내려고한다. 그런 다음 가장 구조적으로 영향을 미치는 시나리오를 확인하고 그에 대한 작업을 시도합니다. 내가 추적기 총알 제안

    0

    당신이 긍정적 인 + 부정적인 테스트 케이스

    1. 긍정적 인 테스트 케이스의 조합 (다음은 사용자 스토리/기능 문서/기능 사양에 언급됩니다)
    2. 을 사용할 수 있습니다
    3. 부정적인 테스트 케이스 의 (a BAU 시나리오 기대할 수있다 일반적인 부정적 시나리오) (희귀 비즈니스 시나리오를 신중하게 고려 후 생략 할 수 있습니다.)

    이러한 테스트 케이스는 specflow를 사용하여 테스트를 자동화하여 실행되었습니다.

    테스트 케이스에 일반적인 부정적인 시나리오를 포함하면 기본 코드를 사용하여 연속적인 개발을 수행 할 수 있다는 충분한 자신감을 갖게됩니다.

    여기에서 경험을 공유하십시오. http://softwarecookie.wordpress.com/2013/12/26/tracer-bullet/

    관련 문제