Пока вы все еще понимаете
детали домена, вы выясните,
много вещей, которые вы сделали неправильно, как
метод, который имеет больше смысла в некоторых
другой класс, или добавление / удаление
параметры из конструктора, и
много других изменений.
Процесс понимания предметной области является процессом проектирования, и ему помогает TDD, который, как вы должны понимать, является техникой проектирования.
Тот метод, который имеет больше смысла в каком-то другом классе - вы быстро это понимаете, больше быстро, используя TDD, потому что первое, что вы делаете при написании метода, - это написание теста для него , Когда вы напишете этот тест, вы увидите, что (например) вам нужно передать много членов из другого класса, и это скажет вам - еще до того, как вы написали метод - «Эй, это относится к есть! "
Используйте TDD, чтобы уменьшить отток, который вы описываете. Это не устранит это, но уменьшит, потому что вы делаете дизайн в микро, по требованию, по мере необходимости. Это дизайн как раз вовремя.