Путь для удаления устаревших API - PullRequest
2 голосов
/ 17 июня 2011

У нас есть несколько внешних API в нашей кодовой базе, которые устарели на протяжении многих лет, без четкого указания, кто и когда их удалит. Как бы вы посоветовали нам удалить их? Можем ли мы рассмотреть API, которые устарели, например,> 2 года или 3 выпуска назад достаточно старыми, чтобы просто удалить их? Или мы должны сначала четко сообщить стратегию удаления для каждого отдельного API и начать удалять их через пару выпусков?

Есть идеи? Как вы справились с этим?

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

Ответы [ 3 ]

1 голос
/ 17 июня 2011

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

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

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

1 голос
/ 17 июня 2011

Когда мы отказываемся от API, мы объявляем об устаревании нашим пользователям и сохраняем устаревший API для двух последующих выпусков.Но чтобы все знали, что API устарел (язык C), мы помещаем #error This module is deprecated since ... в заголовок, который делает API общедоступным.

Сохраняйте это состояние, пока не решите окончательно удалить API..

0 голосов
/ 17 июня 2011

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

...