Что делает наследие кода?

Чтобы заменить несколько значений:

>>> from sympy import Symbol
>>> x, y = Symbol('x y')
>>> f = x + y
>>> f.subs({x:10, y: 20})
>>> f
30
41
задан Chris de Vries 26 January 2009 в 22:54
поделиться

16 ответов

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

40
ответ дан cletus 23 September 2019 в 14:47
поделиться

Унаследованный код является чем-либо записанным больше чем месяц назад :-)

-1
ответ дан Roger Lipscombe 23 September 2019 в 14:47
поделиться

Вполне честно унаследованный код является любым кодом, платформой, API, другого thta's конструкции программного обеспечения, не "прохладного" больше. Например, КОБОЛ единогласно рассматривается как наследие, в то время как APL не. Теперь можно также сделать случай, что КОБОЛ является consideed наследием и APL, не потому что это имеет времена приблизительно на 1 м основа установки как APL. Однако, если Вы говорите, что необходимо работать над кодом APL, которым ответ не был бы "о нет, что материал прежней версии", а скорее, "о, мой бог, угадайте, что Вы не будете делать, что-нибудь в течение следующего века" видит различие?

0
ответ дан klyde 23 September 2019 в 14:47
поделиться

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

2
ответ дан Relic 23 September 2019 в 14:47
поделиться

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

2
ответ дан Wayne Molina 23 September 2019 в 14:47
поделиться

Любой код с поддержкой (или документация) пропавшие без вести. Будьте этим:

  • встроенные комментарии
  • техническая документация
  • разговорная документация (человек, который записал это)
  • модульные тесты, документирующие работы кода
5
ответ дан Gerrie Schenck 23 September 2019 в 14:47
поделиться

http://en.wikipedia.org/wiki/Legacy_code

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

5
ответ дан Sergio 23 September 2019 в 14:47
поделиться

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

7
ответ дан Galwegian 23 September 2019 в 14:47
поделиться

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

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

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

8
ответ дан Dan Dyer 23 September 2019 в 14:47
поделиться

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

5
ответ дан meouw 23 September 2019 в 14:47
поделиться

По словам Michael Feathers, автора превосходного Работа Эффективно с Унаследованным кодом , унаследованный код является кодом, который не имеет никаких тестов. Когда нет никакого способа знать то, что повреждается, когда этот код изменяется.

главным, которое отличает унаследованный код от неунаследованного кода, являются тесты или скорее отсутствие тестов. Мы можем получить смысл этого с небольшим мысленным экспериментом: как легкий это должно было бы изменить Вашу кодовую базу, если это могло бы воздержаться, если это могло бы сказать Вам, когда Вы сделали ошибку? Это было бы довольно легко, не так ли? Большая часть страха, вовлеченного во внесение изменений в большие кодовые базы, является страхом перед представлением тонких ошибок; страх перед изменяющимися вещами непреднамеренно. С тестами можно сделать вещи лучше безнаказанно. Мне различие так очень важно, оно сокрушает любое другое различие. С тестами можно сделать вещи лучше. Без них Вы просто don’t знаете, является ли вещами улучшение или хуже.

11
ответ дан Igal Tabachnik 23 September 2019 в 14:47
поделиться

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

  1. кодовая база основана на языке/платформе, который полностью не поддерживается производителем исходного продукта (часто говорил, что производитель обанкротился).

  2. (действительно 1a) кодовая база или платформа, на которой это создается, так стары, что быть квалифицированным или опытные разработчики для системы является и трудным и дорогим.

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

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

17
ответ дан ShuggyCoUk 23 September 2019 в 14:47
поделиться

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

12
ответ дан user17541 23 September 2019 в 14:47
поделиться

У Michael Feathers есть интересное определение в его книге, Работающей Эффективно с Унаследованным кодом. Согласно ему унаследованный код является кодом без автоматизированных тестов.

21
ответ дан Brian Rasmussen 23 September 2019 в 14:47
поделиться

, Что делает код, унаследованный код?

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

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

25
ответ дан Quassnoi 23 September 2019 в 14:47
поделиться

Я считаю код "наследием", если кто-либо из следующих условий применяются:

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

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

, Если немного изменений должны быть внесены в кодовую базу прежней версии, лучше просто оставить его как есть и пойти с потоком. Если для приложения нужны решительные изменения функциональности, перестройка GUI, и/или Вы не можете найти никого, кто знает язык программирования, пора выбросить и запуститься. Слово предупреждения, однако: перезапись с нуля может быть очень трудоемкой, и трудно знать, копировали ли Вы всю функциональность. Вы, вероятно, захотите записать тестовые сценарии и модульные тесты для унаследованного приложения и нового приложения.

1
ответ дан davogones 23 September 2019 в 14:47
поделиться
Другие вопросы по тегам:

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