跳到主要内容

腾讯云测试开发一面

· 阅读需 6 分钟

第一次面试,有点紧张,面试官看着有点憔悴,不知道是不是工作太累了。

上来先是自我介绍,我就照着简历念了一遍。

面试官先问的青训营项目:

  1. 数据库用的什么, 用的什么语言

    postgresql, go

  2. 用户业务怎么设计的

    认证中间件 表结构:id, name, email..., 加主键

  3. 点赞怎么设计的

    一张表 user_id video_id, 加主键

  4. 如何筛选出两个用户都点赞了的视频

    支支吾吾,想了半天。 先说的 where,但是仔细一想 where 好像做不到 又说是 inner join,面试官让我写出来,但是我不会写,就直说了不会,能不能跳过 面试官说好好好,知道 join 就行

    答案:求两个用户同时点赞的视频

  5. 协程的实现

    不会,就提了一句协程是轻量级的线程,跳过了

接着问 miniob:

  1. 那些是你做的

    update, drop table, subquery, mvcc, null 等

  2. 讲讲 mvcc

    这个我也不太懂,miniob 的 mvcc 是残废的。 说了一下是基于时间戳或者版本号的多版本并发控制。讲了讲多线程同时访问会这么样。 面试官问了问锁级别,什么隔离级别。

  3. 讲讲多线程同时访问会怎么样

    miniob 自己实现了,我没去了解过

  4. sql 解析是你们做的吗,怎么做的

    miniob 自带一些解析,有些是我们自己实现的,用的 flex bison

  5. 内存管理怎么做的

    误解了面试官的意思,我先说的是智能指针,每个 operator 都有自己的数据结构,使用智能指针管理内存。 其实面试官想问的是数据库的内存管理。 答:miniob 自己实现好了,但是我了解过一些,讲了讲 LRU 和 LRU 的实现。

场景:

  1. 如果让你设计一个 web 服务器,你会怎么设计

    不会,提了一下 io 多路复用,没深入了解过。然后又说加个多线程,接着就不会了。

C++:

  1. 虚函数

    讲了讲多态,虚类充当接口,派生类实现接口。

  2. 虚函数表

    不会

  3. 内存对齐

    不知道面试官想问什么,我就说了一下默认是 4 字节对齐。 面试官问如果我申请 6 个字节,会怎么样,我说会补齐到 8 字节。

编程:

  1. 实现一个栈,要求不能使用内置数据结构

    我用链表实现的。

  2. 给你一个数组,长度为 n,你只可以交换 i 和 (i+1)%n。问是否可以使其递增

    腾讯系统有问题,我没看到题目,以为面试官在选题,面试官以为我在思考,我们俩就这样沉默了快十分钟。 我问了一下面试大概什么时候,面试官说没事你先想吧,这才发现。 我的思路是,可以看成是两个数组,奇数位数组和偶数位数组,分别排序,然后检查是否递增。

介绍岗位内容:

主要是做测试工具,服务其他部门,主要是写脚本,写 CI/CD,写测试工具。

我的提问:

  1. 我二面应该准备什么:

    面试官:基础准备以下,最好不要答不上来

  2. 工作期间可以转岗吗:

    面试官:一般工作两年以内是不可以的,如果你想做开发,你可以去投一下开发的岗位

  3. 实习生工作时间:

    面试官:看你,如果你面试过了,随时可以来 其实我想问的是实习生累不累,每天工作几小时

面试官还是很好说话的,就是回答完问题后,面试官那边会有鼠标声,不知道是不是在写面评。

有一些东西记不清了,面试官一直问我 c++内存,经过别人的提醒才知道面试官可能是想问内存序,我都没听过。