我如何设计一个可插拔的积分和徽章系统,它很容易打开和关闭,也很容易变成自己的模块?
经过多次试验和错误之后,我得出的结论是,点数和徽章过于纠缠在应用程序的唯一业务逻辑中,它们不能以简单的方式外化(许多规则涉及对应用程序的核心结构的理解,这使得事情已经非常耦合)。
目前,我所做的一切都是简单的--我将服务类方法中的所有业务逻辑(验证、持久性、游戏化、通知)具体化。然而,这些方法已经变得杂乱无章,我担心这是非常耦合的。没有简单的方法可以简单地关闭任何底层系统。
发布于 2012-03-23 08:05:27
作为一种想法,如何将您所关心的业务逻辑事件与如何将它们解释为对用户的积分、徽章、级别进行解耦呢?这样你就可以在一个地方实现疯狂的东西,比如在一个足球赛季连续三个星期一买咖啡的球巴斯徽章。
在概念上,考虑将所有可能感兴趣的事务和交互的消息传递给此奖励模块,该模块封装(并对会计人员隐藏)这一有趣的功能。
经过对此的进一步审查,已经有了主题的substantial discussion。特别值得注意的是涵盖events notification的“存储徽章标准的最佳方法”和“用于”徽章“系统的数据库体系结构”,并对overall architecture进行了讨论。
已经有人讨论过relational与nosql / Mongodb数据库的相对优点,以及将业务逻辑划分为stored procedures的优点。
在我看来,有许多新发明的车轮正在进行。有人知道开放源码软件框架或在这一领域正在出现的Github项目吗?此外,是否有任何有价值的论文或文章的主题,特别是游戏化?
https://stackoverflow.com/questions/9835321
复制相似问题