字节跳动 · Trae

后端开发工程师一面面经

完整信息

52 条问法 · 32 道题

本篇目录
字节一面(Trae) 流程:自我介绍 → 实习项目深挖(知识库平台 + API-K 鉴权 + 缓存方案)→ Redis 基础 → 用户与组织结构 → 热门文档推荐 → MySQL → HTTPS → 代码测试(SQL + 链表回文)→ 反问。 面试官问题

一、实习项目(架构与功能)

简单自我介绍一下。 你在实习公司其实主要是做知识管理(知识库管理)是吧? 这个项目的总体架构是怎么样的? 你做的功能有哪些呢? 你那个 API-Key 管理是什么意思? 用户在 Coze 这种平台上可以捏一个 Agent,知识库从你们那边获取,那他要获取知识库本身需要通过工具来获取,这个工具封装谁做的?

二、鉴权机制

鉴权方式还有哪一些? JWT 的结构是怎么样的?为什么 JWT 你觉得它是安全的? OAuth 的流程? 你做的这个 API 管理,是先创建一个新的(API-Key),然后再做鉴权是吗?

三、QPS 与缓存方案

QPS 多高? 如果我想让你支持千万级 QPS,你有哪些方案? 我问的是固定的,如果(请求)不一样你怎么做缓存呢? 你刚才说引入了 Redis 缓存实现了热门文档统计与查询,将 MySQL 压力缓解,是这么回事吗? 对于 API-Key 管理这边会多次查数据库,你打算用缓存,怎么使用这个缓存? 用户都有一个 API-Key 吗?是用户概念还是公司概念? 你这个方案会不会导致内存爆掉?

四、Redis 基础

Redis 的数据类型有哪些? Hash 的 Key 数量多和少对存储有影响吗? Redis 查询比较慢,你有什么方案分析?

五、用户与组织结构

简单介绍一下用户删除/组织结构这部分。 为什么公司的组织结构你们是怎么拿到的? 那为什么能够拿到对方公司的组织结构呢? 刚才说同步数据的时候也同步了组织结构,这句话怎么理解? 你不是说如果一个人离职了,他的一些权限会向上给到上一级负责人吗?这一块是怎么拿到这个数据的? 那这个(团队与管理员的)关联表有关联搭建吗? 这个团队跟组织是没有关系的,是吧? 那你们为什么还要通过他们的业务信息跟组织(关联)呢?

六、热门文档推荐

这个热门文档推荐大概是怎么做的? 你说的只是文档(不分片),他其实不是分片的是吧? 那这个加一(浏览量加一)是? 你所谓的浏览是要点进去是吧? 那这个地方你是怎么确定的(实现浏览量加一的逻辑)? 你写的是啥(往数据库同步怎么写)? 那 zset 的话是不是有可能也很大(大 Key)? 如果慢慢的一天打开了 100 万,不也是会有 100 万吗? 那 zset 为什么要过期? 你们捞出来的时候是捞 20 条,但推荐是 8 条,20 条直接 order by? 但是有些文章已经被删除了? 现在这套方案涉及 Redis 往数据库同步,又涉及数据库往 Redis 同步,有没有别的方案可以做得更好一点?还要保证数据不丢失、准确不丢失。 那你如果是以 Redis 为主的话,你怎么保证这次的量(更新)特别多呢?同时写呢? 你把什么消息队列来把 Redis 数据往数据库里导?

七、MySQL

MySQL 你了解哪些存储引擎? 在 InnoDB 的存储引擎下,有哪一些行级别的锁? 想加一把排他锁可以用什么命令? 快照读和当前读有什么区别? 快照读底层的逻辑?

八、网络

HTTPS 的建立过程是怎么样的?

九、代码测试

一道简单的 SQL 题:有一张成绩表,有学生 id、课程 id、成绩,要求查询至少两门课程及格的学生学号。直接写 SQL。 (另一个算法题)判断链表是否回文,说一下思路并实现。 反问 您所在小组大概是做什么业务的?(面试官回答)做 Trae 的,Trae 是字节做 AI 代码(AI Coding)的。 您认为 Trae 跟像国外的一些编程助手,核心的优势或不足能简单介绍一下吗?(面试官回答)未具体展开(仅简单应答)。 您怎么看编程助手对技术人员的提效以及替代近况?(面试官回答)需求量会先少,高级程序员可能受影响多一点。以前大型项目是高级程序员出架构方案、中级程序员去研发,现在随着能力提升可能他自己一个人就干了。短期完全替代不可能,因为模型还没发展到那种程度。 阿里校招内推码:2T4VR26T
本篇目录
  1. 01
  2. 02
  3. 03
  4. 04
  5. 05
    用户在 Coze 这种平台上可以捏一个 Agent,知识库从你们那边获取,那他要获取知识库本身需要通过工具来获取,这个工具封装谁做的?
  6. 06
  7. 07
  8. 08
  9. 09
    你做的这个 API 管理,是先创建一个新的(API-Key),然后再做鉴权是吗?
  10. 10
  11. 11
  12. 12
  13. 13
    你刚才说引入了 Redis 缓存实现了热门文档统计与查询,将 MySQL 压力缓解,是这么回事吗?
  14. 14
    对于 API-Key 管理这边会多次查数据库,你打算用缓存,怎么使用这个缓存?
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
    你不是说如果一个人离职了,他的一些权限会向上给到上一级负责人吗?这一块是怎么拿到这个数据的?
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
    现在这套方案涉及 Redis 往数据库同步,又涉及数据库往 Redis 同步,有没有别的方案可以做得更好一点?还要保证数据不丢失、准确不丢失。
  40. 40
  41. 41
    那你如果是以 Redis 为主的话,你怎么保证这次的量(更新)特别多呢?同时写呢?
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
    有一张成绩表,有学生 id、课程 id、成绩,要求查询至少两门课程及格的学生学号。直接写 SQL。
  49. 49
  50. 50
  51. 51
    反问
    您认为 Trae 跟像国外的一些编程助手,核心的优势或不足能简单介绍一下吗?
  52. 52

相关公司