如何设计一个可插拔积分和徽章系统,既易于打开和关闭,又易于变成自己的模块?
经过多次试验和错误,我得出的结论是,积分和徽章与应用程序的唯一业务逻辑过于交织在一起,无法以简单的方式将它们具体化(许多规则涉及对应用程序核心结构的理解,这使得事情变得更加复杂)。已经相当耦合了)
我目前以简单的方式做所有事情 - 我将所有业务逻辑(验证、持久性、游戏化、通知)外部化在服务类的方法中。然而,这些方法已经变得相当混乱,而且我担心相当耦合。没有简单的方法可以简单地关闭任何底层系统
作为一个想法,如何将您关心的业务逻辑事件与您如何将它们解释为用户的积分、徽章、级别分开?这样您就可以在一个地方实现一些疯狂的东西,例如在足球赛季期间连续三个星期一购买咖啡的 Ball Buzz 徽章。
从概念上讲,考虑将所有潜在有趣的交易和交互的消息传递到此奖项模块,该模块封装(并向会计师隐藏)这个有趣的功能。
经进一步审查 SO,已实质性讨论已经是主题了。
特别值得注意的是“存储徽章标准的最佳方式”涵盖事件通知和““徽章”系统的数据库架构”整体架构讨论。
人们已经就以下方面的相对优点进行了讨论:关系型的 vs. nosql / Mongodb此类功能的数据库,以及将业务逻辑划分为存储过程.
在我看来,有很多重新发明轮子的事情正在进行。有人知道该领域出现的 OSS 框架或 Github 项目吗?另外,有关于徽章特别是游戏化主题的有价值的论文或文章吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)