Deprecation

Поделись знанием:
Перейти к: навигация, поиск

Deprecation (англ. deprecation, букв. «неодобрение», объявление возможности не рекомендованной, или устаревшей) — в программировании некоторое указание нежелательности применения какой-либо части программы, процедуры или языка программирования. Чаще всего используется какой-либо стандартный для данного языка программирования или системы документации кода способ указания, например служебная метка (тег), специальная конструкция языка и т. п. В среде разработчиков компьютерных программ и документации, термин deprecation может обозначать очередную стадию в жизненном цикле программного обеспечения, замену устаревших частей на новые.

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

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

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

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



Примеры

В языке Java используется две нотации этого тега:

  • @Deprecated — компилятор в обязательном порядке выдаст предупреждение о использовании нежелательного элемента
  • @deprecated — выдача предупреждения является необязательной, хотя компиляторы Sun предупреждение выдают.

В phpDocumentor используется два дескриптора, которые являются синонимами[1]:

  • @deprecated
  • @deprec

В Delphi используется ключевое слово deprecated;

В C++14 используется атрибут [[deprecated]][2].

См. также

Напишите отзыв о статье "Deprecation"

Примечания

  1. [manual.phpdoc.org/HTMLframesConverter/default/ phpDocumentor Manual]
  2. [msdn.microsoft.com/en-us/library/044swk7y%28v=vs.90%29.aspx MSDN deprecated (C++)]


Отрывок, характеризующий Deprecation

– Что князь? – спросила она.
– Их сиятельство с ними в том же доме стоят.
«Стало быть, он жив», – подумала княжна и тихо спросила: что он?
– Люди сказывали, все в том же положении.
Что значило «все в том же положении», княжна не стала спрашивать и мельком только, незаметно взглянув на семилетнего Николушку, сидевшего перед нею и радовавшегося на город, опустила голову и не поднимала ее до тех пор, пока тяжелая карета, гремя, трясясь и колыхаясь, не остановилась где то. Загремели откидываемые подножки.
Отворились дверцы. Слева была вода – река большая, справа было крыльцо; на крыльце были люди, прислуга и какая то румяная, с большой черной косой, девушка, которая неприятно притворно улыбалась, как показалось княжне Марье (это была Соня). Княжна взбежала по лестнице, притворно улыбавшаяся девушка сказала: – Сюда, сюда! – и княжна очутилась в передней перед старой женщиной с восточным типом лица, которая с растроганным выражением быстро шла ей навстречу. Это была графиня. Она обняла княжну Марью и стала целовать ее.
– Mon enfant! – проговорила она, – je vous aime et vous connais depuis longtemps. [Дитя мое! я вас люблю и знаю давно.]
Несмотря на все свое волнение, княжна Марья поняла, что это была графиня и что надо было ей сказать что нибудь. Она, сама не зная как, проговорила какие то учтивые французские слова, в том же тоне, в котором были те, которые ей говорили, и спросила: что он?
– Доктор говорит, что нет опасности, – сказала графиня, но в то время, как она говорила это, она со вздохом подняла глаза кверху, и в этом жесте было выражение, противоречащее ее словам.
– Где он? Можно его видеть, можно? – спросила княжна.
– Сейчас, княжна, сейчас, мой дружок. Это его сын? – сказала она, обращаясь к Николушке, который входил с Десалем. – Мы все поместимся, дом большой. О, какой прелестный мальчик!
Графиня ввела княжну в гостиную. Соня разговаривала с m lle Bourienne. Графиня ласкала мальчика. Старый граф вошел в комнату, приветствуя княжну. Старый граф чрезвычайно переменился с тех пор, как его последний раз видела княжна. Тогда он был бойкий, веселый, самоуверенный старичок, теперь он казался жалким, затерянным человеком. Он, говоря с княжной, беспрестанно оглядывался, как бы спрашивая у всех, то ли он делает, что надобно. После разорения Москвы и его имения, выбитый из привычной колеи, он, видимо, потерял сознание своего значения и чувствовал, что ему уже нет места в жизни.
Несмотря на то волнение, в котором она находилась, несмотря на одно желание поскорее увидать брата и на досаду за то, что в эту минуту, когда ей одного хочется – увидать его, – ее занимают и притворно хвалят ее племянника, княжна замечала все, что делалось вокруг нее, и чувствовала необходимость на время подчиниться этому новому порядку, в который она вступала. Она знала, что все это необходимо, и ей было это трудно, но она не досадовала на них.