wxg微信游戏前端日常实习一面面经
总结:面试官人很好,整个面试过程中就像是聊天一样,全程演示项目,中间穿插了一点八股
- 蓝桥杯是什么
- 问简历上的项目是实验室还是个人项目
面试官说都会把比赛项目给放到前面,所以以为这也是实验室作品。然后我就拿了挑战杯写的前端页面简单说了一下
以下基本都是项目细节:
- Mod 开发组与你是什么关系(甲乙方?)
- 为什么分了开源核心 + 后台仓库(后台仓库代码不安全,需要审查)
- 编辑人员提交流程(后台编辑 + 管理员提交 -> gitee pr + 审查后合并 + webhook 触发 cicd 同步到 oss)
- Astro 是什么,SSG SSR 是什么(说了一下基于 vite 进行驱动与支持 ssg + ssr,然后说了一下 ssr 的动态拼接字符串;然后面试官说了什么 jeklly?)
- 选了他的原因是什么(博客落地实践过,知道一些底层原理,内容驱动生成网站,符合 wiki 定位要求)
- 框架可以插入 react 或者 vue 组件吗(可以,且可以一起使用)
- 有试过放在一起吗(没有,提了一下 vite 放在过一起导致开发声明报错,其次是两个应用相互独立,通过各自的 app 创建函数来渲染页面,只要他们副作用不会相互影响我觉得问题都不算大,不过现在看来感觉还得想一想 vue react 底层,他们的更新机制不一样,会不会一个框架的占用线程太久导致了另一个框架更新不及时)
- 整个项目内核升级是什么意思(说了用插件将所有的逻辑进行封装,最后进行复用,要求展示了一下除了简历还有哪个网站复用了)
- 编译器和 polyfill 的关系,知不知道每一个 es 版本的区别(不会)
- VSCode 插件展示一下,具体在 VSCode 做了什么,用途(mdx 转 ast 语法树,对节点进行分析,并读取工作目录下的资源进行查错;给一些编外的词条编辑人员使用)?
- 网页插件展示一下?(没实现,说了一下对每一个用户都要开一个专用检查进程的原因)
- 看一下你的分析器和 mdx 官方分析器的关系(完全独立,没来得及说存在的优化部分)
本来要进笔试了,然后说了一下 yjs 是核心之一
- 在线平台演示效果
- yjs 是什么(协同编辑中编辑冲突的一个库)
- 协同主要问题(说了并发冲突和 YATA 算法的作用,面试官似乎没做过这个领域)
笔试:
```ts
// 写一个类似迅雷的下载管理器,用户可以不停往里面push url,管理器需要保证同一时间最多只有3个请求在并发下载。
class Downloader {
urls = []
push(url) {
}
}
// 每个url均需要被传入以下fakeAxiosWrapper函数。你可以把这个函数当做一个封装好的axios函数,作用是请求远程api,不要改动这个函数。
async function fakeAxiosWrapper(url) {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log(`download ${url} done`)
resolve()
}, 3000);
})
}
// 验证代码
const downloader = new Downloader()
downloader.push(`url1`)
downloader.push(`url2`)
downloader.push(`url3`)
downloader.push(`url4`)
downloader.push(`url5`)
// 等待3s后,同时输出
// download url1 done
// download url2 done
// download url3 done
// 再等待3s后,同时输出
// download url4 done
// download url5 done
```
没写出来很可惜,因为以前写过一个类似的并发下载控制,结果这里没写好。面试官换了个节流,问了一下为什么 setInterval 可以用来证明你这个函数是节流的(宏任务队列首部)
反问:
工作时间(上午十点到晚上八点半)
地点(深圳总部)
实习时长(越久越好)
技术栈(挺多跨端技术的,感觉进去又要开始上手新东西了)
有没有什么可以改进的地方(没有,做的很好(不知道是不是客套话
整体下来感觉最大的问题还是信息差与沟通点没到位,项目yjs部分展示的内容不是很多,然后还浪费了一些时间,只能说很可惜,下一次对于不会的内容就应该直接说不会(恼)。然后就是没问多少八股,这真的正常吗()
- 蓝桥杯是什么
- 问简历上的项目是实验室还是个人项目
面试官说都会把比赛项目给放到前面,所以以为这也是实验室作品。然后我就拿了挑战杯写的前端页面简单说了一下
以下基本都是项目细节:
- Mod 开发组与你是什么关系(甲乙方?)
- 为什么分了开源核心 + 后台仓库(后台仓库代码不安全,需要审查)
- 编辑人员提交流程(后台编辑 + 管理员提交 -> gitee pr + 审查后合并 + webhook 触发 cicd 同步到 oss)
- Astro 是什么,SSG SSR 是什么(说了一下基于 vite 进行驱动与支持 ssg + ssr,然后说了一下 ssr 的动态拼接字符串;然后面试官说了什么 jeklly?)
- 选了他的原因是什么(博客落地实践过,知道一些底层原理,内容驱动生成网站,符合 wiki 定位要求)
- 框架可以插入 react 或者 vue 组件吗(可以,且可以一起使用)
- 有试过放在一起吗(没有,提了一下 vite 放在过一起导致开发声明报错,其次是两个应用相互独立,通过各自的 app 创建函数来渲染页面,只要他们副作用不会相互影响我觉得问题都不算大,不过现在看来感觉还得想一想 vue react 底层,他们的更新机制不一样,会不会一个框架的占用线程太久导致了另一个框架更新不及时)
- 整个项目内核升级是什么意思(说了用插件将所有的逻辑进行封装,最后进行复用,要求展示了一下除了简历还有哪个网站复用了)
- 编译器和 polyfill 的关系,知不知道每一个 es 版本的区别(不会)
- VSCode 插件展示一下,具体在 VSCode 做了什么,用途(mdx 转 ast 语法树,对节点进行分析,并读取工作目录下的资源进行查错;给一些编外的词条编辑人员使用)?
- 网页插件展示一下?(没实现,说了一下对每一个用户都要开一个专用检查进程的原因)
- 看一下你的分析器和 mdx 官方分析器的关系(完全独立,没来得及说存在的优化部分)
本来要进笔试了,然后说了一下 yjs 是核心之一
- 在线平台演示效果
- yjs 是什么(协同编辑中编辑冲突的一个库)
- 协同主要问题(说了并发冲突和 YATA 算法的作用,面试官似乎没做过这个领域)
笔试:
```ts
// 写一个类似迅雷的下载管理器,用户可以不停往里面push url,管理器需要保证同一时间最多只有3个请求在并发下载。
class Downloader {
urls = []
push(url) {
}
}
// 每个url均需要被传入以下fakeAxiosWrapper函数。你可以把这个函数当做一个封装好的axios函数,作用是请求远程api,不要改动这个函数。
async function fakeAxiosWrapper(url) {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log(`download ${url} done`)
resolve()
}, 3000);
})
}
// 验证代码
const downloader = new Downloader()
downloader.push(`url1`)
downloader.push(`url2`)
downloader.push(`url3`)
downloader.push(`url4`)
downloader.push(`url5`)
// 等待3s后,同时输出
// download url1 done
// download url2 done
// download url3 done
// 再等待3s后,同时输出
// download url4 done
// download url5 done
```
没写出来很可惜,因为以前写过一个类似的并发下载控制,结果这里没写好。面试官换了个节流,问了一下为什么 setInterval 可以用来证明你这个函数是节流的(宏任务队列首部)
反问:
工作时间(上午十点到晚上八点半)
地点(深圳总部)
实习时长(越久越好)
技术栈(挺多跨端技术的,感觉进去又要开始上手新东西了)
有没有什么可以改进的地方(没有,做的很好(不知道是不是客套话
整体下来感觉最大的问题还是信息差与沟通点没到位,项目yjs部分展示的内容不是很多,然后还浪费了一些时间,只能说很可惜,下一次对于不会的内容就应该直接说不会(恼)。然后就是没问多少八股,这真的正常吗()
全部评论
是在官网投的吗
佬
真给你跪了啊
相关推荐