Я проектирую (SOAP-подобный) протокол межпроцессного взаимодействия для выполнения вызовов функций по сети. Я хочу, чтобы более старый клиент мог разговаривать с более новым сервером. Поразмыслив над ним на некоторое время, похоже, единственное, что я могу сделать это:Как обеспечить обратную совместимость API IPC
- избежать API изменения
- позволяют добавлять функции
- позволяют добавлять функциональные параметры
Однако, когда функциональность сервера полностью изменяется, этого недостаточно. Например:
- параметр, который необходимо перенести из одного вызова функции в другой.
- тип параметра, который изменяется, например, от целого до строки.
Мой вопрос: могут ли такие изменения быть сделаны при сохранении обратной совместимости или это единственный вариант, просто не сделать их?
Примечание: Я знаю, что я страдаю от not invented here syndrome, но, на мой взгляд, это не аннулирует этот вопрос.
Большое спасибо за ваш ответ. –