Разница между feature versioning и versioning средствами VCS заключается в подходе к версионированию:
- Feature versioning предполагает работу с набором фич (функций) вместо конкретных версий. 1 Приложение клиента работает с набором фич, а сервер поддерживает полный реестр фич. 1 Когда приложение с ним коннектится, он проверяет, какой набор активных фич из реестра поддерживает приложение. 1 На основании этого совпадения сервер знает, в каком формате давать ответ, чтобы приложение не сломалось. 1
- Versioning средствами VCS — это версионирование с помощью систем контроля версий. 14 Система выступает центральным хранилищем, в котором хранятся все разные версии кодовой базы и отслеживаются изменения между ними. 4 Для обозначения версии на нужный коммит навешивают тэг версии. 1
Таким образом, feature versioning подходит для ситуаций, когда у API нет конкретных версий, а нужно решить проблему обратной совместимости. 1 Versioning средствами VCS подходит для маленьких API, которые просто и легко поддерживать, а также для внутренних API микросервисов. 1