Как вы определяете «нежелательный код»? - PullRequest
2 голосов
/ 05 марта 2009

Как бы вы определили «нежелательный код»?


Edit:

ИМХО, любой член кода с 0 активными вызывающими участниками (проверено рекурсивно) является нежелательным кодом. (функции, методы, свойства, переменные являются членами)

Ответы [ 8 ]

2 голосов
/ 05 марта 2009

Вот мое определение нежелательного кода :

  • Код, который не выполняется, является мертвым грузом. (Если это не [вредоносная] полезная нагрузка для вашего реального кода, но это другая история: -))
  • Код, который повторяется несколько раз, увеличивает стоимость продукта.
  • Код, который не может быть подвергнут регрессионному тестированию, также увеличивает стоимость продукта.

Вы можете либо удалить такой код, либо реорганизовать его, но не хотите оставлять его таким, какой он есть.

1 голос
/ 05 марта 2009

0 активных звонков и нет возможности использования в ближайшее время. И я предпочитаю никогда не комментировать что-либо на тот случай, если мне это понадобится позже, так как я использую SVN (контроль версий).

1 голос
/ 05 марта 2009

Любой PRIVATE член кода без активных вызывающих участников (проверено рекурсивно). В противном случае вы не знаете, не используется ли ваш код вне анализа вашей области.

1 голос
/ 05 марта 2009

В Java я бы пометил метод или класс как @ Устаревший.

1 голос
/ 05 марта 2009

Ну, после недолгого размышления об этом я пришел к следующим трем пунктам:

  • это может быть код, который должен быть реорганизован
  • это может быть код, который больше не вызывается (остатки из более ранних версий)
  • это может быть код, который не применяется к вашему стилевому руководству и способу кодирования

Могу поспорить, что есть гораздо больше, но именно так я бы определил нежелательный код.

1 голос
/ 05 марта 2009

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

0 голосов
/ 05 марта 2009

Некоторые вещи уже опубликованы, но вот еще: Функции, которые делают почти то же самое. (только небольшое изменение переменной и, следовательно, целые функции копируются и эта переменная изменяется)

0 голосов
/ 05 марта 2009

Обычно я говорю моему компилятору, чтобы он был настолько раздражающим, насколько это возможно, который выбирает 60% материала, который мне нужно изучить. Неиспользуемые функции, которым уже несколько месяцев (после проверки с помощью VCS), обычно удаляются, если их автор не сообщает мне, когда они будут фактически использоваться. Вещи пропущенных прототипов также мгновенно подозреваются.

Я думаю, что попытка внедрить автоматизированную уборку дома - это все равно что создать USB-устройство, которое гарантирует, что вы «безопасно» играете Русская рулетка .

Сложнее всего проверить, какие компоненты добавлены в систему сборки, мало кто замечает их, а неиспользованные кладжи оставляют для сбора мха.

Кроме того, я, как правило, ХОЧУ код, я просто хочу, чтобы его автор немного реорганизовал его и сделал их стиль таким же, как и у остального проекта.

Другим полезным инструментом является doxygen , который помогает (визуально) увидеть отношения в дереве исходного кода ... однако, если он настроен на извлечение статических символов / объектов, он не будет очень тщательным .

...