关于规范对象的数据结构、并设计相应的精简版
Opened this issue · 0 comments
sileence114 commented
功能模块
我期望对Message
, User
, Role
, Channel
, Guild
等对象进行精简字段的重新设计。
你希望的功能描述?
-
实现
Message
,User
,Role
,Channel
,Guild
等对象的精简字段版本:- 这种设计可用于嵌套在其他结构内,如消息的引用中。例如:
Message{ 精简的User, 精简的Message(即Quote), 精简的Channel{ 精简的Guild, ... }, ... };
- 用于事件消息以减少推送的数据量(例如,某人连续发送多条消息,其中的作者信息部分仅需获取id和name,其他如头像链接等字段使用频率较低)。
- 在面向对象的SDK中更好地进行抽象,用户在构造时只需考虑精简版,然后使用
update()
方法在需要时补全剩余字段(甚至可以在查询时添加参数,仅返回剩余字段)。
- 这种设计可用于嵌套在其他结构内,如消息的引用中。例如:
-
规范化
Message
对象结构,目前QuoteMessage
、事件推送的Message
以及message/view
的Message
结构存在明显差异,这在SDK层面的抽象中带来了挑战。
功能的主要使用场景?
我正在尝试为khl.py
实现message/view
接口,目前正试图抽象出一个通用的Message
类。由于事件和HTTP接口的Message
结构完全不同,而且相互补充对方的字段子集,因此很难通过继承关系进行合理的抽象。
其它信息
可能的实现方案:
- 由官方定义各个对象的字段。
- 参照现有机器人,筛选出高频字段,或通过问卷投票的方式选出高频字段。
- 在v4版本中实现(考虑到兼容性的因素)。