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

省流:无八股,四十分钟项目输出,二十分钟笔试题 + 反问

面试体验最满意的一次,虽然开头细细的讲项目细节导致节奏有点慢了,只讲出了两个核心,还有两个核心没讲,但面试官很耐心的听完并跟我确认上下文细节,下次继续优化

- 自我介绍
- 挑一个简历上最值得讲的项目开始表演
  - 背景介绍(某游戏 mod 开发组前端成员,主要负责一些页面制作宣传的需求,后期组内其他成员提出 wiki 制作需求,开始了调研之旅)
  - 主流 wiki 框架(语法晦涩难懂,开发者需要时间去学习成本;使用 mdx 可以无压力上手 + 需求/问题快速沟通解决;Astro 我有实践经验,阅读过核心 api 源码,知道底层实现与扩展/局限性)
  - 反问了一下这个项目什么时候开始做的:第一版落地时间周期(去年5月调研,7月开始第一版开发,9月落地,到12月前长期维护 + 新功能上线)
  - 第一版落地后遇到的问题(项目结构混乱,非业务核心代码与核心混在一起,网站无法进行复用)
  - 解决方案(采用 monorepo,重新梳理整个项目业务核心逻辑与周边生态逻辑,进行归类划分并确定职责和要暴露的接口)
  - 成果(项目职责分离(解包,语法检查,wiki 核心,组件库,针对不同 ide 的检查适配器)对整个项目有了个更好的认知,知道整个项目的进展和状态)
  - 带来的新问题(此时已经半小时了,面试官让我挑2点最大的问题(不同包之间没有权限区分;一些历史遗留插件没法及时迁移,付出了一定开发成本)其实这里可以讲一下代码复用,参考了 Astro Starlight 项目落地后发现全局 Astro 特性被局限至仅 集成暴露 api;部分 api 使用后效果不一样(Astro 官方给出了解决该问题的实验性特性))
- 网站访问量多少(不多,算是技术能力锻炼产品和圈子内的服务用产品)
- 是不是 minecraft 的发烧友(还真是,高中就喜欢玩珍珠炮,并且从里面开始接触到编码解码概念和一些二进制理论)
- 笔试
  - 版本号排序(后续讨论了一下健壮性和 plus)
  - Promise.all 实现
  - 写一个后台管理系统的侧边栏组件,伪代码即可(顺便聊了一下 vue compiler 的 props 宏展开)
  - 本来还有第四题,面试官说不用了,直接开聊(以为会问 Promise 顺序,他说他不喜欢考这些,然后聊了一下 Promise 内返回 Promise 的问题,涉及到 v8 以及 ecma resolveThenableJob 规范,不过面试官似乎不是很了解这里)
- 反问
  - 我需要提升的地方(计算机四大件别丢了,讲的很认真)
  - 部门主要技术栈(react,然后就是要了解一点 node,不用做开发,nginx了解即可,吧啦吧啦的,后续忘了)
  - 新技术会用吗(会做研讨会和研究,不过更多是基建部门负责,他们会看手册学习并尝试在小项目落地)
  - 主要业务(搜索中台,技术 + 业务结合部门?面试官好像一时也没法彻底讲清楚)
  - 部门压力大吗(不算大(真的吗))
  - 入职要注意的事情(需要两个月进行磨合,因为有些事情可能没有给到完整上下文就让你做,需要自己翻手册或找 mentor 问,流程清楚后就轻松了,后面一堆不记得了)
  - 转正?(会给,但是看分到的名额,说25届留了两个实习生,刚好两个名额就全给他们了,然后细细的讲了一下转正前会给你的各种通知和要做的事情)
  - 就面试来说有啥需要改进的地方(笔试侧边栏组件你可以做的更好点,抽象级别可以更高点,加强一下基础框架学习使用)

体验最好的一次,唯一的遗憾就是讲细节太多了,还有一些核心没讲出来。其他我都很满意,1 小时后收到了三面时间选择通知

许愿三面能遇到像这样体验这么好的面试官
全部评论
五体投地
1 回复 分享
发布于 2024-12-07 17:16 河北
我学过前端?
1 回复 分享
发布于 2024-12-07 18:00 上海
宝宝等你入职
1 回复 分享
发布于 2024-12-08 18:46 北京
半个月前我也面了不得不说佬是真牛,膜拜大佬
点赞 回复 分享
发布于 2024-12-07 18:02 湖南
好难
点赞 回复 分享
发布于 2024-12-07 20:04 浙江
真无敌了
点赞 回复 分享
发布于 2024-12-08 00:34 湖南
m
点赞 回复 分享
发布于 2024-12-09 11:48 广东
楼主啥bg
点赞 回复 分享
发布于 2024-12-19 19:38 北京
wc这么难吗,怎么看不懂都
点赞 回复 分享
发布于 03-04 17:14 北京

相关推荐

发一下之前秋招的面经叭原型链● 用function实现class  ○ 构造函数或类用prototype,实例用.__proto__● 实现extends  ○ Object.assign 会改变原对象  ○ // 设置子类的原型为父类的原型Dog.prototype = Object.create(Animal.prototype);● bind 和apply● 浏览器跨域● 那些文件或资源会受跨域限制,什么类型的网络请求不受同源策略管控  ○ js、css、img,iframe等,有src,不受跨域影响,常规静态资源被同源策略许可,但iconfont字体文件(eot|otf|ttf|woff|svg)例外  ○ img标签在特定情况下存在跨域问题。 当通过‌JavaScript动态创建的img元素设置了crossOrigin属性为anonymous或use-credentials时,如果图片来自其他域且没有设置适当的CORS策略,浏览器会拒绝访问该图片,导致跨域问题。‌  ○ 跨域问题的原因在于,浏览器默认会对通过img标签加载的图片进行缓存。当通过JavaScript动态创建的img元素访问相同的图片时,浏览器会直接从缓存中获取图片,而不是重新发起请求。然而,如果JavaScript中的img元素设置了crossOrigin属性,浏览器会尝试以CORS的方式请求图片,但缓存中的图片并不包含CORS信息,因此被浏览器拒绝。  ○ 需要注意的是,通过img标签直接加载的图片资源(如通过src属性指定)通常不会遇到跨域问题,因为浏览器默认允许这种加载方式● 前端正向代理和反向代理  ○ 都是正向代理  ○ 正向代理:代理的是客户端,隐藏客户端,反向代理:代理的是服务器,隐藏服务器● vue的双向绑定● vue的依赖收集● react、 性能优化● 技术栈是react● 常用框架原理,浏览器原理 缓存,跨域,加载,同源策略,http https混合应用跨域
查看13道真题和解析
点赞 评论 收藏
分享
评论
6
18
分享

创作者周榜

更多
牛客网
牛客企业服务