Повторное использование и ремонтопригодность и простота тестирования - PullRequest
4 голосов
/ 18 мая 2010

Всем нравится говорить о возможности повторного использования. Там, где я работаю, всякий раз, когда какая-то новая идея отбрасывается или проверяется, всегда возникает вопрос об повторном использовании. «Мы хотим максимизировать наши инвестиции в это, давайте сделаем это многоразовым». «Возможность многократного использования принесет более высокое качество с меньшим количеством работы». И так далее и тому подобное.

Что я обнаружил, так это то, что, когда вводится компонент или идея многократного использования, все сразу боятся этого и списывают это как плохую идею. Они утверждают, что как только приложения станут зависимыми от него, он не будет обслуживаться, и любые изменения приведут к необходимости регрессионного тестирования всего, что его использует. Люди здесь указывают, в частности, на один компонент, который существует уже давно и имеет множество зависимых лиц, и беспокоится о том, что изменить стало невозможно, потому что мы не знаем, что изменится.

Мои ответы на эту жалобу:

  1. Хорошо, что переход на компонент у которого много иждивенцев медленно потому что это заставляет дизайнеров действительно продумайте изменения.
  2. Нужно время, чтобы получить компонент прямо на первом месте. Ответ: Если вы все время нуждаетесь в том, чтобы изменить его, с самого начала его нельзя было использовать повторно, не так ли?
  3. Разработка программного обеспечения сложна и требует работы. Как и тестирование. Ты просто должен это сделать.

К сожалению, в этих ответах люди слышат «медленно», «время» и «усилие».

Мне бы очень хотелось, если бы существовал волшебный переключатель «сделай это многоразовое», я мог бы переключаться на вещи, которые я строю, чтобы выиграть очки брауни от руководства, но вещи не работают таким образом. Создание чего-то повторно используемого требует времени и усилий, и вы все еще не гарантируете, что сделаете это правильно.

Как вы справляетесь с запросом об «повторном использовании», когда его доставка, кажется, не приносит ничего, кроме жалоб?

Ответы [ 3 ]

2 голосов
/ 18 мая 2010
  1. Возможность повторного использования имеет смысл только в том случае, если что-то будет фактически использовано повторно. Убедитесь, что у вас есть практические примеры повторного использования, прежде чем писать что-то повторно используемое.

  2. Даже если многократно используемую библиотеку обслуживать в 10 раз сложнее, чем ее специальную версию, вы все равно экономите на обслуживании в целом, если многоразовая библиотека используется вместо специальных версий в 10 разных местах. .

1 голос
/ 29 июня 2017

Возможность многократного использования - сделать код многократно используемым с точки зрения аналогичного поведения или отношения "IS_A". Если вы просто хотите повторно использовать блок кода, видя, что они используют снова и снова, но у них нет схожих характеристик, вам лучше оставить их в покое, чтобы они слабо связывались. Таким образом, мы можем иметь большую гибкость, чтобы изменить позже.

0 голосов
/ 18 мая 2010

Одна вещь, которую мы часто делаем, это использование версий и избегание постоянного повторного тестирования. То, что есть новая версия общего кода, не означает, что все должны использовать новую версию сразу. Когда что-то обновляется по другим причинам, обновите его до новой версии общего кода.

...