字节面试题:在线表格功能怎么实现?怎么测?

最近有小伙伴私信问我怎么不更新了,期待更新,甚是感动。

简述下自己近况:

还在干测试,最近忙活的事情大概是自动化测试、性能测试以及业务等等,主打一个啥活都干。
业余时间,尝试在短视频赛道搞一些个人兴趣领域的创作,所以博客不太更新,想分享的东西还是有的,后续仍然会记录一些工作心得,感谢新老盆友的关注!

正文:

前阵子看到老张写的关于面试的文章,我突然想起来,我多年前面试字节时候,遇到的一个面试题,关于如何测试用例的。

印象中好像第一次参加字节的面试,也没刷题练习,所以开始的算法题就没做好,导致后来的表现都不太好,所以这个设计用例的题目,也没回答好;

今天当做是重新归纳总结一下。

一、面试题

面试官问是否用过在线表格之类的功能,知道这种功能系统背后是怎么实现的吗?如果让你测试在线表格,你怎么设计测试用例?

我当时的作答就不赘述了,如果现在让我重新作答,我大概会这样说。

二、关于系统实现

涉及到支持多人实时操作一个文档,其实背后大多是基于WebSocket协议来实现,而不是我们最熟悉的http协议。就像是即时聊天工具。

WebSocket 是一种协议,它允许客户端和服务器之间进行双向通信,非常适合实时应用。

我们通过浏览器打开在线表格,就会跟服务器建立一个持续通信的通道。然后我们在表格里做的一个个操作都会发送到服务器,然后服务器再把这些操作传给其他一起编辑的用户。实现实时更新功能。

但是这种功能有一个特别重要的问题要处理:解决冲突。

具体处理算法咱就不知道了,反正核心思路就是要把不同用户的编辑操作进行整合,来确保最终的文档一致。

从用户体验上来讲,可能还会涉及到本地缓存的设计,保证用户编辑后的结果在自己界面上是实时显示的,然后再将这些操作同步到服务器,当碰到网络波动或者延迟的时候,用户感知也不会很明显。而且用户就算断网了也不怕编辑的数据丢失。

从提升性能、降低成本角度来看,端上与服务器之间的通信,传输文档应该也大多使用差

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值