2024-8-21 滴滴二面

感觉面试确实挺分人的,问的都不一样

问题

  • 自我介绍
  • 实现一个调度器,没写出来,太久没看了
//JS实现一个带并发限制的异步调度器Scheduler,保证同时运行的任务最多有两个。完善代码中Scheduler类,使得以下程序能正确输出
class Scheduler {
  add(task) {}
  // ...
}

const timeout = time =>
  new Promise(resolve => {
    setTimeout(resolve, time)
  })

const scheduler = new Scheduler()
const addTask = (time, order) => {
  scheduler.add(() => timeout(time)).then(() => console.log(order))
}

addTask(1000, '1')
addTask(500, '2')
addTask(300, '3')
addTask(400, '4')
// output: 2 3 1 4

  • 实现一个 Task
class Task {
  constructor() {}
  add(fn, context, ...args) {}
  run() {}
  stop() {}
}

function task1(next) {
  setTimeout(() => {
    console.log('red')
    next()
  }, 3000)
}

function task2(next, b) {
  setTimeout(() => {
    console.log(b)
    next()
  }, 1000)
}

function task3(next, c) {
  setTimeout(() => {
    console.log('yellow')
    next()
  }, 2000)
}

let task = new Task()
task.add(task1).add(task2, null, 3).add(task3)
task.run()

  • 实现一个函数,可以讲普通函数转成 promise 函数
  • pinia 的原理,以及 a、b 组件都用了他的数据,a 更新了一个数据后,改变的过程
  • vue 组件之间传值
  • 简历里面的 tailwind 做的什么、多仓库怎么复用
  • 工程化配置,webpack、vite 相关
  • 团队有多少人,主要负责的工作
  • 遇到的困难、解决思路
  • 简历提到的下载性能优化,还有什么方法可以优化的吗 缺少具体的量化数据

反问

  • 开头问的俩个手写的具体场景 微信小程序有并发限制,请求优先级
  • 具体做什么 业务+小程序自研框架
全部评论

相关推荐

10-24 21:12
已编辑
上海交通大学 C++
技术一面,面试官看起来挺年轻,很开朗,全程压力不是很大,甚至感觉有些水。估计周围都在面试,巨吵。1.项目没细问,就问了下困难以及如何解决。2.进程线程协程,协程如何实现非阻塞。3.c++11新特性,着重问了智能指针。智能指针线程安全。4.epoll原理,为什么用红黑树,为什么快。5.写单例,写锁判断这块儿还不熟,卡了一下。6.c++ vector一些问题。7.手撕一道二分,边界条件没调出来呜呜一个小时后二面,面试官有点不苟言笑,又是问了问项目难点及解决方式。然后就是八股。1.c++11新特性,又着重问了智能指针介绍以及实现,lamada表达式本质是什么2.堆和栈的区别,一个类只能在堆上创建怎么做,只能在栈上创建怎么做。3.多态以及虚函数,inline。4.怎么理解递归。5.手撕,用例没全过,说我至少代码规范挺好的(笑死)10min后三面  看样子是个大佬,介绍项目时聊了一些开源实现。我都没看过,建议我去看看(笑),全程围绕项目八股和拓展一半一半1.进程线程理解,上下文切换是什么流程。2.进程调度,切换时机怎么把握。3.多线程开发怎么做的,怎么优化并发。4.原子变量怎么实现的,内存屏障有了解过吗5.怎么保证服务可用性,单点故障,逮着我问分布式6.很多网关服务用域名而不是IP作为地址,你觉得为什么。只列出能记得的了,
滴滴一面248人在聊 查看18道真题和解析
点赞 评论 收藏
分享
3 11 评论
分享
牛客网
牛客企业服务