字节跳动前端搜索方向实习三面面经

省流:无八股,项目输出 + 性能优化疯狂拷打 + 场景题

- 自我介绍
- 为什么学前端
- 什么时候开始学的
- 看你项目还挺多,挺多方面都有涉及的,node 学的怎么样(仅基础,rust 写的那部分后端可能还多点)
- 平时怎么学(从实验室给的路线发展到自己看文档查资料,会主动关注新 api)
- 关注新 api?举个例子(用我博客的 content collection api 举例子,翻了 rfc 文档,对着英文生肉硬啃)
- 最近科技周报看了啥,举个例子(rspack,阮一峰谈发展 ai 的公司,还有自己想在项目落地实践 ai)
- 为什么想要实践ai,你是想在自己项目的哪里实践?(原来的开发者想更专注于核心开发;词条内容编写,让 ai 写雏形,自动生成框架,我们按需补充(其实有个点没谈到,就是有些内容需要编写者阅读过源码才知道机制,ai 写可以节省一部分时间;其次是语义检查,看看是否符合人类阅读习惯))
- 看一眼你的后台(演示了一下基本内容,是 monaco 做的)
- 讲一下选 Astro 的原因(调研现有 wiki 框架发现不适合,学习成本高;横向对比 VitePress VuePress,局限使用于 vue,扩展性开发难度较高;从 Vite 或者 Nextjs 开始写的话基建要做很多东西,一时看不见效果;页面样式自定义要求程度非常高,css 几乎都是手写;Astro 基于 vite 封装,帮我们做好了很多事,且具备 vite 大部分能力;阅读过内容集合 api 源码,知道扩展性和局限性(其实还有很多可以说,不过脑子一热忘了))
- 有试过什么优化手段吗(开始拷打)
  - CSS 规范,强制要求所有元素尽可能有个固定宽高,避免 CLS
  - 某些显隐采用 visibility + pointer-events 处理,避免重排
  - 后台部分使用 `manualChunk` 分包(面试官让我打开项目看看分包结果,然后就对着页面的请求在那里讲自己的分包思路)
- 接下来从开发过程,打包编译,网络传输,首屏展示四个方面聊聊你知道的优化,越多越好
  - 开发过程扯了一下 vite 全局定义 `__DEV__` 变量,然后把仅开发逻辑放在这里头,编译过程会移除(其实可以再讲讲引入路径规划,做一个强隔离,项目后台就是对每个页面进行强隔离,保证逻辑无关联,这样分包函数可以针对每个页面打包成一个 css + js,避免过多网络请求),还有 await import 作为分包点
  - 打包编译讲了 terser 的上下文分析,分析 dead code 的存在和不必要的逻辑进行移除;其次是避免桶文件 + rollup 静默打包(桶文件在项目中真实出现过,打包整个 mui icon 导致打包时间 + 2min,面试官当场提问最终这些会被打入包内吗(不会,会做 tree shaking);静默输出则是因为 mui 组件都写了 'use client' 导致 rollup 警告大量占用控制台输出间接导致打包时间下降,面试官继续提问如果我不让你用静默怎么办,见我不知道就说了可以写插件去直接替换底层方法,不过感觉不算太严谨(逃));聊了一下通过插件移除指定注释下的代码(类似 rust 注解)(其实可以再讲讲语法转换,即向低版本的 js 代码进行兼容处理,即 tsconfig 的 target 选择)
  - 网络传输用了项目从 http1.1 升级到 2.0 避免一个对头阻塞的问题(顺便牵扯到 tcp 阻塞,讲了一下前面的包没到后面的都得等),还有 3.0
  - 首屏的话则是聊了一下 script 标签的 async defer 去避免 dom 解析阻塞,还有内联资源,扯了一下 tcp 拥塞控制的一个算法算出来首屏 css 控制在 14.6 kb 内,不过没讲出原理;顺便聊了一下我的博客,他的夜间模式 js 是放在 async 内执行的,面试官马上知道了会有闪烁问题,然后我就说在 html 前面写了一个阻塞 script 去修改 cssom 树,避免了闪烁
- 场景题,现场设计一个 PC 登录扫码功能,PC 要有消息同步功能(1. PC 向服务器请求登录 token 并展示到二维码内,随后使用轮询或者 ws 等待状态 2. 手机扫码,获取 token 后发送到服务端,服务端改变状态 3. 通知 PC 可以登录了,由 PC 主动去请求个人信息)(中间扯了中间人攻击,包阻断,重放攻击;根据操作系统生成唯一标识符,mac 地址等)(感觉最核心的还是各种安全细节和登录成功后的消息同步功能,如何保证数据一致性)
- 最后十分钟试试 IntersectionObserver,现场投屏写(前面聊了一下图片懒加载跟面试官说使用原生 loading lazy 和缺陷,面试官就反问有没有用过(没有);最后没写出来,但是面试官看完思路说大致没错,改改细节就可以了)
- 反问
  - 是日常实习吗(是)
  - 您负责的内容(leader,项目负责人)
  - 部门主要业务(搜索中台 + 大模型,顺便提醒我可以去学习一下看看真实项目怎么落地的)
  - 就个人来说要怎么继续提升自己(去一下更大的平台,学习一下企业是怎么管理的,以及整个 workflow 的实现;就我的项目举了一些例子,我自己一些自研的地方其实有插件去帮助实现)
  - 压力算大吗(经典话语)
  - 实习时长(希望越久越好)
  - 面试有什么需要改进的地方(还可以,主要是有自己的特色)
全部评论
不愧是大佬级别的,一出手就是腾讯+字节
1 回复 分享
发布于 2024-12-11 13:55 北京
不愧是大佬级别的,一出手就是腾讯+字节
1 回复 分享
发布于 2024-12-11 13:54 湖南
跪了啊啊啊啊啊啊
1 回复 分享
发布于 2024-12-11 13:48 北京
大佬好多内容啊请教下平时做项目有哪些来源,一般怎么做的
1 回复 分享
发布于 2024-12-10 20:12 广东
好厉害呀
点赞 回复 分享
发布于 03-16 23:40 河南
怎么日常实习这么上强度
点赞 回复 分享
发布于 01-02 18:27 江苏
不愧是大佬级别的,一出手就是腾讯+字节
点赞 回复 分享
发布于 2024-12-11 13:38 广东
佬是本科生吗?这么强
点赞 回复 分享
发布于 2024-12-11 13:07 湖北

相关推荐

头像
09-09 16:59
已编辑
武汉大学 Java
结果是三面确实过了,但是没hc了,所以挂了。What can I say😃😃———————————————————————————别急,有反转,第二天又把楼主捞起来,直接进入等待面试结果了。不会是误操作罢。真给阿里云👻了。———————————————————————————3天后挂了,纯聊天也挂楼主。给阿里云👻了。———————————————————————————从二面推测出三面肯定纯聊天,结果果然。开始表忠心,楼主对阿里云一心一意。忠!诚!1. 自我介绍2. 个人经历盘问3. RUST经验,写过的代码行数(几k行肯定是有的啦,但是没什么所谓)4. 对安全攻击的了解(中间人、sql注入、跨域、arp洪泛、tls请求重放)5. Tcp三次握手,tcp flags了解吗(不了解)6. Ai使用(讲完app讲galgame知识图谱,楼主想了半天想出了日本文字冒险游戏的代称)7. 职业规划8. 反问:部门培养:没什么好问的,听上去面试官管了几个楼主一二面的组,应该是+2面试流程:也没什么好问的,反正4面没问提前实习,有点不适应,总之楼主抓住一切空隙表忠心。提到即使baidu、pdd都过了,但只要阿里云给offer,楼主肯定直接抛弃他们。收了楼主,给阿里云👻了。———————————————————————————二面就开始问能不能提前实习了,今年的市场是怎么了。1. 自我介绍2. 个人经历盘点3. cgo简介,楼主确实也在本科用过,在gal文本提取的项目里,顺便提到了golang的gc由于cgo的限制导致不能使用Java的zgc思想。4. Ai使用,楼主确实深入用过(游戏文本翻译、网页内容结构化提取、逻辑判断器等等),顺便踩一波rag、顺便吹一波qwen踩一波llama5. 职业规划6. 部门业务介绍7. 反问:为啥不问算法八股:一面问了(问了吗,其实没问)培养路线:进入一条产线以点带面,但也允许大头兵的存在超越字节二面的简单,应该是楼主目前面的最简单的二面,虽然字节把我挂了,这个总不能挂我吧。许愿三面🙏🙏————————————————————————————真·老东家。1. 自我介绍,面试官自我介绍,团队搞防火墙应用的。2. 自我经历盘点3. Rust、go与C++印象最深刻的特性(泛型,实际讲的不好,没串起来)4. 面试官说你懂网络吗,楼主说为了teg腾讯会议组看过一大堆http3面经,让他问问,面试官说看你很懂的样子就不问了。5. 写题:- 层序遍历- 最长有效括号本来以为shopee与pdd的ide就够难用了,阿里云的更是依托,pdd好歹面试官还能一键运行,阿里云的竟然是纯文本编辑器,面试官估计打开了leetcode复制楼主的上去跑,跑了三四遍,每遍出什么错都要口述给楼主debug。6. 智力题,100只老虎,1只羊,有以下规则:- 所有老虎都想吃羊,但是更想活下去- 老虎吃羊会变成羊问100只老虎会吃羊吗?楼主从乐子人的角度指出只有有一个老虎吃了羊,其他老虎也会吃,然后系统就会坍缩至一只羊。面试官乐了,但是不对。老虎都是理性老虎,所以要这样分析:1只老虎1只羊,老虎肯定吃羊;2只老虎1只羊,由于理性老虎知道谁先吃谁就死,所以都不吃;3只老虎1只羊,由于任意一只老虎都知道只要吃了羊,系统就会变成2只老虎1只羊,这样就没老虎敢吃了,所以老虎会吃羊;以此类推,奇数只老虎会吃,偶数只老虎不会吃。理性老虎真的是太理性了,楼主都没这么理性。6. 反问:部门:防火墙作息:9:30~20:30,反正就弹性早十晚九呗闲聊老东家,顺便吹一下阿里云的工单团队与研发团队分开(然后diss华x云与腾x云)。话术果真是一脉相承,阿里系的名不虚传。面试官还说互联网都这样,哪里都这样了😠,楼主面这么多家,阿里风是最突出的,什么owner、产线并行、职责交叉,除了阿里谁家说这些😇😇。
查看13道真题和解析
点赞 评论 收藏
分享
评论
17
49
分享

创作者周榜

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