发现shopee今年还是挺火的,招的人也挺多,但是面经很少,所以记录波,有需要的看下。
|一面(视频面)
1.自我介绍
2..单向链表输出倒数第K个元素
3.看代码输出结果(考察变量、函数提升)
4.看代码输出结果(考察异步代码先后顺序)
5.手写instanceof关键字
6.手写Promise
7.react中为什么不能在for循环、if语句里使用hooks, 说下react hooks实现原理。
8.说下react fiber。
9.看你之前做过RN开发,说下RN的原理。
10.说下输入一个ur|地址的全过程。
11.http的缓存策略。
12.说下https,证书是如何校验的?
13.说下http2,你觉得阻碍http2发展的问题是什么? (这题后面的问题挺有意思, 可以网上搜下答案)
14.算法题。跳格子问题,假设一次只能跳- 个格子和两个格子,N个格子有多少种跳法?
二面(leader面)
1.自我介绍
2.为什么要离职?
3.对你的项目经历中RN做的app挺感兴趣的,你能详细说下这个项目吗?
4.RN中原生和js端是如何通信的?你说后面使用JSI了,你能说下JSI的实现原理吗?
5.如果要你对这个app进行性能优化,你有哪些办法(面试官问了三次还有其他办法吗? )
代码层面,按照react的优化,减少re -render次数。图片加载用react- native-fast-image,页面初始化的逻辑使用InteractionManager.runAfterlnteractions。去掉无用的View层。
进行分包加载,启动时只加载启动页面bundle,二级及更深页面等访问到再加载。一些复杂的控件, 写原生模块,比如日期选择、下拉选择、 级联、播放器等。
6.你们的RN热更新服务是怎么做的?热更新原理是什么?你们的热更新策略怎么做的?
客户端用的微软的code-push,服务端用的code-push-server。
热更新原理就是app每次启动会请求热更新服务器,对比下本地bundle版本和服务器的bundle版本,如果版本不致, 就会根据配置的更新策略下载、更新bundle,然后 重新reload bundle.
我们就是在检查到新的bundle后,会弹窗强制更新。
7.设计-个RN热更新服务,需要考虑哪些地方?
bundle体积大的问题。打包的时候需要进行分包,使用增量更新,减少下载体积。用户的网络不稳定、网速差问题。需要用CDN加速,支持断点续传。
安全性问题。
bundle被中间人劫持篡改。使用https 下载,并按照https的加密思路,对bundle用hash算法进行签名,然后app端检验签名是否被篡改。
bundle'下载地址被暴力攻击。检查User- Agent只允许手机设备下载,记录设备id,在一定时间内限制下载次数。
8.你有什么要问我的吗?
| HR面
就一些简单的问题,这里就不说了。到hr面,基本都能过。
I总结
整体难度一般, -面没有区分度,感觉-年经验和五年经验都是一样的。 二_面不错,对项目进行了深挖,考察了架构设计。问的问题偏向于RN,最后进来也是做C端的RN开发。
在shopee的工作体验确实轻松,不卷,但是过于轻松,又担心自己的产出。差不多就这样吧。大家自己看一看我写的面经,或许有所帮助吧。
以上就是本次分享内容,更多大厂Shopee工程师面试经验持续关注六星社区。
想要高效学习,指路微信公众号——【python编程学习圈】每日分享学习干货,关注即可免费领取整套Python零基础到入门资料及学习教程,走过路过,千万不要错过!!快行动起来!!
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!