Разработка через тестирование . Чтобы код легко тестировался модулем, он должен:
1) делать только одну вещь
2) иметь как можно меньше зависимостей
3) часто эти зависимости передаются (чтобы их можно было отключить)
По удивительному стечению обстоятельств эти факторы также влияют на код многократного использования. На самом деле это не совпадение - лучший способ иметь повторно используемый код, чтобы как можно раньше использовать его по крайней мере для двух вызывающих абонентов. Код, созданный с помощью TDD, начинает жизнь с двумя родителями - строящимся кодом и модульными тестами, поэтому он используется повторно с самого начала.
TDD имеет много других преимуществ, помимо повторного использования - он предоставляет вам автоматические тесты для всего вашего кода, он служит примером документации для использования кода и делает рефакторинг более безопасным. Написание кода с использованием TDD может занять больше времени, чем написание кода без тестов, но вы часто будете это делать, тратя гораздо меньше времени на отладку.