본문 바로가기

테스트주도개발4

볼링게임 TDD [3] 볼링게임 TDD[3] 을 끝으로 볼링게임 TDD를 마무리하려고 한다. 우선 남은 할 일 목록을 정리해보자. [] 볼링 점수 계산기를 만든다. (스트라이크, 스페어를 고려한다.) [] 투구(pitch) 후 쓰러진 pin은 BowlingScore에 전달되어야 한다. [] 볼링을 상속받는 객체로는 볼링 플레이어와 볼링 점수 계산기가 존재한다. (플레이어와 점수 계산기는 1 : 1 관계를 갖는다.) [] 점수 계산기를 통해 계산된 점수는 점수 표출기를 통해 점수를 볼 수 있어야 한다. 잘 못된 할 일 목록과 불 필요한 목록은 정리하고 볼링게임을 완성하기 위한 할 일 만 남겨두도록 하겠다. [] 스트라이크, 스페어등 볼링 룰을 적용한다. [] 점수 계산기를 통해 최종 점수를 계산해야 한다. [] 최종 점수는 점수.. 2020. 10. 3.
볼링게임 TDD [2] [v] 실패하는 테스트를 만들고 스텁으로 우선 빠르게 테스트를 작성할 것 이다. [v] 볼링 객체를 만든다. [v] 볼링 객체는 10개의 핀을 가지고 있고 21번의 투구 기회가 있다. [v] 볼링의 프레임은 총 10 프레임이고 한 프레임이 끝나면 핀의 갯수는 10개로 초기화된다. [v] 투구 2번 끝나면 한 프레임도 끝낸다. 단 마지막 프레임은 3번의 투구가 필요하다. [v] 볼링의 프레임과 핀은 점수 계산기와 연관이 있는데 이것은 나중에 생각해본다. [] 볼링을 상속받는 객체로는 볼링 플레이어와 볼링 점수 계산기가 존재한다. (플레이어와 점수 계산기는 1 : 1 관계를 갖는다.) [] 점수 계산기를 통해 계산된 점수는 점수 표출기를 통해 점수를 볼 수 있어야 한다. [] 투구(pitch)는 Bowlin.. 2020. 10. 2.
[OKKYCON: 2018] 자바지기(박재성)- TDD 의식적으로 연습하기 의식적인 연습이란? 많은 연습은 역량을 보장하지 않는다. 그렇기에 온전히 집중하고 '의식적' 으로 행동할 것을 요구한다. 컴포트 존을 벗아난 지점에서 진행, 자신의 현재 능력을 살짝 넘어가는 작업을 지속적으로 시도한다. 명확하고 구체적인 목표를 가지고 진행한다. 피드백과 피드백에 따른 행동 변경을 수반한다. (코드리뷰, 짝 프로그래밍) 기존에 습득한 기술의 특정 부분을 집중적으로 개선함으로써 발전시키고, 수정하는 과정을 거친다. 자바 코드 컨벤션을 지키면서 프로그래밍한다. https://google.github.io/styleguide/javaguide.html indent(인덴트, 들여쓰기) depth를 3이 넘지 않도록 구현한다. while 문 안에 if문이 있으면 들여쓰기는 2이다. indent d.. 2020. 9. 20.
테스트 주도 개발 [1 - 9장] TDD의 목적은 작동하는 깔끔한 코드를 얻는 것이다. 작동하는 깔끔한 코드를 얻는 것은 때로는 최고의 프로그래머들 조차 도달하기 힘든 목표고, 나같은 대부분의 평벙함 프로그래머들에게는 거의 불가능한 일이다. 그렇다면 나누어서 정복하자. 일단 '작동하는 깔끔한 코드'를 얻어야 한다는 전체 문제 중에서 '작동하는' 에 해당하는 부분을 먼저 해결한다. 그러고 나서 '깔끔한 코드' 부분을 해결하는 것이다. 요구사항 통화가 다른 두 금액을 더해서 주어진 환율에 맞게 변한 금액을 결과로 얻을 수 있어야 한다. 어떤 금액을 어떤 수에 곱한 금액을 결과로 얻을 수 있어야 한다. 할 일 목록 $5 + 10CHF = $10(환율이 2:1일 경우) $5 x 2 = $10 Dollar 부작용(side effect?) ... .. 2020. 9. 5.