今日头条前台面试记

作者 : 开心源码 本文共2406个字,预计阅读时间需要7分钟 发布时间: 2022-05-13 共200人阅读

今年还未曾面试过,假如不是头条的某个 HR 顺手把我的简历从简历库中捞起来的话。头条是大小周,这就意味着我可以周末去面试,不占用工作时间也不用请假,对于这点我还是很满意的。

面试约到了周日早上十点,但事后我有点后悔,周日面试官很可能会晚点。面试一直持续到下午三点左右结束。

头条的效率的确很高,周日面试结束后,第二天 hr 就通知了面试通过。

另外,我把本次面试也记录在我的每日一问: shfshanyue/Daily-Question 中,欢迎探讨与 star

背景

到今年年底,我已经有了将近两年半的经验。而这两年来的时间可以一分为二,第一段时间我在整前台,用的 react,第二段时间我在整后台,用的 node,我们用 node 直接操作数据库,而非作为中间层。而因为人事的过多调整,我在这时也做过一小段时间的 leader。做后台改BUG总是要调线上数据库的,再加上我对运维的兴趣,因而我拥有了线上数据库以及k8s集群的权限,并直接维护我们项目组业务代码的 k8s resource。(当然,后来改到 helm 维护)

因为 node 与前台千丝万缕的联络,以及我在头条的简历没有升级,因而这次接收到的还是前台面试邀请,不会也有少量 node 的知识。

面试

面试整个过程持续了四个多小时,聊的东西还是很多

简单的自我详情与项目经验

大家在入门学习前台的过程当中有遇见任何关于学习,行业方面的问题,都可以申请加入我的前台学习扣扣裙。缺乏相关的基础教程也可以直接来找我要,我这里整理了一套最新的前台基础教程,学习前台的这个过程当中我也收集了很多前台学习手册,面试题,开发工具,PDF文档书籍教程,可以直接分享给你们。282549184

一道算法题

一道 setTimeout/Promise 输出顺序问题的题? 什么是事件循环

react 中的 key 用来做什么? ? 什么是 virtual DOM

就是虚拟的DOM,提高渲染的性能,数据与UI分离,并且有利于服务器渲染

webpack 的原理是什么,loader 和 plugin 的作用是什么

ssr 的原理是什么,处理了什么问题

renderToString,hydrate;首屏时间与SEO? ? ssr 会有那些坑

cpu/memory 可能爆了,出现异常不好定位调试,带权限接口与非权限接口有可能需要剥离(为了缓存),TTFB慢了(假如不加缓存,以前可能是骨架屏,现在直接白屏),因为需要起http服务工程上也复杂了很多

你如何看待前台和后台? 吧啦吧啦吧啦…? ?有没有理解过 shell? ?这个一定得理解过? 如何替换一个文件中的内容? sed;那还有没有其它命令;cut? 有没有用过 awk? 只能说有了,不过没具体问用法

对一个文件如何只查看特定行的内容? 用 head 应该可以吧…(不太确认)? ?你们的 node 的服务端应用如何部署? 而后讲了讲我们node部署的历史,从以前的 pm2 到 docker,到 openshift 再到 k8s

docker 部署有什么好处? 各种好处,吧啦吧啦吧啦? ?docker 的底层原理是什么? namespace 和 cgroups,一个隔离环境,一个控制资源配额。多亏我看 docker 的时候多看了一遍简介…

那隔离环境主要隔离什么环境? 根据我对 docker 的映像说了网络,memory,进程,volume。回去之后看了看才知道是在问 linux namespcaces 有哪些..有没有理解过 ufs

没有…回去之后发现这就是 docker 的分层存储,尽管一直知道它是分层存储,但不知道叫 ufs? ?部署 node 时如何充分利用服务器的多核

比方用node 的 cluster,用 k8s 也能部分利用多核性能? ?假如你要读取一个特别大的文件应该如何做

那时候还不知道 stream…于是就说了不停地 seek offset? ?你们有没有对服务端的异常进行监控

比方用 sentry 监控异常,elk 打日志,prometheus 监控性能并用 alertmanager 报警,再写一个webhook到钉钉? 那你们在线上出现问题时如何在应用层面监控 cpu 和 memory 的信息

尽管线上出现过问题,,但这个的确不清楚。cpu?和?heapdump? ?如何查看一个 node 的服务端应用的内存和CPU

ps / pidstat

当服务端的内存发生了 OOM 问题如何排查

比方看 promethues,查看监控的忽然高峰,看日志那段时候发生了什么,看有没有提交代码

数据库中什么是 left join 和 right join 有什么区别

数据库索引中为什么要用 Btree

减少与磁盘的IO次数

什么是聚簇索引

这是啥…

redis 如何做持久化

我还在想持久化如同不太重要,有一次我们线上的 redis 刷了一遍,也仅仅是客户掉线了而已…持久化有两种方案,具体忘了叫啥了。一种是隔一段时间备份数据,另一种是备份命令,按照命令备份数据。回来一查是 RDB 和 AOF

如何实现一个分布式锁

set key value EX 60 NX

有没有用过 LUA

并没有,但不能说没有啊。于是说我看过一个关于?rate limit?的库的源码,里边的 redis 就是用的 lua 脚本

当一个地址从输入到展现在浏览器中有哪些步骤

吧啦吧啦吧啦

递归解析的过程是什么样的,什么叫递归 DNS 和权威 DNS

(问这么偏…)

TCP 为什么是可靠的

由于它有 ACK

那 tpc 和 udp 相比的话,udp 有什么好处,尽管不可靠,但是为什么还有很多基于 udp 的协议

由于 upd 报文小,udp 头部8个字节,tcp 头部20个字节,而且有些协议也不需要太可靠。面试官看我把报文 header 大小答出来了,而后看了下简历发现我是学网络工程的。其实我网络工程学的也忘的差不多了 (刚开始都能记住TCP的六个标志位)

为什么要换工作? ?以前通过了面试怎样没有来? 由于没 hc 了……? 你有什么要问的吗

总结

经过本次面试后,愈发感觉自己少量底层知识的薄弱。另外也感叹于面试官技术面的广度与深度,深知拓展技术栈也是相当重要。

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 今日头条前台面试记

发表回复