首页 > 解决方案 > 如何为不同版本的应用程序模块化地保留服务端应用程序

问题描述

我正在向 Uber 和 Line 等应用程序世界介绍。当我实现这种应用程序的服务器端时,我意识到我必须在运行时支持我的应用程序的不同版本。为了克服这个要求,我看到了三种不同的选择:

  1. 为支持的每个应用程序版本保留一个(不同的)服务器端运行实例。例如,如果我支持 3 个版本的应用程序,我将在服务器中运行 3 个实例。
  2. 对函数使用命名空间,简而言之,克隆许多函数/类。例如,如果我支持 3 个版本的应用程序,我可能会拥有 3 个版本的函数(例如 fun_v1、fun_v2、fun_v3)。
  3. 为每个应用程序版本保留一个(不同的)配置文件。此文件设置应用程序可以使用的功能或服务以及如何使用它。

    这三个选项看起来并不那么模块化并且有很多“复制和粘贴”代码。如果您有任何不同的意见,请告诉我。

标签: androidiosversioningmodularity

解决方案


通常,移动应用程序通过一组 API 路由/函数与服务器通信。

根据我的经验,我认为我会选择第二个选项。通常我会在很长一段时间内将这些 API 路由开发成不同的版本(例如 v1、v2、v3...),所以假设应用程序的版本 1 调用链接到 login_v1 的路由 POST v1/login 和版本 2的应用程序调用 POST v2/login 链接到 login_v2。这种技术使事情变得灵活,因为您可以将任何路由映射到您想要的任何功能(例如,login/v3 到 login_v2)。

此外,服务器将跟踪应用程序的最新版本。当应用程序打开时,它会从服务器获取最新的版本号,如果它比应用程序的当前版本更新,我们可能会要求用户更新应用程序以获取新功能。

希望这可以帮助。


推荐阅读