猫史档案馆


优秀的聊天室是怎么诞生的(加长长长篇+再整)

用户:𝙲ℴ𝗌𝔦𝒹ₑ𝑟𝙲ℴ𝗌𝔦𝒹ₑ𝑟查看:2 回复:9 评论:2 创建时间:2023-01-03T12:04:08


在开始之前

你需要知道:

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

center_image

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

1.基础与扩展

1-1.从哪开始?

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

我想应该从 数据 入手

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

 

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

[1] quast : hello

这是原数据(rawdate)

构成部分如下:

[ 编号 ] 发言者 : 内容

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

现在我们改一下:

1,quast,hello

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

省去了固定符号

有14字符

十分容易解析

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

其实,我们还可以将其变得更加简单:

[用户名],[内容]

(省略了 可推演部分)

其中编号被省略(因为编号可以在打印时确认)

这是三中扩大“容量”的其中之一(裁剪数据本身、提高利用率、使用压缩算法)

也是最简单的;(越往后面越难)

1-2 解析问题

[用户名],[内容]

"quast,",hello,"2023,1,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用于其它)

 

可见数据设计的重要性。

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

达到更多效果

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

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

2.界面与效果

2-1.尝试组合

ui师用的最多的就是:center_image

无非就是center_image

真无聊,

对不

指数和三角函数还在积木盒里躺着

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

center_image

这是一块神奇的积木

会让你的角色↑↓飘动~

多用于 移(飘)动、大小、透明度、亮度,方向(不建议)

center_image
指数积木相当于“反向”非线性

多用于 移动、大小(配合透明度会很好康))

 

精彩的特效总是无意间产生的()

对不:

center_image

(你:yi,中间那老头是谁?)))

 

2-2 ui与实用性

ui的意思是布局(非官方解释())

不是ui越好越nice

必须要考虑实用性

设计ui有几

1.低分辨度(看不清)

center_image

最常见的就是颜色十分接近

如果这张图是背景,会是一个很好的点子

但如果是画笔打印的或者提示性信息

这就是一件十分糟糕的事情(我看不清写的啥啊)

 

2.操作空间狭窄(挤一堆)

如果你定义的操作空间如下

center_image

在某处时,你会误操作(做了我不想做的事)

所以非常有必要留一些空间

center_image

如果你想定义一个可视的操作空间:

试试加入半透明的 触碰域角色

是一个明智的抉择(易于管理)

center_image

3.低变通性(一个任务执行后不能更改,必须执行完后改变)

center_image

这是一套非线性大小变化积木

跳跳执行center_image

但是某处出现了问题(鼠标点又放,中间会卡上一会)

怎么解决?

这是很多人都没注意的一点

其中center_image

这一块积木是完全没有必要的

因为:按下和没按下的效果是持续

你没按它,就是一直是没有按下(状态)

你按下了它,在你按下到放开这个期间里你按下了它(状态)

这么说重复执行40被触发了多次

按下到放开,多个特效变化的任务相互阻拦,直到40次执行完

如果我们换成这样的center_image

仅执行一次

跳跳在鼠标放开·时变到70

按下时120

中间没有卡顿

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

整洁的布局是一个非常重要的习惯

 

2-2* 风格

你要制定一种属于自己独特的风格

可以仿照别人但不可搬运

你需要抓住脑中闪过的第一想法--那往往是最特别、完整、妙的点子

然后慢慢搭建

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

3.前期设计&后期维护

bug,漏洞,问题

总是是不是出现、

实在是难以避免

 

我曾听说“积木太多不好”

其实根本没有这回事

 

3-1 习惯

整理积木应该是每位kitten/nemo/其它图形化 创作者的必有的习惯

设计除了灵活实用,还要注意化简

冗余步骤是不应该的

这可以减少运行消耗

尽管你电脑多么N*

卡都感觉不到

10年老电脑直接看穿()

简明直接的积木是喵的(谁都看得懂)

少量注释也是

 

3-2 纠错

知道“断点”吗

在程序某处设置“断点”,当程序执行到断点则停止

出现bug时从底部拆积木,一点一点拆

直到发现正常部分

更改下一串积木再尝试

直到全部正常

嘴里念一会兴许有助于逻辑检查

bug纠错就像“找不同”

所以不要抗拒bug。

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

作者:quast

用时:(48h+)2h+2h

编写日期:.23.1.1~1.2

字数:????

禁言中不能在论坛/工作室回复

若想评论可到我作品任意处讨论

 


回复

上一页1 页 / 共 1下一页
灿烂星河之九天灿烂星河之九天

……留言收藏一下……

点赞0


评论


CHZSMGTTCHZSMGTT

wow好难,函数的那一部分有些晕呢

点赞0


评论


无敌版滑稽战神无敌版滑稽战神

我的天哪!!!(((

点赞0


评论


迷茫的章鱼迷茫的章鱼

看之前:聊天室不挺简单的吗

看完后:阿巴阿巴阿巴阿巴阿巴

点赞0


评论


飞跃的流星丨冲四千粉飞跃的流星丨冲四千粉

颠覆了我对聊天时的认识

点赞1


评论


ENEMyENEMy

看教程之前:哥们儿,你这教程有问题啊,高级聊天室谁不会啊

看教程之后:我不牛*啦,啊?给我机会我不中用啊!

点赞1


评论


编程滴羊编程滴羊

虽然我给你:

emotion_编程猫_点赞

但是我现在的心情是:

emotion_编程猫_伤心

(完全看不懂)

点赞1


评论


函歪函歪

虽然你很厉害,emotion_编程猫_点赞

但我30%看不懂。

……………………

点赞0


评论


小鲸鱼qwq小鲸鱼qwq

emotion_编程猫_点赞

点赞0


评论