wxg微信游戏实习三面凉经
一开始介绍的时候节奏不是很好,让面试官误会了这就是个工具使用项目,直到最后反问的时候把各种研究的细节抖了出来才改了态度
- 自我介绍
- 说一下项目(简单做了一下介绍,落地背景,技术选择,产品上线,由于之前有点摆烂,所以准备的不是很好)
- Astro 框架是你自研的还是第三方的(?第三方)
- CDN 是什么
- 网站访问量高吗,有多少人在用?
- 八股:
- http 每个版本的区别
- 缓存
- linux 源码看过吗(?)
- 反问
- 需要改进的地方?(反问了你从这个项目学到了什么)
- 阅读了部分 Astro 源码(content collection 与 vite 结合的底层实现,知道了可扩展性和局限性,翻阅了 RFC 文档,知道了其开发目的解决的痛点,最后评价是又好又坏,好在对 mdx 的处理工作是在编译器完成,在运行时无过大开销,缺点也是 mdx 在编译期间处理完成,没法应对更灵活的需求;其次讲到了 Astro 上周第 50 个 RFC 文档,github 可查 content layer api,也是不把运行时编译列在目标内;所以评价是又好又坏)
- 深入研究了 CRTD 思想及其背后的 yjs 生态库(从小团队开发比重权衡选择了 yjs,生态丰富,且配备 demo,体验很不错,尤其是周边库,源码内容简单,要针对做定制开发的成本也比较低)
- 面试官主动问了一下有没有了解 OT (对比了一下 OT 与 CRTD 的区别;他与 CRTD 解决的目标相同,不过思想核心不一样,OT 是保证过程顺序一致,CRTD 保证数据一致性,颇有分布式思想的感觉;OT 在生态上较为薄弱,调研了 ShareDB 实现,发现后端代码过于复杂,对于小团队开发可能时间并不充足;我的中心服务器性能不够的话可能导致体验下降;针对不同数据模型要实现不同接口,开发成本增加)
- 了解了一些 vite 的短板(生产环境与开发不一致,不合理分包导致模块循环引用(上周优化时发生的),首页白屏的问题(vite 仅仅经过最简单的转义便直接把模块发送给首页,没有像 rspack 一样做一个合并优化,导致项目变大时首屏发出大量的模块请求,且 vite 开发服务器 http 协议似乎是 1.1,只允许 6 个 tcp 请求,其他的会被阻塞,进而导致长时间白屏))
- 实践了一些设计模式(模板模式,策略模式)
- 站在了开源包使用者的角度去看待一些内容(包下的语法分析核心分了两层设计,用户可以选择最简单的 plugin 模式去定制规则,也可以自己创建 core 实例去完整覆盖 mdx 的检查行为)
- 总之做这个项目就是很开心,学到了很多也收获了很多
- 您是 GM 吗(不是)
- 反问了一下平时玩什么游戏,但是当时脑子有点短路答不上来,就说最近玩的比较少,会练一下吉他
也是从这一次面试后,我就意识到了必须要主动争取面试主动权,面试官给出机会时一定要有意识,抓住项目核心讲,因此后续继续优化总结,把项目最重要的几个核心抓了出来,并进行了提炼,因此一天后的字节二面我收获了一个非常好的体验
- 自我介绍
- 说一下项目(简单做了一下介绍,落地背景,技术选择,产品上线,由于之前有点摆烂,所以准备的不是很好)
- Astro 框架是你自研的还是第三方的(?第三方)
- CDN 是什么
- 网站访问量高吗,有多少人在用?
- 八股:
- http 每个版本的区别
- 缓存
- linux 源码看过吗(?)
- 反问
- 需要改进的地方?(反问了你从这个项目学到了什么)
- 阅读了部分 Astro 源码(content collection 与 vite 结合的底层实现,知道了可扩展性和局限性,翻阅了 RFC 文档,知道了其开发目的解决的痛点,最后评价是又好又坏,好在对 mdx 的处理工作是在编译器完成,在运行时无过大开销,缺点也是 mdx 在编译期间处理完成,没法应对更灵活的需求;其次讲到了 Astro 上周第 50 个 RFC 文档,github 可查 content layer api,也是不把运行时编译列在目标内;所以评价是又好又坏)
- 深入研究了 CRTD 思想及其背后的 yjs 生态库(从小团队开发比重权衡选择了 yjs,生态丰富,且配备 demo,体验很不错,尤其是周边库,源码内容简单,要针对做定制开发的成本也比较低)
- 面试官主动问了一下有没有了解 OT (对比了一下 OT 与 CRTD 的区别;他与 CRTD 解决的目标相同,不过思想核心不一样,OT 是保证过程顺序一致,CRTD 保证数据一致性,颇有分布式思想的感觉;OT 在生态上较为薄弱,调研了 ShareDB 实现,发现后端代码过于复杂,对于小团队开发可能时间并不充足;我的中心服务器性能不够的话可能导致体验下降;针对不同数据模型要实现不同接口,开发成本增加)
- 了解了一些 vite 的短板(生产环境与开发不一致,不合理分包导致模块循环引用(上周优化时发生的),首页白屏的问题(vite 仅仅经过最简单的转义便直接把模块发送给首页,没有像 rspack 一样做一个合并优化,导致项目变大时首屏发出大量的模块请求,且 vite 开发服务器 http 协议似乎是 1.1,只允许 6 个 tcp 请求,其他的会被阻塞,进而导致长时间白屏))
- 实践了一些设计模式(模板模式,策略模式)
- 站在了开源包使用者的角度去看待一些内容(包下的语法分析核心分了两层设计,用户可以选择最简单的 plugin 模式去定制规则,也可以自己创建 core 实例去完整覆盖 mdx 的检查行为)
- 总之做这个项目就是很开心,学到了很多也收获了很多
- 您是 GM 吗(不是)
- 反问了一下平时玩什么游戏,但是当时脑子有点短路答不上来,就说最近玩的比较少,会练一下吉他
也是从这一次面试后,我就意识到了必须要主动争取面试主动权,面试官给出机会时一定要有意识,抓住项目核心讲,因此后续继续优化总结,把项目最重要的几个核心抓了出来,并进行了提炼,因此一天后的字节二面我收获了一个非常好的体验
全部评论
自研astro绷不住了
自研难崩
相关推荐
想踩缝纫机的小刺猬在打卡:每次看佬的面经,都感觉自己没学过前端
查看17道真题和解析
点赞 评论 收藏
分享
点赞 评论 收藏
分享