滴滴一面(9.9)
七崽爱吃小饼干2026/09/11阅读 0
- 自我介绍
- 比较有挑战性的项目
- SSG改造系列
- 在百度做过哪些工作
- 虚拟列表优化(为什么会有问题,怎么优化的)
- sse 和 websokect的区别
- 介绍埋点优化
- 事件循环题
- 递归调用(函数、宏任务、微任务)会不会影响点击事件
- ai协助开发一个方法,处理异步任务,最大并发2。开发这样一个方法,提示词应该关注哪些内容。
- 除了单测的方式,还有什么方法可以测试(再起一个ai进行对抗)
- 如果想让ai操作redux状态,用一个mcp,有什么实现方案
- 介绍一下redux和mobx的区别,有什么不同的应用场景。redux和redux toolkit的对照关系。
- redux怎么实现的状态隔离(createSlice,命名空间)
- 反问
递归调用(函数、宏任务、微任务),会发生什么
https://visionaryblog.cn/reader/460
ai协助开发一个方法,处理异步任务,最大并发2。开发这样一个方法,提示词应该关注哪些内容。
提示词一般拆成几个部分:
- 目标:最终要得到什么
- 环境:用什么语言
- 输入输出:
- 边界情况:注意边界情况
- 测试用例:覆盖边界情况,得到稳妥的结果
除了单测的方式,还有什么方法可以测试
再起一个ai B,ai B不知道实现细节,只知道接口契约,专门设计刁钻 case、攻击用例,去找出红方代码漏洞(黑盒测试) 还可以静态代码分析(白盒测试)
介绍一下redux和mobx的区别,有什么不同的应用场景。redux和redux toolkit的对照关系。
redux和mobx的原理不一样,mobx是基于Proxy实现的双向绑定,语法简单,redux是基于不可变数据实现的单向数据流。所以mobx适合中小型项目,可以快速迭代开发。redux更适合大型项目,因为是单向数据流,所以出现bug时,状态易追踪。mobx基于双向绑定实现,性能虽然一般更好,但是出现问题时,不容易溯源。
- 原生 Redux
- 需要手动定义
action type常量、手写 action creator - reducer 必须手动保证不可变,需要手动拷贝对象
{...state},嵌套对象会非常麻烦 - 手动配置
redux-devtools、中间件(thunk) - 手动合并多个 reducer
combineReducers - 异步:手动引入 redux-thunk 中间件,手写 thunk 函数
- Redux Toolkit(RTK)
createSlice:自动生成 action type 和 action creator,省去大量样板- 内部集成 Immer:reducer 里可以直接写 “修改 state” 的语法,Immer 在底层帮你生成不可变新 state(只是写法看起来可变,底层依然遵守 Redux 不可变原则)
- 内置 redux-thunk、redux-devtools,开箱即用
createAsyncThunk:封装异步请求,自动生成 pending/fulfilled/rejected 三个 actioncreateSelector内置 reselect,方便做记忆化派生状态 createSlice