猫史档案馆


如果做出扩展性高的聊天室

用户:𝙲ℴ𝗌𝔦𝒹ₑ𝑟𝙲ℴ𝗌𝔦𝒹ₑ𝑟查看:13 回复:1 评论:13 创建时间:2023-01-02T20:49:55


在开始之前

你需要知道:

云变量有1024字符限制,云列表有1000项,每项128字符

center_image

正题开始!

--------------------------------------------------------------------------------

1.从哪开始?

很多人一开始想到的是 UI(界面) 或者  打印文字

我想应该从 数据 入手

因为这涉及到聊天功能作品可持续性(无人管理下能运行多久)

 

设计一种数据你需要考虑:大小,解析难度(怎么样用最方便)

[1] quast : hello

这是原数据(rawdate)

构成部分如下:

[ 编号 ] 发言者 : 内容

计算占用 3(固定符号) + 1(编号) + 5 (发言者) + 5(内容)=14字符

现在我们改一下:

1,quast,hello

这是绝大多数人第一时间想到的

省去了固定符号

有14字符

十分容易解析

1,[用户名],[内容]

但如果 用户名或内容出现了分隔符

就会解析成4项甚至更多

而你的积木却不知情

取到了错误的

可能你一时间都找不到原因

这里我们使用 指针法

指针(信息的长度)[6],信息(长度6,有分隔符),信息2(不包含分隔符),信息3
6,"quast,",hello,"2023,1,1"

""符号仅区分,不算字符

 

遍历字符到 第一个“,”

center_image

第0~1字符就是指针信息

center_image

根据指针得知

(分隔符位置1+1)~(分隔符位置1+1)+6(引索)    是用户名,即“ quast, ”

因为设置了3项,所以后面所有都是 一个项

即“ 2023,1,1 ”

 

回到设计:

分隔符不一定只有一个,也不一定要有

信息1(长度永远不变)+ 信息2(长度不定)

1abc

利用(或相对)位置关系省略分隔符

信息1 内容:信息2;信息3,信息4

1;2,5

此时分隔符相当于 标识符

 

也不一定要用这个center_image

center_image

 

以我设计的为例:

时间,指针!回复到,用户名,用户id,内容

经过处理

可以分成

center_image分成这么多列表可以大大提高扩展性:

打印-显示在屏幕的内容(控制换行和显示行数)

作者列表(其它的,不属于本教程内容)

时间、id、用户名 将原数据拆解再像积木一样组装(易于多次使用和管理)

[编号] 用户名@回复用户名 : 内容

(id用于其它)

 

可见数据设计的重要性。

你还可以在数据中插入更多的标识符

达到更多效果

它们是不会卡的,除非你的积木出现逻辑冗余

 

---教程已完---

作者:quast

完成用时:2hours(+2days)


回复

上一页1 页 / 共 1下一页
林夕狐林夕狐

你在做什么......我看不懂了qwq,图二这一串长积木是干啥的))))

点赞1


评论