9.17虾皮二面(已挂版)

深挖项目+一些八股+手撕2道

1.研究方向是人工智能,为何转到/学习前端?

2.实习经历写的node微服务中间层主要是干什么?
(我提到了协议转换,因为实习的bff项目对接后端那边的grpc服务,对前端暴露rest api端点)

3.所以你认为中间层的职责边界是什么?仅作为一个协议转换吗?
(我提到了接口编排,比如前端在某个功能上需要调用后端多个接口时,可以直接在bff中做一个整合,只返回给前端一个接口,这样前端的复杂度也能降低,这个想法是之前在研究实习的项目时问ai得到的,实际上实习的时候也没做接口编排,这部分答得不好,我对bff项目的价值和了解太浅了,仅限于我自己的那部分dirty work)

4.对node微服务的复杂度有什么处理吗?需要考虑哪些异常场景?或者是怎么解决的?就是如果以聚合api的调用为例,这个过程中可能遇到哪些异常场景或者是哪些你认为需要关注的点?
(真的不会回答,因为真没做过接口聚合,我猜测可能会跟异常和错误的处理有关)

5.是不是意味着一个接口出错了,整个过程就中断了?
(我提到可以做重试,可以设定一些重试规则,比如网络错误,满足规则就可以发起重试,避免某个接口出错就直接报错,尽可能使得接口能成功返回响应,感觉我的回答还是太浅了,但是的确就是只知道这一点orz)

6.从前端服务的一个可用性来看,就是我们尽可能的满足它的一个可用性,那么在这种聚合的场景下,有没有什么办法尽可能满足它的可用性?数据影响范围应该尽可能的小,不能因为一个接口出错,整个服务都不可用,对吧,那么针对这个有什么考量?哪些可以聚合,哪些不可以,聚合的原则是什么?(理解到面试官意思了,但是我答得不好,描述很混乱,我的大概理解是聚合的原则必须是前端请求的数据之间关联性很强,但是不会回答,也不知道如何描述,并且只知道这一个点)

7.你这里的重构请求层是什么意思?为什么要重构?(这里我脑子昏了头了,回答成了在简历中写到的另一条工作,我傻了orz)

8.前端有哪些性能指标可以关注?(我答了FCP、LCP)

9.这都是基于开发过程的性能表现,那如何知道在用户的真实使用情况?(不会答。乱答的)

10.生产环境怎么感知用户性能或者错误问题?(我回答听说过sentry,但是没用过,不知道怎么用orz)

11.ai辅助编程用的多吗?用的什么?会深度集成使用还是做提示?(这种问题怎么回答才能显得我既能使用ai提升效率,但是又不是完全依赖呢?搞不懂orz)

12.你之前做过深度学习,那你知道为什么ai会容易忘记上下文?(上个回答提到这点,但是实际上我做的不是深度学习啊orz,所以也是乱答)

13.有用过mcp之类的工具吗?(没有orz)
14.前端的同源策略,跨越的处理?
15.简单请求和复杂请求的区别?
16.webpack和vite在开发、生产模式的区别?
17.esm和common js的区别?
18.import在esm中是个引用对吧,那编译时怎么实现的引用更新?最正构建出来的产品怎么实现的es特性?
19.实现map(最开始用对象,发现不对,因为对象的键不能像map那样支持多种类型的变量,最后用的2个数组实现,但是写的过程中磕磕绊绊,暴露了短板)
20.图有关的算法题(图,在此之前没刷题,因为总觉得不会考,没想到还是很重要的,最后还是暴力写了,不过写的还是有问题,其实后来发现也很简单的题,dfs就行
#我的求职进度条##面试问题记录#
全部评论
大佬,是面试完几天后知道挂了的呀
点赞 回复 分享
发布于 11-02 01:43 重庆
瑟瑟发抖
点赞 回复 分享
发布于 10-20 15:57 广东

相关推荐

一面 1.自我介绍,为什么学习前端,平时用哪些AI,怎么用,感觉用ai有什么好处,了解ai幻觉吗,平时有没有遇到过,如何解决。了解prompt吗,如果ai表现不好会怎么做2.实现两栏布局 答了flex grid 和绝对定位,问flex具体如何实现3.浏览器访问网页的过程4.普通函数中在定时器里输出this指向5.关于项目的提问,如何实现弹幕滚动,动画什么实现(rAF),和定时器比较优势在哪,ts使用有什么好处,如果不符合ts类型会在哪里发生错误(编译时还是运行时)前后端字段不统一会在哪里发生错误6.包管理工具哪个用的多(pnmp),有什么优势package.lock有什么作用,为什么会发生包安装了不可用或冲突7.使用哪个框架多,为什么组合式api和options比较有什么优势什么时候需要使用ref使用框架实现一个功能点的流程,组合式api如何使用?(记不太清了)8.如何实现路由鉴权token前端有加密吗(没)http和HTTPS区别,详细解释非对称加密9.手撕 买卖股票的最佳时机③ 有效的括号 手写eventEmitter(选做)二面:拷打项目,如何通过token辨别是哪个用户,jwt原理,反转对象键值对,如何区分对象和数组,辨别数组方法,遍历二叉树最大值非递归,promise的输出new promise(resolve,reject)=>{log(1)resolve(true)log(2)throw new err(‘err’)log(3)reject(false)}.catch(err=>log(err)).then(res=>log(res))二面太紧张了,简单题没打上来😭还是基础不够扎实,感觉准备充分点还是有机会的
发面经攒人品
点赞 评论 收藏
分享
评论
1
8
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务