一面(过)
1、自我介绍
项目问题:
1、 CI/CD流水线,前端部署,和k8s相关流程是怎么样的?
2、 echarts如何处理大数据量?
(1)采样
(2)服务端做成图片
3、 AI平台如果你作为用户,你会怎么使用?
4、 无埋点方案是怎么实现的?
5、 Sentry系统,如何做实时跟踪的?
6、 jquery + vue2 怎么升级到 react的?
技术问题:
1、 如何获取function中参数的最后一个参数的类型?
2、 如何获取function的返回值类型?ReturnType怎么编写?
3、 interface和type有什么区别?
a) 定义:interface定义对象/函数,type定义任何类型
b) 扩展:interface可以使用extends,type可以使用&
c) 合并特性:interface可以多次定义会自动合并;type会报错
d) 支持的类型:interface不支持联合类型、元组、基本类型;type都支持
4、 useMemo和useCallback的区别?什么时候使用,什么使用不用?
a) useMemo:缓存计算结果;只有大数据量才使用(如filter、排序);少量计算不能用,反而增加开销,因为useMemo需要对比、需要缓存,会导致性能更差。
b) useCallback:缓存计算结果。
5、react 18版本和19版本有什么区别?
问面试官: 1、公司/团队的业务:泛娱乐的公司,团队做中台/活动的前端团队。
2、 工作地点:深圳。
---》几道技术题几乎没有答上来,竟然让我过,很意外!!!
二面(挂): 1、 自我介绍。
2、 前后端都做过是么?后端主要负责什么?
3、 RAG流程是什么样的?
a) 为什么要做embedding?
b) 如何保证语义搜索的准确度?(混合检索)
c) embedding之后为什么就能表示语义了呢?!(被问住了!!!)
d) 这里你怎么没有介绍OCR?
e) RAGFlow的deepdoc模型,为什么比OCR更好?!-(答:可能是因为深度学习模型的原因?!!)
4、 全埋点方案 是什么?
a) 没听得很明白,重新组织语言说一次?
b) 如果是弹窗怎么办?怎么定位到弹窗中的元素呢?-(使用antd的modal特有class确定)
c) 这种方案是不是有点trick?
5、 虚拟列表怎么实现?为社么会一次性请求那么多头像呢?
a) 另外就是如何计算我需要滚动到什么位置?比如现在是100个头像位置,我怎么知道滚动之后要定位200个头像的位置?- (答:根据scrollTop属性!)
b) 你没明白我的意思:我的意思是你怎么知道一共高度有多高?-(答:有total字段,根据固定的头像高度可以计算!)
c) 如果是不固定高度的列表怎么办呢?(被问住了!!!)
6、 了解Dify的workflow吗?-(答:了解)
a) 说说如果让你来设计,要怎么做?
b) 如果是一个可以循环的图怎么办?怎么防止它死循环?-(答:可以设置超过多少次循环之后退出)
c) 你的回答,感觉不是很好!有更好的方式吗?-(答:这个是我能想到的方式,workflow的设计就是需要允许循环的。LLM第一次的输出,不一定就符合预期,在这种情况下,就需要循环执行workflow,直到拿到符合预期的结果为止!如果使用图原理中,防止它循环的方式,其实不符合实际业务的需求。)
7、 langgraph了解吗?-答:了解,也使用过。
a) 你使用的是python版本还是TS版本? - (答:TS)
b) 为什么?你做前端,为什么要使用python来做?
c) 为什么langchain/langgraph会提供ts和python两个版本?- (答:都是解析性语言;属于应用层框架,增加框架的受众!)
d) 看起来你对AI很感兴趣?- (答:是的,因为也是未来的趋势,现在的工作也和这个相关,也需要了解LLM相关的知识,作为和业务可以毫不相关的前端,从langchain框架入手,可以让我更了解LLM,更清楚知道自己做的前端模块到底是做什么用?!)
e) 但是你面试的岗位是前端岗,和AI无关!你不介意吗?- (答:也是想往前端架构方面走,也是可以接受的。实际内心:我没啥面试机会,有机会的我都面面看!)