kita / notes

约 2 分钟

指令能用,但每条都要我手输 ID

插件装好、接口也通了,但每次查战绩要发:

王者战绩 230856479

那串数字是营地 ID。我自己都记不住,群里的别人更记不住——查一次要先去别的地方翻自己的 ID。

功能是能用的,但每次使用都要付一次"准备成本",这个成本高到会让人不用它。

改成绑定一次

核心改动是把 ID 从"每次输入"变成"配置一次":

  • 新增一条绑定指令,用户发一次自己的营地 ID,存下来
  • 之后所有查询指令都不带 ID,插件按发消息的 QQ 号去查对应的绑定

一句话:把参数从指令里挪到配置里。

改动之后指令长这样:

王者战绩
王者战绩 排位     ← 只保留"模式"这类每次确实会变的参数

顺手清理的几处

既然是重做,把攒下来的问题一并处理了:

删掉冗余指令。 原来有"角色添加 / 角色修改 / 角色删除 / 角色查询"四条,但用户的操作其实只有一次——绑定。四条指令围着一次操作转,反而增加了理解成本。删掉,只留绑定。

参数从"每次变"和"基本不变"里分开。 ID 属于基本不变(挪进绑定),对局模式属于每次可能变(留在指令里)。一刀切地全删或全留都不对。

指令名和示例合并。 帮助菜单里原来一项占两行(名字一行、示例一行),显得冗长。直接把示例当名字用:

王者战绩
王者锐评
王者今日

反正用户记的就是怎么发,不是指令叫什么名字。

加时间维度的功能。 原来只能看历史最佳,加了"今日战绩"(今天的胜率和每局结果)和"详细对局查看"。

一个放错位置的配置

有个细节值得单独提:当时那个"官方营地 userId"被放在了插件的前端配置里。

这个位置是错的。前端配置是全局的——所有用户共用一份。把某个用户的 ID 放进去,意味着所有人查出来的都是那个人的数据。

这个 bug 后来确实出现了(见另一篇:别人绑定了账号,查出来的还是我的战绩)。

一个参数的归属,取决于它的作用域。 每个人的东西放在每个人的存储里,全局配置只放全局的东西。这个区分在做功能的时候很容易被忽略——因为功能是"一个人用的",自然就顺手写进了配置。

判断标准

回头看这次重做,有一条很简单的判断标准:

如果用户每次用这个功能都要手动输入同一串东西,那它就应该被记住。

不管是 ID、路径、还是别的什么固定参数。让用户重复输入不变的东西,是功能设计上的偷懒——因为它把"存储状态"的麻烦转嫁给了使用者。

← 回到全部笔记