Как Вы удаляете/очищаете код, который больше не используется?

У нас есть проект, который должен был быть радикально descoped для поставки вовремя. Это имеет много кода, оставленного в нем, который на самом деле не используется. Я хочу очистить код, удаляя любой сухостой. У меня есть полномочия, чтобы сделать это, и я могу убедить людей, что это - коммерчески разумная вещь сделать. [У меня есть много автоматизированных модульных тестов, некоторых автоматизированных приемочных испытаний и команды тестеров, которые могут вручную тест регрессии.]

Моя проблема: я - менеджер, и я не знаю технически, как пойти об этом.

Какая-либо справка?

9
задан Kara 11 April 2017 в 10:12
поделиться

4 ответа

Я полагаю, вопрос в том, как найти код, который не используется, верно? На разных языках ответ немного отличается, но есть несколько общих подходов. Моя самая первая работа после школы заключалась в том, чтобы найти и удалить десятки тысяч строк неиспользуемого кода в большом проекте по доставке.

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

Учитывая это, то, что вам нужно, является частью статического анализа, и в Википедии есть большой список доступных инструментов статического анализа . Вы также должны искать переполнение стека для "мертвого кода" и вашего языка (C ++, Java и т. Д.). В прошлом этот вопрос задавали множеством разных способов. Обычно вы запускаете инструмент, смотрите, что в нем говорится, что оно не используется, удаляете его, а затем снова запускаете инструмент, чтобы найти то, что использовалось только мертвым кодом. Повторить.

С точки зрения менеджера, вы здесь абсолютно правы.Тот факт, что у вас есть много модульных тестов, означает две вещи: вы, вероятно, поддерживаете модульные тесты для вещей, которые не используете (и это стоит денег), и тесты, которые у вас есть, позволят вам вносить такие механические изменения с уверенность. Лучше всего найти в своей команде кого-то, кто любит автоматизировать; они часто имеют правильное мышление для выполнения такой работы. Если у вас есть несколько человек, работающих над этим, я бы попросил одного человека изучить статический анализатор и разработать шаблон, которому нужно следовать. Затем разделите команду на разные части кода, чтобы они не конфликтовали.

Этот вид работы может выполняться очень быстро и обычно имеет очень хорошую окупаемость. Просто убедитесь, что люди удаляют по одному фрагменту, компилируют, проводят простое тестирование, а затем фиксируют его, прежде чем двигаться дальше. Регулярно (обычно после большого изменения или, по крайней мере, ежедневно) выполняйте полную чистую перестройку и «большой» тест, чтобы убедиться, что вы действительно ничего не сломали. Худшее, что вы можете сделать, - это попытаться найти в системе каждую часть мертвого кода и сразу удалить все, а затем зафиксировать. Я обещаю, что удаление одной из этих частей сломает систему, и вы никогда не сможете понять, какой именно. Но если вы работаете методично, это может быть очень низким уровнем риска.

4
ответ дан 3 November 2019 в 00:00
поделиться

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

создать резервную копию кода на месте и за его пределами

запустить инструмент статического анализа кода для определения мертвой древесины

удалите мертвую древесину

, перестройте и повторно запустите все тесты

или вы можете просто проигнорировать это; -)

4
ответ дан 3 November 2019 в 00:00
поделиться

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

2
ответ дан 3 November 2019 в 00:00
поделиться

Прежде всего, я предполагаю, что ваш код зарегистрирован в каком-то виде контроля версий. Если нет, то у вас гораздо более глубокие проблемы, чем неиспользуемый код. Учитывая это, просто следуйте совету по этой ссылке и удалите его.

2
ответ дан 3 November 2019 в 00:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: