Влияние TDD на дизайн кода
От: umnik  
Дата: 27.12.04 09:23
Оценка:
Попробовал TDD в своей последней программе и заметил, что очень сильно поменялся не только стиль работы, но и дизайн кода.
Для того, чтобы корректно писать unit-тесты, приходится дробить код на более мелкие классы с четко выделенной функциональностью.

Например, класс, работающий с внешним объектом пришлось поделить на ЧЕТЫРЕ сущности — класс для обработки поступающих данных, интерфейс для чтения данных, класс от него порожденный, непосредственно читающий данные извне, и fake-объект порожденный о этого же интерфейса для тестирования корректной работы первого класса.
С другим кодом ситуация похожая — в результате эксперимента кол-во классов в системе возросло раза в три (качество при этом, кстати, заметно повысилось, да и собственно процесс был затеян для того, чтобы сократить время на общение с заказчиком по поводу возникших ошибок)

Это нормально? Так и должно быть? А как же принцип "не плоди сущностей без надобности"?
Может ли многоуважаемый all поделиться своими наблюдениями в этой области?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.