tme秋招前端面经
全民K歌
居然是面实习的面试官,真巧
2021.9.6 11:30 ~ 12:00
PS:加粗的都是本人觉得答不太好的地方
自我介绍
- 实习期间剧集列表服务端渲染怎么做的优化,用了什么技术?
- 为什么不直接服务端首屏拉取所有数据?
- domfragment用在哪里?
- 配置化广告去除优化80%,优化的数据是哪来的?是体验来的吗?
- 怎么做的配置化?
- 聊天项目中的websocket怎么建立连接的?
- 为什么websocket要依赖http建立连接?
- http怎么实现长连接
- http2.0 http1.0 区别
- 看你项目用了jwt,讲讲他吧
- jwt和cookie的区别
- 你刚刚说jwt难被踢出登录,怎么才能解决token难以被踢出登录态的问题呢?(乱说,建立一个认证中心,统一处理)
- 你刚刚说的cookie有安全性问题,讲讲安全吧
- xss和csrf原理
- 如何防范xss和csrf
- 跨域cookie能携带吗?
- 除了withCrenditial还需要在header做什么处理才能携带cookie?
- JSONP跨域原理讲讲
- CSP有了解过吗
- 为什么聊天项目用go做后端?
- 有考虑过go和nodejs的取舍对比吗?(无)
- weakmap是什么,了解过吗(不会)
- docker打包静态资源该怎么做?
- docker分层(经典,跟实习面试一样又问这个问题,看过但是忘记了)
- 词法作用域,面试官看我听不太懂,就让我说js执行的作用域是怎么产生的
反问:
业务做什么 ------ 全民K歌
团队多少人 ------ 二十多
2面2021.9.8 11:45 ~ 12:10面试官挺迷的,我都没有用过混合开发的技术,还一直问,最后还过了就离谱
自我介绍
- 实习难点,做了什么
- hippy原理 (乱扯jsbridge ,webview)
- RN和hippy区别 (没用过不知道)
- flutter用过吗 (无)
- node.js用过什么框架,讲讲
- vue data为什么是函数模式?
- TCP3次握手,为什么是3次
- 安卓和ios底层开发了解过吗(无)
- 开发时移动端抓包工具用过哪些?
3面2021.9.8 21:00 ~ 21:35
自我介绍
1. 实习用服务端渲染做了什么?详细说说?
2. 剧集列表这一块,除了用服务端渲染,还做了什么别的优化 ( DocumentFragment, 剧集阈值设计,分页处理 )
3. 你这优化30%,使用什么统计出来的?
4. 服务端渲染这块用node做的吧?说一说同构直出操作
5. 你觉得node适合做服务端渲染吗?
6. 你觉得node除了适合服务端渲染场景,还能用在什么场景(中间层cgi包装请求数据,处理一下数据格式再返回给前端)
2. 剧集列表这一块,除了用服务端渲染,还做了什么别的优化 ( DocumentFragment, 剧集阈值设计,分页处理 )
3. 你这优化30%,使用什么统计出来的?
4. 服务端渲染这块用node做的吧?说一说同构直出操作
5. 你觉得node适合做服务端渲染吗?
6. 你觉得node除了适合服务端渲染场景,还能用在什么场景(中间层cgi包装请求数据,处理一下数据格式再返回给前端)
7. 场景题:假如腾讯视频又一亿个视频,一亿个用户,需要你统计每个用户播放视频次数最多(一个视频一个用户观看次数只能+1),并实时生成一个播放视频数最多的TOP100排行榜展示给前端页面渲染出来,你想想如何设计?
答:给用户生成唯一的userid/设备id,用一个对象把id和count播放数存起来,给每个视频 flag 处理一下,只允许某位用户计算一次该视频,然后通过websocket协议与服务端实时通信传输数据。
8. 你这块主要说的是前端以及协议方面的设计使用,对于这种大量数据服务端你想想怎么排序优化处理?(没答好,大概类似一亿数据怎么样最优取TOP100)
9. 那我们换个角度,来说说像js,java或者go,这里面的sort是怎么处理的?(我说了说js里的sort会根据不同的数据量大小选择快速排序和插入排序,说了一下两种排序的复杂度)
10. 你刚刚提到websocket,他和http的区别又是什么呢?(扯长连接,服务端主动推送,实时性,扯http1.0 1.1 2.0)
11. websocket基于什么协议实现?
12. 实习主要也用的vue吧?拿来问问vue的东西。
13. vue MVVM
14. vue 数据绑定原理
15. vue diff 虚拟dom详细说说
16. 我这边没什么问题了,平常有什么爱好吗?( 听听歌~ )
17. 对哦,看你简历也有做音乐类项目 (然后又开始聊起音乐项目来了)
11. websocket基于什么协议实现?
12. 实习主要也用的vue吧?拿来问问vue的东西。
13. vue MVVM
14. vue 数据绑定原理
15. vue diff 虚拟dom详细说说
16. 我这边没什么问题了,平常有什么爱好吗?( 听听歌~ )
17. 对哦,看你简历也有做音乐类项目 (然后又开始聊起音乐项目来了)
18. 讲了讲自己做歌词实时滚动这块的思路,问有没有什么更精确的方案?
答:你这块其实没什么大问题,因为每一句歌词都不可能精确到毫秒级,所以会有一点的误差,如果是逐词高亮展示就准确了 。
19. 这里你主要是要去想想实时滚动的性能问题,怎么去优化?或者找一个手段去准确衡量歌词滚动的性能?你这块监听audio的回调函数设置的多大时限?
答:这块我回答可以用requestAnimateframe去优化滚动渲染不卡,然后performance API去判断性能,时限设置的50ms。
20. 这50ms可能也会有些不准确,页面渲染卡顿问题,最好去深挖一下衡量性能的指标哦,虽然performance也可以。
反问
你对我新人的一个学习或者提升自己的建议,是多看书好还是多去实践项目好?
二者结合吧,做项目的途中有些优化手段,bug都要记录下来去深挖,不会的话去查查书本也不会太枯燥,比如你那个音乐项目,可以回去再优化,找个衡量性能的确切指标,不要用肉眼去判断,再想想能不能把播放组件抽离出来,让别人都可以复用,以及可以去研究研究流媒体数据,这对你的提升都是巨大的
后续
2021.9.24 hr面 hr说由于架构调整啥的,k歌没hc了,我被转到商业化广告部了,hr还说商业化年终奖多哦~
2021.9.29 收到意向