gpt4 book ai didi

java - 如何根据订阅级别为不同用户设计具有不同功能集的 Web 应用程序?

转载 作者:太空宇宙 更新时间:2023-11-04 01:10:58 26 4
gpt4 key购买 nike

寻求对应用程序架构模式的深入了解,这些应用程序根据订阅为不同用户启用了不同的功能集。

我指的不是角色 - 管理员、用户和经理 - 而是我的整个可用功能集或容量可能如何根据我的订阅而变化。

以 github 或 freshbooks 或 firebase 或 heroku 为例。有多个计划。免费计划A只能做X+Y,而付费计划B可以做X+Y+Z(并且还有10个以上),付费计划C可以做W+X+Y+Z(并且每个有100个) 。

显然,我不想将这些限制和功能过于严格地融入到代码中,否则需要很长时间来构建,并且任何更改(在计划之间移动功能,或对各种功能的限制)都会成为一场噩梦。

人们使用什么模式以便用户:

  • 只能使用与他/她相关的功能
  • 受到他/她可用的限制
  • 当订阅级别发生变化(向上或向下)时,这些限制/功能是否会自动更改
  • 看到追加销售机会(显示的功能不可用,但可以购买)?

在这里寻找架构设计,欢迎使用 Java、NodeJS、RoR 或 PHP 的示例。

最佳答案

从非常高的层面来看,我可能会从以下方面开始:

  1. 让“角色”(或者任何你想称呼的名称)具有包容性,而不是排他性。或者是加法而不是减法。仅显示 a/b/c 比默认显示全部更容易,然后尝试锁定受限制的功能。

  2. 让 API 处理谁可以做什么的所有逻辑,因此当数据到达您的 View 时,它已经是基于用户可用功能的有限集。

  3. 访问级别可以以每个用户为基础,也可以以某种命名组为基础,这可能会使批量升级用户等变得更容易。

  4. 对于原型(prototype),您可能会进行 UX 设计,以便如果用户从他们无权访问的 API 请求某个功能,API 可以发回某个 HTTP header 等。并且您的前端可能会显示通用的“升级您的帐户”消息。

你的问题相当广泛。

最后一个想法 - 如果您认为应用程序很大,那么创建一个基本 API,然后创建从中继承的其他 API(每个 API 都具有特定的功能)可能会有所帮助。同样,有很多方法可以做到这一点......我想到了 Node 模块。这样,您就可以为用户所在的每个“计划”级别创建不同的体验,但仍然重用代码。

关于java - 如何根据订阅级别为不同用户设计具有不同功能集的 Web 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17730977/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com