Таким образом, вы не слишком сильно удивите своих товарищей по команде, если вам нужно отказаться от кода, который вам назначен, но который им нужно вызывать. Но позволяет внести необходимые изменения!
Удалите неиспользуемый код в устаревшем приложении.
Если у вас есть система контроля версий, удаление неиспользуемого кода ничего не повредит, потому что его история сохраняется в любом программном обеспечении контроля версий, которое вы используете. Чистый код помогает следующему разработчику, когда ему нужно войти и внести изменения. Старый код только запутывает проблему, когда необходимо внести изменения.
Лично я удаляю код, который не использую, и полагаюсь на систему контроля версий, чтобы отслеживать его. Но я не использую VSS и не стал бы.
Но есть одно исключение из этого правила ... Иногда, если я удаляю код в месте, где кто-то слишком соблазняет думать, что он должен быть там, я оставляю его прокомментированным с небольшой пометкой, чтобы они этого не делали. t повторить мою невыполненную работу.
Я думаю, что лучший способ - это контроль версий проекта, например SVN, CVS. А затем удалить неиспользуемый код. Чтобы уменьшить размер исходного файла при компиляции и избежать беспорядка с неиспользуемым кодом.
Я предпочитаю удалять их. Контроль исходного кода сохранит историю того, что там было (и кто это удалил). Я ненавижу искать код и видеть результаты в закомментированном коде - особенно когда код закомментирован с помощью /*...*/
, который вы не можете увидеть в результатах поиска файлов, вместо \\\
, который по крайней мере дает мне шанс увидеть, что результат закомментирован.
Что если код для некоторой функциональности, которая не нужна, но может понадобиться в будущем, разбросан по всей программе? Использование #ifdef для контроля такого кода (хранение в одном файле основного списка всех меток #define, используемых для этой цели) может позволить включить или отключить функцию по желанию; попытка реинкорпорировать все маленькие кусочки кода из системы контроля версий представляется более сложной.
Если у меня есть код, который я больше не использую, я продаю его на Craigslist.
Лучший способ отметить неиспользуемый устаревший код - удалить его. Это не служит другой цели, кроме как запутать команду новых разработчиков.
В моей старой команде мы фактически превратили это мероприятие в соревнование, которое мы назвали соревнованием Grim Repear. Кто смог найти и удалить наибольшее количество неиспользуемого / мертвого кода в кодовой базе. Отрицательные баллы присуждались за удаление мертвого кода и положительные баллы за добавление мертвого кода. Побеждает наименьший результат.
Прислушайтесь к совету Майкла Джексона:
Просто удалите его ... удалите ... удалите ... удалите ...
Никто не хочет быть побежденным
Покажи, насколько крутой и силен твой бой
Неважно, кто прав или прав
Просто удали его ... удали ... просто удали ... удали ...
Хорошее место для применения урока из книги "Прагматичный программист".
Делайте резервные копии, а затем удаляйте весь неиспользуемый код. Поверьте, это избавит разработчиков от головной боли в будущем. Если вы сомневаетесь, что вам может понадобиться какая-то будущая функциональность, основанная на закомментированном коде, не стоит даже мучиться, пытаясь понять неиспользуемый код или логику. Лучше начать с чистого разума без необходимости расшифровывать явно полуготовый, непроверенный код.
Я обычно помечаю это устаревшим:
/// <summary>
/// Purpose of this method
/// </summary>
/// <param name="args">Argument 1</param>
[Obsolete("This method is obsolete, use NewMethod instead")]
public void SampleMethod(string args)
{
//code
}
/// <summary>
/// Purpose of this method
/// </summary>
/// <param name="args">Argument 1</param>
public void NewMethod(string args)
{
//code
}
Теперь компилятор будет выдавать предупреждение всякий раз, когда используется метод, помеченный как устаревший.
Я считаю, что удаление - хороший способ сохранить код в чистоте.
Если вы не удалите, например: закомментируйте или создайте устаревшие объекты для их хранения, я видел подобный беспорядок.
и поэтому у вас есть репозитории, ветки, теги и т. Д.
Я считаю, что лучше удалить это. если код уже есть в репозитории.
I всегда удаляю неиспользуемый код. Это одно из преимуществ системы контроля версий.
Я удаляю код, но сначала убеждаюсь, что потом он не вызовет никаких проблем. Если мне это понадобится позже, я беру его из системы управления версиями и использую одну приятную функцию - сравнение кода, и я вижу, что было изменено. Я не комментирую неиспользованный код, потому что, если другой разработчик смотрит на код, трудно понять, почему он не используется (особенно, если разработчик не оставил комментарий по причине). Таким образом, удаление кода сделает его простым и понятным.
Однозначно удалить неиспользуемый код. По моему опыту, самая большая проблема с устаревшими кодовыми базами - это понимание того, что происходит в коде - меньше кода означает меньше понимания, что упрощает вашу работу.
Как вы говорите, вы всегда можете получить его обратно, если используете систему управления версиями (вы используете систему управления версиями, верно?), И если вы не делаете что-то немного странное (например, динамическая компиляция кода или загрузка кода через отражение), вы вероятно, очень быстро узнают, если вы удалили неправильный код, поскольку ваша сборка не удастся.
Я комментирую это так же, как я комментирую свой System.out.println перед запуском.
Я думаю, что ответ был дан на конференции Refuctoring - http://www.waterfall2006.com при обсуждении «Модуля дождливого дня» - вы должны написать запасной код на случай, если он кому-то понадобится позже ...
class SpareCode {
private int spareInteger;
private String luckyString;
private bool youNeverKnow ;
public void spareLogic() {
spareInteger = 1;
if ( youNeverKnow ) {
spareInteger++;
}
System.out.println( luckyString);
}