Когда вы говорите, что это код Legacy? - PullRequest
5 голосов
/ 23 сентября 2008

Любые полезные метрики будут в порядке

Ответы [ 15 ]

12 голосов
/ 23 сентября 2008

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

8 голосов
/ 23 сентября 2008

Если код:

  1. был заменен более новым кодом, который реализует то же или функциональность или лучше
  2. не используется текущими системами
  3. скоро будет заменено чем-то совсем другим
  4. было архивировано по историческим причинам
  5. когда поставщики перестают его поддерживать
6 голосов
/ 23 сентября 2008

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

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

5 голосов
/ 23 сентября 2008

Возможно, лучшим вопросом будет то, что помечает фрагмент кода как не устаревший.

Для меня наследие означает неизменность. Так что, как только вы больше не «способны» изменить его, это наследство.

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

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

5 голосов
/ 23 сентября 2008

Micheal Feathers, автор превосходной «Эффективной работы с устаревшим кодом», определяет его как любой код, не имеющий тестов.

4 голосов
/ 23 сентября 2008

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

1 голос
/ 23 октября 2008

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

См. " Эффективная работа с устаревшим кодом "

1 голос
/ 23 сентября 2008

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

Использование модульных тестов или некоторых мер, например, секунд, с тех пор как разработчик покинул здание, на самом деле не определяет, является ли код устаревшим кодом. Унаследованный код может иметь хороший набор модульных тестов и комментариев, а также может подвергаться строгому анализу кода и другому анализу. Это не означает, что код все еще актуален для данной программы. Это просто говорит о том, что код может быть сравнительно хорошо написан. И если он больше не актуален, код фактически усложнит решение проблемы, для которой разработана программа.

1 голос
/ 23 сентября 2008

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

0 голосов
/ 23 сентября 2008

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

Таким образом, в таких обстоятельствах ситуация может ухудшиться, с возрастающей скоростью.

...