// codeart.ru / Офтопик / Зависимость и дублирование Форум

Зависимость и дублирование rss подписка

Автор: Codeart

Сейчас перечитываю книгу «Экстремальное программирование разработка через тестирование» автор Кент Бек. Наткнулся на одну хорошую мысль, которая как-то не бросилась мне в глаза раньше. Позволю себе изложить ее суть в своей вольной интерпретации.

[social_lock]
Если сказать совсем коротко, то проблема дублирования кода — это не проблема вовсе, а симптом другой болезни, которая называется »Зависимость». Речь конечно о зависимости между различными частями программы.

На ранних стадиях зависимость легко проследить между тестами и кодом — изменение одного невозможно сделать без изменения другого. Если не использовать TDD, то зависимости проявляются гораздо позже, уже на готовом проекте. На этой стадии исправить их становится гораздо сложнее.

Но вернемся к дублированию. Чаще всего дублирование проявляется в виде дублирования логики — одно и то же выражение встречается в разных частях программы (при этом оформление может меняться, но суть остается). Чтобы внести исправление приходится вносить изменения в каждое выражение. Это и есть проявление зависимости. Избавляясь от дублирования мы автоматически уменьшаем зависимость.

Поэтому, рефакторинг после получения зеленой линии — это весьма полезная практика, которая позволяет облегчить написание будущих тестов и улучшает самочувствие проекта.

Анализируя свою практику работы в стиле TDD, могу заметить, что очень часто у меня возникает желание провести рефакторинг не сразу после завершения работы над тестом, а после реализации серии тестов. Т.е. фактически я откладываю на потом, то что нужно делать сейчас. Возможно, тем самым я неявно усложняю себе жизнь.

В ближайшее время постараюсь сконцентрироваться на рефакторинге и посмотреть, что получиться. О результатах отпишусь в блоге.
[/social_lock]

Leave a Reply

« »