Theory/Project Management

테스트 주도 개발 - 둘째날

최대한 빨리 테스트에 통과하는 코드를 작성하는 방법 중에, 캐스팅의 남용이 있다. 돌아가고 나면 이러한 코드를 적절한 자리로 옮기거나 다형성을 사용하여 불필요한 캐스팅을 제거한다.


지난 번 포스팅한 글을 다시 불러와서 갱신해보자.

최종 목적은 잘 돌아가는 깔끔한 코드의 작성이다. 이를 위해서 아래 과정을 반복한다.

  • 최대한 빨리 테스트에 통과하는 코드를 작성하는 것이 목적이다. 스텁 구현, 상수를 사용한 하드 코딩, 복사&붙여넣기 신공, 캐스팅을 마구 남용한다.
  • 리펙토링을 통해서 스텁을 채우고, 상수와 중복을 제거하고, 캐스팅을 제거하기 위한 적절한 코드 옮김이나 다형성을 사용한다.


외부 프로토콜은 같으면서 내부 구현이 다른 객체를 정의하는 방법을 소개했다. 저자는 Money와 비슷하게 동작하지만 합을 나타내는 객체를 생성하였다. 사용자 입장에서 합의 객체와 Money를 동일하게 바라보게 되는 효과가 있었다. 마치, Lisp의 S-Expression을 보는 것 같았다.


이 글을 쓰는 싯점에서는 위 단락에서 설명한 방법의 쓰는 이유와 효과를 확실히 설명할 수 없다. 추후 디자인 패턴에 대한 고민과 경험이 이와 같은 부족한 부분을 채워주리라 기대한다.

저작자 표시 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
  1. Favicon of http://unipro.tistory.com unipro M/D Reply

    TDD는 벌거벗은 임금님의 투명옷인가? (1) - TDD는 죽었다. 테스트여 영원하라!
    http://www.moreagile.net/2014/05/IsTDDdead1.html

  2. Favicon of http://unipro.tistory.com unipro M/D Reply

    TDD는 벌거벗은 임금님의 투명옷인가? (2) - TDD의 사망에 대한 검증
    http://www.moreagile.net/2014/07/tdd-2-tdd.html

  3. Favicon of http://unipro.tistory.com unipro M/D Reply

    TDD는 벌거벗은 임금님의 투명옷인가? (3) - TDD는 UT가 아니다.
    http://www.moreagile.net/2014/08/IsTDDdead3.html

알림

이 블로그는 구글에서 제공한 크롬에 최적화 되어있고, 네이버에서 제공한 나눔글꼴이 적용되어 있습니다.

카운터

Today : 99
Yesterday : 112
Total : 158,259

티스토리 툴바