현재 프로젝트 (C ++ 게임)에서 개발 중 테스트 주도 개발을 100 % 사용하기로 결정했습니다.
코드 품질면에서 이것은 훌륭했습니다. 내 코드는 그렇게 잘 설계되거나 버그가 없었습니다. 나는 프로젝트가 시작될 때 1 년 전에 작성한 코드를 볼 때 울지 않으며, 더 쉽게 테스트 할 수있을뿐만 아니라 구현하고 사용하기가 더 쉬운 것을 구조화하는 방법에 대해 훨씬 더 잘 이해했습니다. .
하지만 ... 프로젝트를 시작한 지 1 년이 지났습니다. 물론, 나는 여가 시간에만 일할 수 있지만 TDD는 내가 익숙한 것에 비해 여전히 나를 늦추고 있습니다. 개발 속도가 느려질수록 시간이 지남에 따라 더 나아진다는 것을 읽었으며, 테스트를 훨씬 더 쉽게 생각했지만 지금은 1 년 동안 해왔으며 여전히 달팽이 속도로 작업하고 있습니다.
작업이 필요한 다음 단계에 대해 생각할 때마다 매번 멈추고 실제 코드를 작성할 수 있도록 테스트를 작성하는 방법에 대해 생각해야합니다. 때로는 작성하려는 코드를 정확히 알고 있지만 테스트로 완전히 커버하기에 충분히 세분화하는 방법을 모르면 몇 시간 동안 고착 될 것입니다. 다른 경우에는 12 가지 테스트를 빠르게 생각하고 작성하는 데 몇 분이 걸리는 작은 실제 코드를 다루기 위해 테스트 작성에 1 시간을 소비합니다.
또는 게임의 특정 엔티티와 게임의 생성 및 사용의 모든 측면을 다루기 위해 50 번째 테스트를 마친 후에는 할 일 목록을보고 코딩 할 다음 엔티티를보고 글을 쓸 때 공포에 빠집니다. 구현하기 위해 또 다른 50 가지 유사한 테스트.
작년의 진전 상황을 살펴보면서 나는 "망할 프로젝트를 끝내기"위해 TDD를 포기하는 것을 고려하고있다. 그러나 코드 품질을 포기하는 것은 내가 기대하는 것이 아닙니다. 테스트 작성을 중단하면 코드를 모듈 식으로 테스트 할 수있는 습관을 잃게 될 것 같습니다.
내가 아직 너무 느리게 잘못된 일을하고 있습니까? 이점을 완전히 잃지 않고 생산성을 높이는 대안이 있습니까? 약간? 테스트 범위가 적습니까? 다른 사람들은 모든 생산성과 동기를 없애지 않고 TDD에서 어떻게 살아남습니까?