为最终用户版本化Web应用程序的一般策略是什么?

时间:2012-05-28 17:25:20

标签: web-applications backbone.js versioning backbone-routing

我正在编写一个网络应用程序,我想知道未来的升级以及webapp的升级将如何影响用户体验。

特别是,我想知道Google这样的公司是如何解决这个问题的。例如,我看过几个例子,其中特定的谷歌应用程序将询问用户是否要升级到“新的谷歌文档”或类似的。这是我想提供的经验,但我不确定如何去做。如果重要,我正在编写一个使用backbone.js的应用程序,并且有一个沉重的JS客户端组件。我已经看过几个讨论关于REST组件或WebServices组件版本化的讨论,但没有讨论实际的客户端代码或后端组件(当然,如果它只是在版本化的Web服务之后,后端可能并不重要)

从应用程序角度和(可能)后端数据库角度来看,我对他们如何实现这一目标很感兴趣。

所以似乎有几个问题。

  • 在网络根目录中,版本化应用程序是否存在
  • 如何为不同用户提供多个版本
  • 如何对后端数据存储区进行版本化
  • 由于我使用骨干网,我特别感兴趣为此类应用设计路由器。如果各种版本都存在于子目录中,我该如何创建合适的路由器?

也可能还有其他一些考虑因素。

1 个答案:

答案 0 :(得分:0)

这非常复杂,特别是在Google Docs中进行协作时,您希望文档的不同版本彼此兼容。 因此,您可以决定不在每个主要版本之前更改数据库,然后将所有人移动到新版本的应用程序,或者制作可以将数据从一个版本转换为另一个版本(以及向后版本)的“转换器”并保留不同的数据库同步,同时接受来自不同“app”版本的数据。

管理这种情况的“最简单”方法是使用事件日志,甚至使用CQRS,这些模式可以让您以这种方式更好地管理数据。

但是在实现这样的事情之前我会三思而后行。 你真的需要吗? (巨大的?)成本是否适合(微小?)的好处? 你在这个阶段需要吗?