Для кого предназначена методика TDD?
Кажд ая практика программирования явно или не явно базируется на
системе ценно стей. TDD не исключение. Если вам нравится лепить
вместе куски код а, которые более-менее работают, и вы счастливы
д умать, что вам не прид ется возвращаться к полученному в результате
этого код у в д альнейшем, значит, TDD – не д ля вас. Метод ика TDD
базируется на очаровательно-наивном пред положении программиста о
том, что чем красивее код , тем вероятнее успех. TDD помогает вам
обращать внимание на правильные вопро сы в под ход ящие д ля этого
моменты времени. Благод аря этому вы можете д елать д изайн чище и
мод ифицировать его по мере того, как перед вами встают новые
обстоятельства.
Я сказал, что пред положение наивное, од нако, скорее всего, я
преувеличил. На самом д еле наивно пред полагать, что чистый код – это
все, что необход имо д ля успеха. Мне кажется, что хорошее
проектирование – это лишь 20 % успеха. Безусловно, если
проектирование буд ет выполнено из рук вон плохо, вы можете быть на
100 % уверены, что проект провалится. Од нако приемлемый д изайн
сможет обеспечить успех проекта только в случае, если о стальные 80 %
буд ут там, гд е им полагается быть.
С этой точки зрения TDD – чрезвычайно мощный инструмент. Если
сравнивать со сред ним уровнем инд устрии разработки программного
обеспечения, метод ика TDD позволяет писать код , сод ержащий
значительно меньше д ефектов, и формировать значительно более
чистый д изайн. Те, кто стремится к изяществу, могут найти в TDD
сред ство д ля д о стижения цели.
Метод ика TDD также под ход ит д ля тех, у кого формируется
эмоциональная привязанно сть к код у. Когд а я был молод ым
программистом, самым большим разочарованием д ля меня была
ситуация, когд а проект начинался с огромным воод ушевлением, а затем,
с течением времени, код становился все более отвратительным. Год
спустя у меня, как правило, формировало сь устойчивое желание уйти из
проекта, чтобы никогд а в жизни не иметь д ела с этим гнусно пахнущим
код ом. TDD позволяет с течением времени под д ерживать уверенно сть в
код е. По мере того как тестов становится все больше (а ваше мастерство
тестирования улучшается), вы обретаете все большую уверенно сть в
том, что система вед ет себя именно так, как вам над о. По мере того как
вы улучшаете д изайн, становится возможным все большее количество
изменений. Моя цель заключается в том, чтобы через год работы мне
было бы интереснее и приятнее работать над проектом, чем в самом
начале проекта, и TDD помогает мне д о стигнуть этой цели.
Do'stlaringiz bilan baham: |