Когда Вы говорите, что кодом является Унаследованный код?

В отношении альтернативы @ Suragch для «Удалить элемент неизвестного индекса»:

Существует более мощная версия «indexOf (element)», которая будет соответствовать предикату, а не самому объекту. Он имеет одно имя, но он называется myObjects.indexOf {$ 0.property = valueToMatch}. Он возвращает индекс первого совпадающего элемента, найденного в массиве myObjects.

Если элемент является объектом / структурой, вы можете удалить этот элемент на основе значения одного из его свойств. Например, у вас есть класс Car, у которого есть свойство car.color, и вы хотите удалить «красный» автомобиль с вашего автомобиля.

if let validIndex = (carsArray.indexOf{$0.color == UIColor.redColor()}) {
  carsArray.removeAtIndex(validIndex)
}

Возможно, вы можете переделать это, чтобы удалить «все» красные автомобили путем вложения вышеприведенного оператора if в цикл repeat / while и присоединения блока else, чтобы установить флаг «break» из цикла.

5
задан davr 23 September 2008 в 03:58
поделиться

15 ответов

Если код:

  1. был заменен более новым кодом, который реализует то же или функциональность или лучше
  2. не используется существующими системами
  3. должен скоро быть заменен чем-то еще в целом
  4. был заархивирован по историческим причинам
  5. когда поставщики прекращают поддерживать его
8
ответ дан 18 December 2019 в 05:19
поделиться

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

12
ответ дан 18 December 2019 в 05:19
поделиться

Micheal Feathers, Автор превосходной "Работы Эффективно с Унаследованным кодом", определяет он как любой код, который не имеет тестов.

5
ответ дан 18 December 2019 в 05:19
поделиться

Лучший вопрос, вероятно, был бы тем, что отмечает часть кода как не наследие.

Мне неизменные средства прежней версии. Таким образом, как только Вы больше не можете изменить его, это - наследие.

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

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

5
ответ дан 18 December 2019 в 05:19
поделиться

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

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

6
ответ дан 18 December 2019 в 05:19
поделиться

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

4
ответ дан 18 December 2019 в 05:19
поделиться

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

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

1
ответ дан 18 December 2019 в 05:19
поделиться

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

1
ответ дан 18 December 2019 в 05:19
поделиться

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

См. "Работу эффективно с унаследованным кодом"

1
ответ дан 18 December 2019 в 05:19
поделиться

Я, возможно, неправильно, но я не думаю, что существует установленная метрика для этого.

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

0
ответ дан 18 December 2019 в 05:19
поделиться

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

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

0
ответ дан 18 December 2019 в 05:19
поделиться

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

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

0
ответ дан 18 December 2019 в 05:19
поделиться

Почти спустя секунды после того, как devs покидают помещение.:)

Если...

нет никаких денег в банке новых возможностей

Вы не можете найти никого, который допускает работать над проектом, для которого нужна фиксация

исходный код к проекту, которым Вы владеете, пошел MIA

... затем Вы работаете над унаследованным кодом.

0
ответ дан 18 December 2019 в 05:19
поделиться
  • Когда код является достаточно взрослым, Вы никогда не встречали разработчика, который первоначально написал код.
  • Когда сторонние библиотеки больше не поддерживаются.
0
ответ дан 18 December 2019 в 05:19
поделиться

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

-1
ответ дан 18 December 2019 в 05:19
поделиться
Другие вопросы по тегам:

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