前端 3 年经验,基本上都是 toB 项目
第一次跳槽,上周去面了一个中厂,有点类似于东软这种软件公司,给的并不是太多
招聘信息上的每一条我都符合
自我介绍后,上来就问网站上线后请求错误收集都是怎么做的?
实话实话,所以对于这一块只知道需要埋点或使用第三方服务,并没有做过具体的也不清楚,就如实说了,又补充了一下思路和 http 状态码这些,感觉对面不是很满意
然后又问前端的高并发经验
我就说了一下常见的前端优化八股,减少请求等等,确实没有遇到过前端高并发的场景。。。然后就说看你都是用 ssr 框架,你不知道 ssr 框架会给高并发服务端增加负荷嘛?到这我就有点懵了,就说有 seo 需求才选的 ssr ,感觉对面不是很满意
之后又让我背了 tsconig 选项,背了后又问平时怎么配置的。因为不写库,脚手架生成后很少去配置这个,顶多是忽略文件这种,所以感觉对面已经失望了。最后结果自然是凉。
印象中面试不是八股就是基于项目问,如果不基于项目,我感觉起码要先问问面试者接触过没有吧?难道现在都是上来就问怎么做?
整体面试感觉很糟,自己比较拿手的部分一个没有问道,被问到的都是没有接触过的,不知道是自己太菜准备不足,还是面试官有问题
1
heyhumany163 2023-03-06 09:41:23 +08:00
错误收集这边现在用 sentry 比较多,你可以大致说一下都是基于事件去调用后端 api 收集的。用的 ssr 框架应该都是基于 node 的吧,node 异步以及事件机制天生对高并发有优势。ts 选项大致说几个,就算记不得也可以说一下选项的作用吧。感觉这些问题都是比较开放的问题,应该能说一点点吧。
|
2
kqxianren 2023-03-06 09:41:52 +08:00
非前端, 不懂就问, 前端的高并发场景是啥😂
|
3
ChefIsAwesome 2023-03-06 09:46:10 +08:00 29
不用想太多,技术面试就这样。他问你的东西,搞不好是他三天前才学会的。进不去就换其它家。对面那个面试你的,搞不好也正准备跳槽呢。
|
6
Trello 2023-03-06 09:47:35 +08:00
别的不说,现在面试连 tsconfig 配置都要背了吗?一般都是默认生成,然后需要啥后面再补,没想过去记。。
|
7
dzdh 2023-03-06 09:47:50 +08:00
同#2 ,前端高并发的场景是啥
|
10
stillsilly 2023-03-06 09:51:04 +08:00
换一家
|
12
Chad0000 2023-03-06 09:53:20 +08:00
前端高并发?
警告用户不要共享他们的电脑给别人用,每次一人使用。 |
13
hhjswf 2023-03-06 09:53:34 +08:00 via Android
一般来说,问到了你简历没体现的内容,说明这很重要,回答没做过,也是扣分。jd 都是 copy 的当不得真
|
14
anguiao 2023-03-06 09:54:11 +08:00
不对味就换一家,面试也讲究一个缘分,不必强求
|
15
kqxianren 2023-03-06 09:54:31 +08:00
@ChefIsAwesome 甚至他也不会, 上次面试, 问了个属于既要又要的实现方案, 按我理解应该无解, 我问他有什么方案, 他说我们也还在研究
|
16
Kenmin 2023-03-06 09:55:03 +08:00
手搓 tsconfig 惊到了
|
17
azui999 2023-03-06 10:00:27 +08:00
高并发?
发的请求太多,加同步,让它一个一个执行. 用户频繁操作,加防抖节流, 还能有啥,用户闲的一直在 f5 么.那也没多快 |
18
NoString 2023-03-06 10:08:10 +08:00
后端高并发 前端做什么?静态化 cdn ?限流请求合并?扩容加负载均衡?这没场景上来就硬高 真感觉不好回答 只能说没缘分 没必要难过 继续面起
|
19
hzxxx 2023-03-06 10:13:00 +08:00
建议 OP 放出自己当时面试的简历
|
20
BUHeF254Lpd1MH06 2023-03-06 10:15:16 +08:00 1
说下 SSR 高并发,前端能做什么,可能场景不太一样。
我们使用的 node 服务和 react-ssr 渲染,我们这块的方案是高并发时候就直接吐回 html 模板,不进行服务端渲染了,也就是由 SSR 改为 CSR ,渲染这部分交由客户端去做,这样可以节省服务端很多压力 |
21
czy5997 2023-03-06 10:27:04 +08:00
面试官是不是没问题了,为啥要被 tsconfig ,下一步是不是要背 package.json
|
22
mnoputd20adfadf3 2023-03-06 10:27:28 +08:00
可能 ~
你不是他的菜 |
23
zhaol 2023-03-06 10:32:08 +08:00
你反问他 eslint
|
24
misaka 2023-03-06 10:35:50 +08:00 via iPad
面试是双向的,不合适就换一家
|
25
yaphets666 2023-03-06 10:35:53 +08:00 1
异常收集,说白了就是线上的监控呗,可以部署开源的 sentry ,Sentry is a developer-first error tracking and performance monitoring platform that helps developers see what actually matters, solve quicker, and learn continuously about their applications.
tsconfig 这个不予置评 高并发这个,这个就扯淡了,并发多服务器压力肯定大,在服务端渲染当然要消耗服务端的性能,这有什么可讨论的,有什么可问的呢?不懂 |
26
Loserzhu 2023-03-06 10:37:29 +08:00
@v135ex 你好,我们也是 ssr. node + ejs + react-ssr. 高并发我们没啥问题。但由于 nodes 非常多,到浏览器上 hydrate 非常耗时,lighthouse TTI 打分很低。正在进行 api 拆分,准备 load on scroll ,想到的一种改为 csr 思路:直接判断下 if(ssr)return null, 否则 render page component 。这样会不会太粗暴了。
|
27
uiosun 2023-03-06 10:37:32 +08:00 2
正常的面试,你可以反问面试官,以:
1. 这块我不是太擅长,能请问一下您对这块的大致理解 /解决方案吗? 2. 以自己 /或对方提到的某一个点,结合他的问题去反问。 3. 以 JD 实际需要为模板,请对方简单描述这个问题能带来的生产价值。 这都是合情合理的。 正常来说,只是技术和 JD 有差异,不用太放在心上(如果你很感兴趣,可以自行研究补充这块的技能点)。上面的说法是“他如果很需要这块”,也有那种半瓶水晃荡的面试官,上来一通输出,你反问发现那是真的……他自己也不清楚答案(甚至遇到过我的回答是 MDN / GithubOffialRepo 的标准结论,他认为不对,反而很有主见的给我他自己的理解,当时给我整懵了) |
28
picone 2023-03-06 10:38:52 +08:00
ssr 还能优化首屏时间。
ssr 使用 node 渲染速度很糟糕,他应该是想问你这个 |
29
RealJacob 2023-03-06 10:44:25 +08:00
监控应该就是想问你实现的通用解决方案吧,sentry 这种,应该也不是要问你 sentry 实现的逻辑。
|
30
sbex 2023-03-06 10:55:36 +08:00
KPI 面,理解下人家
|
31
dashBit 2023-03-06 11:01:35 +08:00
jd 上除了学历要求 /年限要求,其他基本都是复制黏贴的,个人感觉
|
32
BUHeF254Lpd1MH06 2023-03-06 11:17:19 +08:00
@Loserzhu 我觉得还行,只能说可能会有更优雅的实现方式(我也不知道)。反正核心思路肯定没问题,只生成首屏所见的部分,其它 nodes 交给浏览器绘制。我也用过你这种方式,不过 react-render 会抛出一个 warning ,不影响不过。如果你找到了更好的方案,也可以分享一下哈~
|
33
YNaN 2023-03-06 11:18:30 +08:00 2
感觉大概是你简历或者介绍提了某些关键词,正好是他们的技术方向,然后他以为你提的词是以前你技术栈深入的方向想深挖看看是否符合实际,没想到基本是调库实现就结束了。
小问题,主要还是面试官背大锅,没处理好自己的提问思路由浅到深,面试讲究缘分 |
34
Pastsong 2023-03-06 11:20:42 +08:00
前端讲不讲高并发要看 你把不把 SSR (或 BFF)当前端
|
35
jklove123bai 2023-03-06 11:32:43 +08:00
感觉算那种八股文吧,人家也不一定要招人的。。
|
36
RoshanWu 2023-03-06 11:57:35 +08:00 3
> 网站上线后请求错误收集都是怎么做的?
前端对于错误的收集可以分为好几类:1 、js 语法错误; 2 、资源请求错误; 3 、Promise 错误; 4 、http 接口请求错误; 5 、Vue 和 React 等自身库的错误。这里面试官的意思是针对 4 、http 接口请求错误么? 如果是的话,其核心思路是对 http 请求的捕获手法探讨,无非是类似像 Axios 这样的请求库中 Interceptor 的思路,对请求和响应做对应的一些拦截处理吧。继而再到收集信息发送上来,上报方式可以采用比较新的 api:sendBeacon ,能够阐述它与传统的上报方式有何优缺点更佳。 拦截请求的方式分 fetch 和 XMLHttpRequest 两种,简单的伪代码如下,你也可以稍微口头描述一下思路: [Imgur]( https://imgur.com/1JAYyJp) |
37
wangyzj 2023-03-06 12:49:34 +08:00
来
手撸一个 lint 配置吧 |
38
guokeke 2023-03-06 13:56:03 +08:00
ssr 也可以把页面缓存啊,又能增加多高的负荷啊
|
39
sunwang 2023-03-06 14:02:16 +08:00
背 tsConfig 选项。。。离谱
|
40
buffzty 2023-03-06 14:43:06 +08:00 1
第一个的答案是 sentry,他是想看你之前做的项目是不是要求很高,企业级项目都是要用这个的.
第二个 应该是让你说 防抖和限流,还有批请求 比如凑到 xx 字节再发送,多少秒打包发送 这种. 前端的高并发就是减少请求. |
41
iOCZ 2023-03-06 14:48:39 +08:00 1
现在都是同构渲染,首页 SSR ,其他页面 CSR 。全部 SSR 的话,就是多页面应用,服务器负担比较重。单页面的话,可以只 SSR 一个,后面的路由都可以 CSR 。
|
42
wuxidixi 2023-03-06 15:11:56 +08:00
错误收集最简单的就是 sentry 了吧,直接用提供的插件
ssr 就使用缓存策略 实在不行就扩容 |
43
xylitolLin 2023-03-06 15:20:52 +08:00
问配置的都是离大谱
|
44
qiaobeier 2023-03-06 15:29:45 +08:00
错误收集其实非常重要。国外很多工具,前端的主要是 crashlytics ,clarity 啥的,当然自己也需要写一些工具。高并发反而不是很重要,这方面更多是灵活应变。
|
45
jamosLi 2023-03-06 16:08:11 +08:00
错误的话:
sentry 是一个常用方案,还有其他很多类似的厂商比如阿里云 arm 之类,自己可以做 js error 拦截在配上接口。收集的时候可以用阿里云日志收集,也可以加自己日志系统,因为错误信息都是非结构的,塞到日志系统里容易查看。 高并发的话: 主要就是 cdn ,剩下就是负载均衡,但是这样你这样就会增加机器,一个很好的方式就是放在对象存储库里比如阿里的 oss ,在加上 cdn 理论上不可能因为前端页面而爆炸。剩下就是动态 ssr 与 spa 了。 |
46
royzxq 2023-03-06 16:09:53 +08:00 1
这可以答的内容非常多啊.. 可能 op 工程化实践确实不是很多吧。
这些问题总比问你 fiber 实现好吧 |
47
dfkjgklfdjg 2023-03-06 16:23:47 +08:00
前两个问题还能说 OP 你没有接触过导致的,最后这个让你背 tsconfig 选项,可能是 OP 没有很好描述当时问的问题。
其实可以在面试的时候录个音,这样可以对这场面是做一个复盘,可以是对于问题的复盘,也可以是当时自己的状态的复盘,比如说紧张、答非所问这类情况的复盘。 |
48
yc8332 2023-03-06 16:29:23 +08:00
后端很好奇。。前端还有啥并发?
|
49
Hurriance 2023-03-06 16:41:33 +08:00
流程正常来讲,先是你认可你的 CV ,面试只是验证你的 CV ,所以基本上应该基于你的简历来问。所以面试官的问题是跟楼主的 CV 相关的吗?
|
50
iidear2015 2023-03-06 16:42:34 +08:00 2
和菜不菜关系不大。
这个场景下,面试者是弱势方,只能建议你尽量引导面试官聊自己擅长的方向。 在简历中体现,或者自我介绍时强调自己的方向。保证自己可以讲明白擅长的内容,即使对方从没有接触过这个方向。 如果你自己不表达有倾向性的方向,面试官只能随机问,多个方向都聊不起来的话,基本没戏。 如果面试官多次绕开你提的话题,那可能招的是指定方向有经验的人,你没经验就是没机会,不必强求。 |
54
renhou OP @dfkjgklfdjg
关于 ts 这个,问题就是:看你都是 ts 项目,那你讲讲 tsconfig 选项都有什么库😆 |
56
CarryOnHxy 2023-03-06 17:26:47 +08:00 via iPhone
@Loserzhu 前天看到个 SSR 框架 qwik,据说 hydrate 过程很快,事件恢复都是由 document 捕获利用冒泡来动态创建事件,不知道能否适应你的场景
|
57
mdyh 2023-03-06 17:39:35 +08:00
如果问到一些问题,你确定到底在问什么。可以跟对反确认下,你说的是 xxx 的问题吗。然后再回答。
|
58
yhxx 2023-03-06 17:51:06 +08:00 1
那些说 sentry 的你们是认真的吗。。。这是面试呀。。。
起码要表示你知道哪些常见类型的错误,资源加载错误、js 运行错误之类的场景区分,onerror 、unhandledrejection 之类的适用场景,再深入一点一个监控平台需要收集哪些信息,如何上报(gif 和 sendBeacon),怎么解析(sourcemap),怎么聚合同类错误,再多一点,怎么回放用户操作,还可以再补一点钉钉飞书邮件等的自动通知、git blame 指定到人 虽然我们都知道日常用也就是 sentry 一把梭,但是这是面试,你不卷一点怎么搞得定面试官。。。 |
59
jimrok 2023-03-06 17:56:27 +08:00
面试嘛,一半问题是测试你能不能干这个岗位的活,另一半问题是测试你是不是个傻子。问你不会的问题,估计就是后者,看这厮怎么面对这些不懂的问题,是不是装大头蒜跟我胡诌八扯,还是逻辑非常清楚的给出一些推断。
|
60
wdhwg001 2023-03-06 19:06:43 +08:00
tsconfig 这个都问就离谱,现在 vite 的时代问 webpack 一类的已经算偏门八股了,这种东西不是对照文档去写嘛…就算是改脚手架也基本上只用改几次,对着文档硬做也就做出来了,又有何难。
SSR 框架的性能确实是比较菜,上了缓存啥的没用的话,可以给单个用户去 throttle 一下,反复制造 ssr 压力的话就不给 ssr 了,ssr 是替用户跑首屏的,又不是让用户当服务器端渲染的 view 层去用的,还有别给一些特别细的路由上 ssr 。 请求错误收集拿框架做,主要是个洗日志的活儿,洗日志啥都行。 |
61
yhxx 2023-03-06 19:06:53 +08:00 1
"关于 ts 这个,问题就是:看你都是 ts 项目,那你讲讲 tsconfig 选项都有什么库"
这也不需要背配置呀,那些乱七八糟的配置谁背的下来,但是最基础的随便挑几个扯上 5 分钟还是应该没问题的吧 比如 target 、module 、noEmit 这些应该都还是熟悉的吧,顺便就可以扯到 babel 上,target 到底要 ES6 还是 ESNext 还是 ES5 ?到底是用 ts-loader 还是用 babel-loader ?然后不就到了熟悉的环节,就可以把面试官带进自己的节奏了 |
62
Loserzhu 2023-03-06 19:29:37 +08:00
@CarryOnHxy 我也在携程的文章里看到了这个 qwik 。不过现在的系统太大,动根基要谨慎😂
|
63
bigShrimp8577 2023-03-06 22:25:33 +08:00
我也不会,我也菜
|
64
night98 2023-03-06 23:51:41 +08:00
面试讲究一个缘分,人与人之间对味了随便聊聊面试就能过,不对味又不懂提问的艺术,就只能随便问问了,所以想要好的面试体验实际上是一个低概率事件,现在主流的就是 60%八股,20%算法,10%的项目。
|
65
leon0918 2023-03-07 00:12:43 +08:00
不是你菜也不是面试官菜,小厂和大厂同岗位做的事情很多就不在一个频道上。
举个例子,客户端八股文冷启动优化,小厂的去哪实操去啊 |
66
kela 2023-03-07 09:39:01 +08:00
了解游戏啊 Promise.all 并发限制那个库 P-Limit
|