понедельник, 5 февраля 2018 г.

Семантическое версионирование (Semantic Versioning)

При разработке программных решений встает задача управления изменениями ваших публичных API во времени. Например, у вас есть 2 сервиса А и Б. Сервис А делает запросы к сервису Б по REST API для получения необходимой информации. А зависит от Б, так как для его работы необходима информация из Б. Мы выпускаем новую версию сервиса Б, в которой изменилось API. Как сообщить клиентам сервиса Б, совместим ли API с предыдущей версией? 

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

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