百科问答小站 logo
百科问答小站 font logo



知乎公司的测试工程师的待遇有多差? 第1页

  

user avatar   Hentioe 网友的相关建议: 
      

我还想问下知乎前端工程师和后端工程师矛盾有多大呢。

后端数据不一致,导致前端拼命的向后端发请求,十来分钟发了上万个请求。

你说这到底是前端坑后端还是后端坑前端呢?多大仇啊?


—— 被大 V (何师俊)点赞了,惊恐。特来更新一下这条回答:

知乎在请求个人页面的列表数据(包括粉丝、关注人、关注话题等)时,会判断响应数据中的 "is_end" 和 "data" 字段。

上面那个现象是 is_end 为 false(后端告诉前端不是最后一页),但是 data 数据为 [] (空数组),前端可能认为是后端一时的系统错误未取得正确数据,所以会继续请求,直到 data 不为空为止。

这个现象知乎新前端以来很早就这么干了,前端有可能会发多次请求,确保数据正确绑定。

但是愚蠢的地方在于,后端响应了错误的数据,明明已经是最后一页了, is_end 字段应该为 true 但是偏偏返回的是 false,然而并没有数据。但是前端应该是觉得这俩字段怎么不一致(你既然告诉我不是最后一页就应该有数据啊),然后不断的重复请求数据,陷入死循环。

我注意过这个 BUG 一段时间,最初是非常夸张的并发请求,所以能在几分钟请求数万次。

过了一段时间,请求变成排队处理,一分钟也就发个几十次。

现在又看了下,前端已经彻底完善了这个问题,但是后端的数据仍然是不正确的。

——— 造成后端数据错误的原因:

这个页面其实就是我的小号:知乎 - 知乎 的关注问题列表,我的小号是由自己写的 知乎 Robot 程序运营的,当时开发中难免要测试,于是短时间内关注相当多的问题(好像是六七千以上),然后又在极短(几十秒以内)时间内取关了所有的问题!

如此快的数据更新,可能造成了知乎后端的缓存和真实数据同步不过来,然后数据就一直不一致下去了。

具体就是:在我小号的关注问题列表的倒数第二页其实就是最后一页了,但是仍然会有下一页(后端 is_end = false)。

当时我记得个人页面的计数数据好像都是错的... 现在由于动态一直在变 也不知道是不是仍然是错误的。

最后:

我没有恶意利用和测试任何 BUG 之类的,我只是为了知道知乎可能存在的对 API 调用的限制,稍微暴力了点,这对于开发机器人程序是必须的,因为程序会自动调用 API,要尽可能知道知乎对访问频率的最高限制。

当然对于一个有极其庞大数据量的知乎,这样微小的测试居然都导致他们系统 BUG,能存活到现在真是有点不容易啊。




  

相关话题

  怎么评价程序员35岁了还在撸代码? 
  作为一名 IT 技术牛人是一种怎样的体验? 
  中国的程序员为何开发不出来像spring一样优秀的框架? 
  在中国年薪 30 万人民币和在美国年薪 10 万美金,生活水平上有没有什么区别? 
  格力未给员工足额缴纳公积金,董明珠曾豪言要分房用不上公积金,这种观念值得提倡吗? 
  C#中,形如 Base<T>是父类,那么子类A:Base<A>这种操作有什么规范? 
  腾讯员工入职满 15 年可解锁退休福利,企业在员工退休养老方面该起到怎样的作用?其他大厂是否会跟进? 
  优化代码中大量的if/else,你有什么方案? 
  天职国际会计师事务所明年 1 月 1 日起全员涨薪 30%,审计从业者的春天要来了吗? 
  那些被裁掉的大龄程序员,为什么不联合起来成立一个专收大龄程序员的公司? 

前一个讨论
如何看待兄弟成家后,家中的女儿就成了外人?
下一个讨论
【校招面试】关于Typescript和ES6的对比?





© 2025-03-30 - tinynew.org. All Rights Reserved.
© 2025-03-30 - tinynew.org. 保留所有权利