字节跳动前端搜索方向一面面经

先上正文,文末贴复盘以及可以改进的地方

表现得很差,但是1小时后通知选2面时间,许愿下次自己能自信点,好好讲解项目

自我介绍

- 蓝桥杯是什么
- 问两个开源项目: 
  - Threejs 那个怎么说(2年前的项目了,根本不记得多少,扯了一下新版实现,模型优化,看了一下源码解决bug)
  - 某音乐网站嵌入 tauri 二次开发(扯了一下写的 vite 插件,实现了把外部网站嵌入到脚手架内实现的直接开发,还有重写部分热重载代码,以及代理后端,实现内容覆盖与整个网站的控制权,以及扯了一下这种跨平台开发要注意的是什么,然后就扯了一下ipc通信与序列化的性能)
    - 做了这些插件最终的意义?(提升开发体验与效率)
- 这些是自己做的还是实验室做的(第一个跟隔壁实验室哥们一起做的,第二个是自己做的,2023年7月 -> 2024年8月,有GitHub提交可查)
- 说一下你对前端工程化的理解(尽可能地实现非业务部分过程自动化,使得开发者可以专注开发)
- 用过webpack吗,没有,直接 vite 上手
- 说一下你对 vite 的认知,越多越好,尽可能地说(esbuild 开发环境,rollup 生产环境,vite 在加速方面做了哪些努力(esbuild 构建开发环境js,预构建依赖,对源码更新采用链失活处理(仅概念)))
- esm cjs(同步与异步导入,import 静态分析)
- url 到页面呈现(合法判断,cache,dns,tcp,dom树,cssom,js 阻塞,render tree,绘制,部分 css 送入 gpu 处理)
- 说一下用 Astro 的原因(vite 作为底层驱动支持,内容驱动静态网站生成,支持SSG,SSR)
- 除了 SSG,SSR 还有什么渲染,区别是什么(ISR,CSR,边缘计算)
- Astro SSR 还有哪些应用场景(扯了一下官网文档的电商平台,用户可以先看到页面商品内容,具有交互性质的按钮可以在后续注水激活)
- 说一下 yjs 是干什么的(以CRTD为核心思想的并发冲突解决库)
- 在线演示平台,平台有多少人在用(不多,给内部人员编辑使用)
- 做这个遇到最难的地方是什么(服务端崩溃上下文丢失后内容恢复,说了目前的实现与未来最好实现)
- VSCode 插件看一下效果(演示了一下并说了转 ast 做处理的简单流程)

笔试第一题:

对url中的query参数中将title提取出来:https://aaaaa/?aaa=bbbb&title=dddd
创建一个 box,长 100px 宽 50px,插入到整个页面中,要求水平垂直居中
针对 box 写一个动画:
500ms 后长宽变成 100px
700ms 后移动到右上角

笔试第二题:
```js
function get() {}

const obj = {
  layer1: {
    layer2: {
      val: 1
    }
  },
  target: [1,2,{ok:1}]
}

get(obj, 'layer1.layer2.val', 'target[0]', 'target[2].ok')
```

笔试第三题

有一个树:

1
| \
2  3
| \
4  5

现请你遍历该树,并在到达叶子节点时将其前方所有的值拼接为数字,对于本树就是: 124 + 125 + 13 = 262

本来要反问了,感觉节奏不对,继续跟面试官扯完了简历上的后两点:
- 页面预览实现?
  成本有点高,目前思路是转发脚手架页面

  曾经做过的努力:
  - 用 astro 的编译器看看能不能 build 一些组件并拼接完整页面(不能,必须依赖 node 环境或在浏览器实现需要的 api)
  - 用 SSR (审查了 astro 部分源码发现对于 markdown 编译逻辑都是写在 vite 插件内,打包时是直接把 markdown 编译成 js,SSR执行时直接静态出字符串,没有运行时编译过程)
  - 11月14号新出的 content layer api,去官方文档看了milestone,其中写清楚了不把运行时编译 markdown 放在目标内,与 astro 的 baseline 与解决问题场景不一致
- jsx 编写通用组件?
  曾经做过的努力:
  - 调研 tinyMVC,在示例仓库里发现他针对各个框架都写了一套 renderless 逻辑,还为此写了一个专门抹平框架差异的函数
  - taro,基于编译器实现,背后有编译团队,运行时团队,小程序团队和跨平台团队支持,对于小团队开发成本太高了

反问:
- base 北京上海
- 二面什么时候(已约下周三)
- 主要业务?负责抖音头条等搜索处理
- 需要改进的地方?(东西做的很多,但是要把项目重点总结好)

总结:
- 这次面的状态真的很差,比上次腾讯的还差,不清楚是什么原因,但最后不到残血又不会玩,可能我真的需要休息一下吧
- 不够自信,项目都是自己做的,但是一问就只能答出想到的点,后面复盘的时候一下子联想到了很多
  - 桌面播放器能扯的非常多:rust 过程宏生成 ts 声明辅助开发;dll 打包内联,怎么同时放下 nodejs 脚本,网页注入脚本,还有 rust 自身大小优化;组件库用 storybook 实现预览;针对本地音频文件采用流式传输,计算 range 大小;为什么用户手动安装node,在这之前有做过什么努力吗(pkg,deno,node dll 预制插件打包);热重载代码为什么不影响原网站(原网站采用 SSR 水合,自己的部分是渲染);离线访问(包爬虫 + rust 三方库内联到程序内);具体参考我的博客吧:https://blog.shiinafan.top/posts/%E5%A1%9E%E5%A3%AC%E5%94%B1%E7%89%87%E6%A1%8C%E9%9D%A2%E7%89%88%E6%8A%80%E6%9C%AF%E5%88%86%E6%9E%90/
- 笔试表现很差,把简单问题复杂化
- 八股文同理,每次一问就进入了意识狭隘的通道,复盘才想起来还有好多可以回答
- 没有总结好重点,其次是没有引导面试官到自己熟悉的领域
- 说话逻辑有点混乱,没有一口气讲到重点

我想我可能需要休息一下,想清楚和搞好状态再继续,下周一腾讯约二面,许愿自己能讲清楚项目内核,先写这么多吧
全部评论
宝宝无敌了!
点赞 回复 分享
发布于 11-29 23:43 浙江
真跪了啊
点赞 回复 分享
发布于 11-29 23:56 广东
太强了
点赞 回复 分享
发布于 11-29 23:58 广东
真跪了
点赞 回复 分享
发布于 11-30 00:01 黑龙江
宝宝无敌了!
点赞 回复 分享
发布于 11-30 00:13 湖南
大佬
点赞 回复 分享
发布于 11-30 20:56 上海
很强!
点赞 回复 分享
发布于 11-30 23:55 北京
26前端第一人
点赞 回复 分享
发布于 12-01 00:11 广东
26前端第一人
点赞 回复 分享
发布于 12-01 00:58 广东
26前端第一人
点赞 回复 分享
发布于 12-01 19:08 广东
代劳啊🙀🙀🙀
点赞 回复 分享
发布于 昨天 20:04 浙江

相关推荐

复盘了一下 影响我拿offer的点有几个 这个可能即使看了比较多求职信息的同学也可能会犯吧1.犹豫学什么方向太久了 在确定求职初期 我花了过多时间去选择方向 而且在选择了前端后 仍然跑去考虑服务端开发 这甚至浪费了我大半年时间 期间我的前端水平都处于一种很低的水平 只会三件套2.已经确定走前端了 仍在纠结 我学了真的能找到工作吗 我的学历是不是不够 我学校又不放实习 硬去心态又会很爆炸 没实习 学校又不好是不是完蛋了 而且23互联网就业这么差3.有些摆烂 在进了大厂实习后 每天把业务写完 就忽略了前端的学习和对技术的探索 也没有积极去要一些技术需求 导致我的纯技术向跟不上同期的很多大佬 同样在实习和秋招并行的时间段 我老想着转正 导致我的offer都是后期补录的时候才拿的 基本上都只是白菜和少量sp4.心态比较差 脆皮大学生 emo焦虑的时间比学习时间都要长 感觉在职场 真不能这样 我感觉即使是技术岗 也还是挺人情世故的 唉 我实在搞不来这些 但是又不能不上班👊🏻😭但我也总结下我做的好的地方1.坚持学习 连过年都在学前端😂2.坚持投递 我由于日均学习时长很低 导致八股背完都很后期 但是我暑期坚持到五月底拿到2个大厂暑期和1个大厂日常 秋招offer也都是10-11月才拿的3.懂的学啥 实话实说 因为前期犹豫很久 基本上都是到处看信息和市场情况 还有成功经验等 我确实比较明确面试去应试的内容 因为我的开发能力确实是中规中矩感觉没别的了 其实是不太满意的 如果能重来 我还是会选前端 因为别的我也没啥好去的了 考公考编央国企不适合我这种搞不来人情世故的 我能被逼疯 #没有实习经历,还有机会进大厂吗#  #前端项目#  #软件开发投递记录#  #现在前端的就业环境真的很差吗#
点赞 评论 收藏
分享
一面1. 为什么选择前端2. 实习经历3. 跨域4. JSONP 的具体实现5. mobx 是什么,什么时候会使用6. markdown 解析器除了正则表达式实现以外还有什么实现方式7. session 和 cookie8. interface 和 type 的区别9. fiber 架构10. 对一个组件同时修改文字和背景,会不会出现其中一个修改成功,另一个修改失败被中断的情况11. 为什么 hooks 不能在条件分支和循环中使用12. map 和对象的区别13. 看代码说输出:this 指向问题14. 手撕:数组扁平化15. 手撕:忘了...挺简单的一道题二面1. 用的 React 什么版本2. Fiber 架构3. 对于一个执行时间很长的任务来说,Fiber 是怎么对它切分时间片的(答了 fiber 的链表结构说不对,不知道面试官想要什么回答)4. 浏览器一帧大概是多长5. 状态管理组件的好处6. 子组件与祖先组件之间的通信方式7. useContext 的弊端是什么8. 父组件重渲染如何防止子组件重渲染9. 事件总线在使用的过程中遇到过什么问题10. 如何快速区分宏任务和微任务11. 现在和以前的事件循环实现12. 学前端多久了(不敢说实话,说了半年但是面试官还是觉得少了)13. 怎么学习前端14. 如何检验自己的学习深度二面无寿司,20分钟结束,寄到奶奶家
好奇的哈士奇在度假:抖音前端实习,联系我,团队直招
查看29道真题和解析
点赞 评论 收藏
分享
评论
9
10
分享
牛客网
牛客企业服务