VicTHOR
@VicTHOR
(╮°-°)╮┳━━┳ ( ╯°□°)╯ ┻━━┻

Нужно ли поддерживать старую версию неиспользуемой функции?

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

Если обновить метод вспомогательного класса с нарушением обратной совместимости, это обновление мажорной версии пакета? По использованию пакета в документации ничего не меняется...
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
VicTHOR Почему вы считаете изменение параметров в методе приватного класса нарушением обратной совместимости?

Чтобы понять, нарушена ли чем-либо обратная совместимость - нужно руководствоватся принципом подстановки - сможет ли пользователь просто взять более новую версию библиотеки и подставить вместо старой? У него сломается что-нибудь на этапе сборки или этапе эксплуатации? А если точнее - то будут ли нарушены какие-либо гарантии, данные вами на уровне языка или на уровне документации. Если да - значит совместимость нарушена. Примеры таких гарантий:
  • интерфейс библиотеки - имена и параметры ПУБЛИЧНЫХ функций, классов, методов классов (однако если вы добавляете ещё один параметр с значением по-умолчанию, и старый код всё также будет компилироваться/запускаться - это не нарушение обр. совм.);
  • гарантии по алгоритмической сложности - иногда для нас принпиципально, будет ли функция O(1) или же O(n^2). В библиотеке такие гарантии могут быть прописаны на уровне документации (как например в доках на стандартную библиотеку C++), поэтому их нарушение можно считать нарушением обратной совместимости;
  • различные документированные побочные эффекты, на которые пользователь мог рассчитывать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы