设计可插拔点和徽章系统

如何设计一个易于打开和关闭的可插拔点和徽章系统,以及易于变成自己的模块?

经过多次试验和错误后,我得出的结论是,点和徽章只是过于交织在应用程序的唯一业务逻辑中,它们无法以简单的方式外化(许多规则涉及理解应用程序的核心结构,这使得事物已经相当耦合)

我目前以简单的方式做所有事情 – 我在服务类的方法中外部化了所有业务逻辑(validation,持久性,游戏化,通知)。 然而,这些方法已经变得非常杂乱,我担心这种方法很紧密。 没有简单的方法来简单地关闭任何底层系统

作为一个想法,如何将您关心的业务逻辑事件与您如何将它们作为点,徽章,级别解释为用户? 因此,您可以在一个地方实施疯狂的东西,如Ball Buzz徽章,在足球赛季中连续三个星期一购买咖啡。

从概念上讲,考虑将所有可能有趣的交易和交互的消息传递给此奖励模块,该模块封装(并隐藏会计师)这一有趣的function。


在进一步审查SO之后,已经对该主题进行了实质性讨论 。 特别值得注意的是“存储徽章标准的最佳方式”,包括事件通知和“徽章”系统的“数据库架构”,以及整体架构讨论。

已经讨论了关系与nosql / Mongodb数据库相对于这种特性的相对优点,以及将业务逻辑划分为存储过程 。

在我看来,有很多重新发明轮子正在进行。 有谁知道在这个领域出现的OSS框架或Github项目? 此外,关于徽章的具体和游戏化的任何有价值的论文或文章一般吗?