当前位置:  开发笔记 > 编程语言 > 正文

将成就添加到商务级软件的技术

如何解决《将成就添加到商务级软件的技术》经验,为你挑选了1个好方法。

我正在考虑为我们的内部错误跟踪和时间记录系统添加一些成就.它连接到SQL Server后端.

起初我认为系统可以在数据库上运行,使用触发器,例如,知道何时:

你已经记录了1000个小时

创造了1000张门票

关闭了自己的机票

工作在一段时间没有触及的机票上.

等等(你知道 - 数据库是什么东西)

但后来我意识到我也想要纯粹的前端成就

使用高级搜索abiltiy

按列排序

将设置重置为默认值

搜索了500次

似乎每项成就的逻辑必须是手工编码的.任何人都可以想象某种成就规则引擎,你可以创建脚本吗?

以及如何存储它们?如果成就是:

在一个会话中更改列排序顺序50次

这意味着每次他们对listview列进行排序时都会更新数据库.

有关此Win32应用程序设计问题的任何想法?我不认为四人帮有成就设计模式.


注意:它是Win32客户端应用程序,而不是网站.


我绝对喜欢事件系统的想法.用户采取的各种操作可以通过单个事件对象引发事件:

protected void TimeEntriesListView_ColumnSort(object sender, EventArgs e)
{
    _globalListener.RaiseEvent(EventType.ListViewColumnSort, sender, e);
}

protected void TimeEntriesListView_ColumnDrag(object sender, EventArgs e)
{
    _globalListener.RaiseEvent(EventType.ListViewColumnDrag, sender, e);
}

然后,该对象可以添加逻辑以决定它想要计数的事件.但更合理的是,各种事件侦听器可以附加到中央事件侦听器,并具有自定义成就逻辑.



1> Will Hartung..:

诀窍不是规则的编码,实际上,这些是直截了当的,也许可以是简单的表达式(number_of_bugs> 1000).

诀窍是累积统计数据.您应该查看一种事件流处理形式来记录您的成就.例如,你真的不想用"从用户=:用户的错误中选择计数(*)"来实现"1000个错误"的成就(你可以这样做,但可以说不应该).相反,你应该在每次发布错误时获得一个事件,并且你实现了系统记录"发现了另一个错误".然后规则可以检查"number_of_bugs> 1000".

显然,您可能需要"灌注泵",在启动成就系统时将number_of_bugs设置为DB中的当前数字.

但目标是保持实际事件处理的轻量级,因此让它跟踪事件,同时在公共内部管道或总线上运行所有事件.

脚本语言也是一个好主意,因为它们可以轻松地评估表达式和更复杂的逻辑.例如,"number_of_bugs> 1000"是一个完全有效的Javascript程序.游戏刚刚建立了环境.

您还可以将脚本存储在数据库中,并创建一个"成就"编辑器,如果您愿意,可以动态添加它们,假设您正在捕获所有相关事件.

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有