<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>大厂面试 on GoClub</title><link>https://go.botsarena.tech/docs/interview/dachang/</link><description>Recent content in 大厂面试 on GoClub</description><generator>Hugo</generator><language>zh-cn</language><atom:link href="https://go.botsarena.tech/docs/interview/dachang/index.xml" rel="self" type="application/rss+xml"/><item><title>lynpt字节SRE二面</title><link>https://go.botsarena.tech/docs/interview/dachang/lynpt-bytedance-sre-2/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/lynpt-bytedance-sre-2/</guid><description>&lt;h1 id="lynpt-字节-sre-二面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;lynpt 字节 SRE 二面&lt;/a&gt;
&lt;/h1&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;根据口述整理，岗位方向偏 SRE。整体考察重点是 K8s、排障方法、学习能力、计算机基础和现场算法。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="面试画像"&gt;面试画像&lt;a class="anchor" href="#%e9%9d%a2%e8%af%95%e7%94%bb%e5%83%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;这场二面围绕“能否快速学习并解决线上问题”展开。面试官持续追问 K8s 的真实使用、学习路径、排障沉淀和遇到陌生问题时的探索方式，基础题覆盖操作系统、网络、数据结构与复杂度，最后用最长回文子串检查代码能力。&lt;/p&gt;

&lt;h2 id="完整题目"&gt;完整题目&lt;a class="anchor" href="#%e5%ae%8c%e6%95%b4%e9%a2%98%e7%9b%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;自我介绍。（两个小项目 + 一篇 CCF C 会议 + 一篇 EI 普会）&lt;/li&gt;
&lt;li&gt;你最近在学习什么技术？（回答 K8s）&lt;/li&gt;
&lt;li&gt;你 K8s 在学校或者什么场景下用过吗？&lt;/li&gt;
&lt;li&gt;能不能介绍一下 K8s 的架构，申请 Pod 的一个执行流程？&lt;/li&gt;
&lt;li&gt;一台 worker 挂掉了，这个信息如何发回数据平面？&lt;/li&gt;
&lt;li&gt;你自己学 K8s 的时候遇到了什么问题，你是怎么解决的？&lt;/li&gt;
&lt;li&gt;如果你不知道一个东西的最佳实践在哪里，你应该怎么做？你是怎么探索的？&lt;/li&gt;
&lt;li&gt;K8s 中，你想把某一个 Pod 的东西复制到宿主机中，你应该怎么做？&lt;/li&gt;
&lt;li&gt;这个和 Docker 的 &lt;code&gt;cp&lt;/code&gt; 命令有什么区别？&lt;/li&gt;
&lt;li&gt;你在学习过程中碰到这些问题你是怎么解决的？你有哪些路径可以解决？&lt;/li&gt;
&lt;li&gt;进程和线程的区别？&lt;/li&gt;
&lt;li&gt;线程间通信有哪些？&lt;/li&gt;
&lt;li&gt;死锁的四个条件是什么？&lt;/li&gt;
&lt;li&gt;死锁避免？&lt;/li&gt;
&lt;li&gt;你在学校的时候有没有做过这方面实践？或者写过什么代码吗？（回答 Go 协程等）&lt;/li&gt;
&lt;li&gt;TCP 三次握手和四次挥手，为什么不能多了少了？&lt;/li&gt;
&lt;li&gt;挥手中的 &lt;code&gt;TIME_WAIT&lt;/code&gt; 是做什么用的？&lt;/li&gt;
&lt;li&gt;解释一下 &lt;code&gt;O(1)&lt;/code&gt;、&lt;code&gt;O(n)&lt;/code&gt;、&lt;code&gt;O(log n)&lt;/code&gt;、&lt;code&gt;O(n^2)&lt;/code&gt;，并举例场景。&lt;/li&gt;
&lt;li&gt;数组和链表的区别是什么？优缺点是什么？有什么使用场景？&lt;/li&gt;
&lt;li&gt;数组和指针哪个更适合大规模的读取和写入？&lt;/li&gt;
&lt;li&gt;服务器负载较高你会怎么排查？&lt;/li&gt;
&lt;li&gt;我需要你在一周内学会 Flink（任意一个产品），你需要怎么学习？学习路径是什么样子的？&lt;/li&gt;
&lt;li&gt;你自己记录的一些排错文档有几篇？是多长时间沉淀下来的？&lt;/li&gt;
&lt;li&gt;算法：求一个字符串的最长回文子串。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="参考答案ai-生成"&gt;参考答案（AI 生成）&lt;a class="anchor" href="#%e5%8f%82%e8%80%83%e7%ad%94%e6%a1%88ai-%e7%94%9f%e6%88%90"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;以下答案由 AI 生成，仅供面试复盘参考。&lt;/p&gt;</description></item><item><title>lynpt字节SRE三面</title><link>https://go.botsarena.tech/docs/interview/dachang/lynpt-bytedance-sre-3/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/lynpt-bytedance-sre-3/</guid><description>&lt;h1 id="lynpt-字节-sre-三面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;lynpt 字节 SRE 三面&lt;/a&gt;
&lt;/h1&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;根据口述整理，岗位方向为 SRE。整体考察重点是项目动机、容器与云原生、Python 并发模型、网络基础、排障方法和现场算法。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="面试画像"&gt;面试画像&lt;a class="anchor" href="#%e9%9d%a2%e8%af%95%e7%94%bb%e5%83%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;这场三面从项目真实性和工程选择切入，持续追问 OJ 系统为什么自研、DinD 难点、部署方式和云上经验。基础题集中在 Docker / K8s、Python GIL、goroutine、网络与 Linux 排障，最后用验证二叉搜索树检查数据结构和递归边界处理。&lt;/p&gt;

&lt;h2 id="完整题目"&gt;完整题目&lt;a class="anchor" href="#%e5%ae%8c%e6%95%b4%e9%a2%98%e7%9b%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;自我介绍。&lt;/li&gt;
&lt;li&gt;你的 OJ 系统是大作业，还是有实际应用需求？&lt;/li&gt;
&lt;li&gt;自研 OJ 相比开源平台或 LeetCode 类现成平台的价值是什么？&lt;/li&gt;
&lt;li&gt;在这个项目中你遇到的最大难点是什么？（回答 DinD）&lt;/li&gt;
&lt;li&gt;部署是上云了，还是物理主机？（回答第二个项目的上云）&lt;/li&gt;
&lt;li&gt;Docker 和 K8s 的区别？&lt;/li&gt;
&lt;li&gt;你对 Python 了解到什么程度？&lt;/li&gt;
&lt;li&gt;Python 多线程能力受什么限制？&lt;/li&gt;
&lt;li&gt;Goroutine 和线程的区别？&lt;/li&gt;
&lt;li&gt;你对大数据方面的了解是什么？&lt;/li&gt;
&lt;li&gt;你的常用编程语言？&lt;/li&gt;
&lt;li&gt;Socket、TCP、UDP 分别能解决什么问题？&lt;/li&gt;
&lt;li&gt;Java 你平时用得多吗？&lt;/li&gt;
&lt;li&gt;写代码 debug 时，你常用的 troubleshooting 工具或方案？（分别讲 Docker、Go、Python）&lt;/li&gt;
&lt;li&gt;Linux 端口被打满了应该如何排查？&lt;/li&gt;
&lt;li&gt;算法：检验是否二叉搜索树。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="参考答案ai-生成"&gt;参考答案（AI 生成）&lt;a class="anchor" href="#%e5%8f%82%e8%80%83%e7%ad%94%e6%a1%88ai-%e7%94%9f%e6%88%90"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;以下答案由 AI 生成，仅供面试复盘参考。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="项目与云原生"&gt;项目与云原生&lt;a class="anchor" href="#%e9%a1%b9%e7%9b%ae%e4%b8%8e%e4%ba%91%e5%8e%9f%e7%94%9f"&gt;#&lt;/a&gt;&lt;/h2&gt;


&lt;h3 id="自我介绍怎么讲"&gt;自我介绍怎么讲&lt;a class="anchor" href="#%e8%87%aa%e6%88%91%e4%bb%8b%e7%bb%8d%e6%80%8e%e4%b9%88%e8%ae%b2"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;可直接说：&lt;/strong&gt; 我主要做后端和云原生方向，常用 Go 和 Python。项目上做过 OJ 系统和一个云上部署项目，OJ 重点在判题隔离、容器执行和资源控制，云上项目重点在服务部署、域名反代、日志和基础运维。我的准备方向和岗位匹配点是后端工程能力、容器化实践、Linux 排障和持续学习能力。&lt;/p&gt;</description></item><item><title>Naato 字节飞书</title><link>https://go.botsarena.tech/docs/interview/dachang/naato-bytedance-feishu/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/naato-bytedance-feishu/</guid><description>&lt;h1 id="naato-字节飞书"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;Naato 字节飞书&lt;/a&gt;
&lt;/h1&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;根据转写整理，岗位方向偏 AI 质量效能 / Agent 测试。以下只保留核心题目和少量上下文。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="简历项目深挖"&gt;简历项目深挖&lt;a class="anchor" href="#%e7%ae%80%e5%8e%86%e9%a1%b9%e7%9b%ae%e6%b7%b1%e6%8c%96"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;简历里两个项目，哪个更难？为什么？&lt;/li&gt;
&lt;li&gt;略去（偏向简历项目本身）&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="ai-agent--比赛项目"&gt;AI Agent / 比赛项目&lt;a class="anchor" href="#ai-agent--%e6%af%94%e8%b5%9b%e9%a1%b9%e7%9b%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;MCP、Skill、CLI 分别怎么理解？它们的区别是什么？&lt;/li&gt;
&lt;li&gt;飞书 AI 挑战赛里你主要做了什么？&lt;/li&gt;
&lt;li&gt;略去（偏向项目本身）&lt;/li&gt;
&lt;li&gt;对多 Agent 协作有什么理解？&lt;/li&gt;
&lt;li&gt;自己用过 openclaw 或者 hermes 吗？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="基础知识"&gt;基础知识&lt;a class="anchor" href="#%e5%9f%ba%e7%a1%80%e7%9f%a5%e8%af%86"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Go 和 Python 哪个更熟？&lt;/li&gt;
&lt;li&gt;对于 AOP（面向切面编程）有什么了解？&lt;/li&gt;
&lt;li&gt;RabbitMQ 的生产消费模型是什么？&lt;/li&gt;
&lt;li&gt;RabbitMQ 如何保证顺序消费？&lt;/li&gt;
&lt;li&gt;限流器的令牌怎么算？令牌桶的核心思想是什么？&lt;/li&gt;
&lt;li&gt;MySQL 有哪些索引类型？&lt;/li&gt;
&lt;li&gt;联合索引怎么判断是否命中？&lt;code&gt;(A, B, C)&lt;/code&gt; 跳过 &lt;code&gt;B&lt;/code&gt; 用 &lt;code&gt;A&lt;/code&gt; 和 &lt;code&gt;C&lt;/code&gt; 会怎样？&lt;/li&gt;
&lt;li&gt;Linux 文件权限怎么表示？&lt;code&gt;chmod 755&lt;/code&gt; 是什么意思？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="算法"&gt;算法&lt;a class="anchor" href="#%e7%ae%97%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://leetcode.cn/problems/arithmetic-slices/description/"&gt;等差数列划分（力扣 413）&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="行为面与反问"&gt;行为面与反问&lt;a class="anchor" href="#%e8%a1%8c%e4%b8%ba%e9%9d%a2%e4%b8%8e%e5%8f%8d%e9%97%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;有没有跟老师做项目？平时有没有和同学合作项目？&lt;/li&gt;
&lt;li&gt;最近压力最大的事情是什么？怎么排解压力？&lt;/li&gt;
&lt;li&gt;什么时候可以入职？能实习多久？&lt;/li&gt;
&lt;li&gt;反问：团队业务更偏测试，还是更偏 Agent 本身？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="参考答案ai-生成"&gt;参考答案（AI 生成）&lt;a class="anchor" href="#%e5%8f%82%e8%80%83%e7%ad%94%e6%a1%88ai-%e7%94%9f%e6%88%90"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;以下答案由 AI 生成，仅供面试复盘参考。&lt;/p&gt;</description></item><item><title>超級の新人字节Agent开发实习一面</title><link>https://go.botsarena.tech/docs/interview/dachang/xinren-bytedance-agent-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/xinren-bytedance-agent-1/</guid><description>&lt;h1 id="超級の新人-字节-agent-开发实习一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;超級の新人 字节 Agent 开发实习一面&lt;/a&gt;
&lt;/h1&gt;


&lt;h2 id="背景"&gt;背景&lt;a class="anchor" href="#%e8%83%8c%e6%99%af"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;boss 上有 hr 让发简历，看着挺对口，一看居然是字节，于是抱着试试看的心理投了一下，没想到一周后居然约面了。&lt;/p&gt;

&lt;h2 id="面试内容"&gt;面试内容&lt;a class="anchor" href="#%e9%9d%a2%e8%af%95%e5%86%85%e5%ae%b9"&gt;#&lt;/a&gt;&lt;/h2&gt;


&lt;h3 id="自我介绍与项目"&gt;自我介绍与项目&lt;a class="anchor" href="#%e8%87%aa%e6%88%91%e4%bb%8b%e7%bb%8d%e4%b8%8e%e9%a1%b9%e7%9b%ae"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;上来先自我介绍&lt;/li&gt;
&lt;li&gt;问一下实习状况，大一就可以实习了吗？&lt;/li&gt;
&lt;li&gt;询问对 Agent 自进化的理解&lt;/li&gt;
&lt;li&gt;Agent 自进化最后的产物，提取的标准是怎样的？提取内容质量的好坏是怎样评估的？&lt;/li&gt;
&lt;li&gt;用于做 Agent 自进化的数据从哪来的？怎么获得高质量数据的？怎么判断它是高质量数据？&lt;/li&gt;
&lt;li&gt;Agent 自进化在沙箱环境做的目的是怎么考虑的？为什么一定得在沙箱环境做？&lt;/li&gt;
&lt;li&gt;沙盒快照和回滚，快照的选择时机大概是怎样做的？&lt;/li&gt;
&lt;li&gt;沙盒的安全性有了解吗？它是怎么做的隔离？&lt;/li&gt;
&lt;li&gt;评测体系是怎么做的？&lt;/li&gt;
&lt;li&gt;Harness 层现在是怎么构建的？&lt;/li&gt;
&lt;li&gt;举实际例子来说说怎么从头到尾改进评测的？&lt;/li&gt;
&lt;li&gt;做评测 Harness 的目的是为了做什么？&lt;/li&gt;
&lt;li&gt;构建的评测体系是如何和业务内的实际场景去应用的？&lt;/li&gt;
&lt;li&gt;评测是从哪些维度去做的，评判的标准是什么？&lt;/li&gt;
&lt;li&gt;项目经历里面 Hello Agent 智能体的架构，为什么把它转化为 Go 语言？出于什么考虑？&lt;/li&gt;
&lt;li&gt;使用 Go 语言重写其中遇到什么问题？&lt;/li&gt;
&lt;li&gt;说一下模块和模块的依赖关系？这些模块是怎么做的？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="算法"&gt;算法&lt;a class="anchor" href="#%e7%ae%97%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;


&lt;h3 id="小于-n-的最大数"&gt;小于 n 的最大数&lt;a class="anchor" href="#%e5%b0%8f%e4%ba%8e-n-%e7%9a%84%e6%9c%80%e5%a4%a7%e6%95%b0"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;数组 A 中给定可以使用的 1~9 的数，返回由 A 数组中的元素组成的小于 n 的最大数。&lt;/p&gt;
&lt;p&gt;例如 A={1, 2, 4, 9}，n=2533，返回 2499。&lt;/p&gt;

&lt;h2 id="面试感受"&gt;面试感受&lt;a class="anchor" href="#%e9%9d%a2%e8%af%95%e6%84%9f%e5%8f%97"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;hr 和面试官都挺好的，效果不太好说，感觉答得一般般。出人意料的一直都在问实习和自己的项目，八股文一点也没考，最后的算法题也没做出来，解法也不知道说的对不对，希望能过。&lt;/p&gt;</description></item><item><title>卡Q因字节AI应用开发一面</title><link>https://go.botsarena.tech/docs/interview/dachang/kaqyin-bytedance-ai-app-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/kaqyin-bytedance-ai-app-1/</guid><description>&lt;h1 id="卡q因-字节-ai-应用开发一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;卡Q因 字节 AI 应用开发一面&lt;/a&gt;
&lt;/h1&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;根据口述整理，岗位为 AI 应用开发实习生。面试包含自我介绍与项目拷打环节，以下为一面题目与参考答案。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="计算机基础"&gt;计算机基础&lt;a class="anchor" href="#%e8%ae%a1%e7%ae%97%e6%9c%ba%e5%9f%ba%e7%a1%80"&gt;#&lt;/a&gt;&lt;/h2&gt;


&lt;h3 id="计算机网络"&gt;计算机网络&lt;a class="anchor" href="#%e8%ae%a1%e7%ae%97%e6%9c%ba%e7%bd%91%e7%bb%9c"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;TCP/UDP 属于哪一层的协议？区别是什么&lt;/li&gt;
&lt;li&gt;TCP 如何实现可靠传输&lt;/li&gt;
&lt;li&gt;IP 协议的作用&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="操作系统"&gt;操作系统&lt;a class="anchor" href="#%e6%93%8d%e4%bd%9c%e7%b3%bb%e7%bb%9f"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;用户区、内核区的区别&lt;/li&gt;
&lt;li&gt;进程线程区别&lt;/li&gt;
&lt;li&gt;讲讲进程的上下文切换&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="数据库"&gt;数据库&lt;a class="anchor" href="#%e6%95%b0%e6%8d%ae%e5%ba%93"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;如何查看一条 SQL 的执行情况&lt;/li&gt;
&lt;li&gt;事务特性是什么&lt;/li&gt;
&lt;li&gt;事务隔离级别&lt;/li&gt;
&lt;li&gt;讲讲 redo log 和 undo log&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="ai-方面"&gt;AI 方面&lt;a class="anchor" href="#ai-%e6%96%b9%e9%9d%a2"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;什么是 prompt，如何写好 prompt&lt;/li&gt;
&lt;li&gt;RAG 是什么？讲讲 RAG 的流程&lt;/li&gt;
&lt;li&gt;模型上下文窗口是什么&lt;/li&gt;
&lt;li&gt;如何解决上下文窗口过长的问题&lt;/li&gt;
&lt;li&gt;讲讲模型的幻觉和漂移&lt;/li&gt;
&lt;li&gt;模型胡乱编造回答怎么解决&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="算法题"&gt;算法题&lt;a class="anchor" href="#%e7%ae%97%e6%b3%95%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;二叉搜索树转为有向链表
链接：https://leetcode.cn/problems/convert-binary-search-tree-to-sorted-doubly-linked-list/description/&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="参考答案ai-生成"&gt;参考答案（AI 生成）&lt;a class="anchor" href="#%e5%8f%82%e8%80%83%e7%ad%94%e6%a1%88ai-%e7%94%9f%e6%88%90"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;以下答案由 AI 生成，仅供面试复盘参考。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="1-tcpudp-属于哪一层的协议区别是什么"&gt;1. TCP/UDP 属于哪一层的协议？区别是什么&lt;a class="anchor" href="#1-tcpudp-%e5%b1%9e%e4%ba%8e%e5%93%aa%e4%b8%80%e5%b1%82%e7%9a%84%e5%8d%8f%e8%ae%ae%e5%8c%ba%e5%88%ab%e6%98%af%e4%bb%80%e4%b9%88"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;答：TCP 和 UDP 都工作在 OSI 模型的传输层，负责端到端的数据传输。TCP 是面向连接的协议，通信前需要通过三次握手建立连接，传输完成后通过四次挥手释放连接，具备确认应答、重传、流量控制和拥塞控制机制，可以保证数据可靠有序地送达，但是协议头部开销更大，传输效率会受到一定影响，适合对可靠性要求高的场景；UDP 是无连接协议，不需要建立和断开连接，头部开销很小，传输速度快，但是不提供可靠性保障，不会重传丢失报文，也没有拥塞控制，可能出现丢包、乱序，适合直播、游戏这类容忍少量丢包、追求实时性的业务。&lt;/p&gt;

&lt;h3 id="2-tcp-如何实现可靠传输"&gt;2. TCP 如何实现可靠传输&lt;a class="anchor" href="#2-tcp-%e5%a6%82%e4%bd%95%e5%ae%9e%e7%8e%b0%e5%8f%af%e9%9d%a0%e4%bc%a0%e8%be%93"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;答：TCP 依靠多项机制共同实现可靠传输，首先为传输的每一个字节分配序列号，接收方依据序列号完成报文排序，解决乱序问题；接收方收到数据之后会返回 ACK 确认应答报文，告知发送方已经成功接收的数据位置；发送方发送报文后开启超时计时器，如果超时没有收到对应的 ACK，就会触发超时重传重新发送报文。除此之外滑动窗口实现流量控制，根据接收方缓冲区大小限制发送速率，避免接收端被打垮；拥塞控制通过慢启动、拥塞避免、快重传、快恢复策略感知网络状态，防止网络过载造成丢包，整套机制共同保障数据完整有序交付。&lt;/p&gt;</description></item><item><title>Imy-SHEIN数据库平台实习一面（base南京）</title><link>https://go.botsarena.tech/docs/interview/dachang/imy-shein-base/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/imy-shein-base/</guid><description>&lt;h1 id="shein-数据库平台实习一面南京"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;SHEIN 数据库平台实习一面（南京）&lt;/a&gt;
&lt;/h1&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;很多都是根据简历的问题进行追问的，但是也没有多深入就不写了，主要是横向&lt;/p&gt;
&lt;/blockquote&gt;&lt;ol&gt;
&lt;li&gt;请进行一下自我介绍。&lt;/li&gt;
&lt;li&gt;简单介绍一下实习经历：使用了哪些工具，主要承担什么任务？&lt;/li&gt;
&lt;li&gt;是否使用 Java 写过项目？主要开发语言是什么？&lt;/li&gt;
&lt;li&gt;介绍一个最熟悉的项目。项目中遇到的最困难问题是什么，如何解决？如果问题进一步升级，会如何处理？&lt;/li&gt;
&lt;li&gt;你对数据库的了解程度如何？请介绍 MySQL、ClickHouse、StarRocks 等数据库。&lt;/li&gt;
&lt;li&gt;MySQL、PostgreSQL 以及上述 OLAP 数据库如何设计主从一致性？发生故障后如何恢复？&lt;/li&gt;
&lt;li&gt;当前业务主要采用 MySQL 集群部署，谈谈你的设计思路。&lt;/li&gt;
&lt;li&gt;是否有慢查询分析经验？通常如何定位和优化？&lt;/li&gt;
&lt;li&gt;介绍一下 goroutine 和 GMP 调度模型。&lt;/li&gt;
&lt;li&gt;为什么 goroutine 是轻量级的？&lt;/li&gt;
&lt;li&gt;为什么 goroutine 的调度成本比线程低？请解释底层原理。&lt;/li&gt;
&lt;li&gt;反问环节：岗位的发展方向等。&lt;/li&gt;
&lt;li&gt;笔试：146、210&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>程序员奶牛-大厂面试合集</title><link>https://go.botsarena.tech/docs/interview/dachang/interview-issue-63/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/interview-issue-63/</guid><description>&lt;h1 id="五场后端面试综合面经"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;五场后端面试综合面经&lt;/a&gt;
&lt;/h1&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;根据得物社区工程、小红书数据库中间件、原力灵机等面试问题合并整理
同义问题已合并；能体现考察深度的连续追问予以保留。本文只包含问题，不包含参考答案。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="一自我介绍与求职意向"&gt;一、自我介绍与求职意向&lt;a class="anchor" href="#%e4%b8%80%e8%87%aa%e6%88%91%e4%bb%8b%e7%bb%8d%e4%b8%8e%e6%b1%82%e8%81%8c%e6%84%8f%e5%90%91"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;请在 5 分钟内做一个简单的自我介绍。&lt;/li&gt;
&lt;li&gt;请选择一个最能展现个人特点的项目，并重点介绍其中的亮点、挑战和有意思的设计。&lt;/li&gt;
&lt;li&gt;你可以实习多久？是否能够连续实习 5～6 个月？&lt;/li&gt;
&lt;li&gt;你未来主要想做传统后端、数据库中间件，还是 Agent 应用开发？为什么？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="二短视频-feed-流项目"&gt;二、短视频 Feed 流项目&lt;a class="anchor" href="#%e4%ba%8c%e7%9f%ad%e8%a7%86%e9%a2%91-feed-%e6%b5%81%e9%a1%b9%e7%9b%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;


&lt;h3 id="1-项目架构与数据模型"&gt;1. 项目架构与数据模型&lt;a class="anchor" href="#1-%e9%a1%b9%e7%9b%ae%e6%9e%b6%e6%9e%84%e4%b8%8e%e6%95%b0%e6%8d%ae%e6%a8%a1%e5%9e%8b"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;请介绍短视频 Feed 流系统的整体架构、核心链路和你负责的部分。&lt;/li&gt;
&lt;li&gt;Feed 流项目中最主要的技术挑战是什么？你做了哪些有价值的取舍或优化？&lt;/li&gt;
&lt;li&gt;Feed 流的核心数据模型是怎样的？哪些数据最终持久化到 MySQL？&lt;/li&gt;
&lt;li&gt;用户关注关系和粉丝关系表是如何设计的？&lt;/li&gt;
&lt;li&gt;Feed 流中的 MySQL 索引是如何设计的？为什么这样设计？&lt;/li&gt;
&lt;li&gt;项目中的业务数据量有多大？MySQL、Redis 分别保存了多少数据？&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="2-查询与分页"&gt;2. 查询与分页&lt;a class="anchor" href="#2-%e6%9f%a5%e8%af%a2%e4%b8%8e%e5%88%86%e9%a1%b5"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Feed 为什么采用游标分页？游标分页的原理是什么？&lt;/li&gt;
&lt;li&gt;游标分页为什么能够缓解深分页问题？它与 &lt;code&gt;LIMIT offset&lt;/code&gt; 相比有什么区别？&lt;/li&gt;
&lt;li&gt;ID-Detail 分离解决了什么问题？读取一页 Feed 时，ID 与详情是如何查询和组装的？&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="3-推拉结合与大-v-分发"&gt;3. 推拉结合与大 V 分发&lt;a class="anchor" href="#3-%e6%8e%a8%e6%8b%89%e7%bb%93%e5%90%88%e4%b8%8e%e5%a4%a7-v-%e5%88%86%e5%8f%91"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;普通作者和大 V 分别采用什么分发模式？各自的读写成本是什么？&lt;/li&gt;
&lt;li&gt;大 V 拥有百万级粉丝时，发布内容产生的写扩散问题如何处理？&lt;/li&gt;
&lt;li&gt;推拉模式的切换阈值为什么设置为一万粉丝？为什么不是更多或更少？&lt;/li&gt;
&lt;li&gt;既然读扩散会增加读取成本，为什么大 V 反而适合使用拉模式？&lt;/li&gt;
&lt;li&gt;推拉结合相对于纯推或纯拉，主要优化了哪一部分性能？又引入了哪些复杂度？&lt;/li&gt;
&lt;li&gt;为什么不能对所有作者统一采用拉模式？&lt;/li&gt;
&lt;li&gt;如果一个用户关注的全部都是大 V，他的请求是否会退化成纯拉模式？这种最坏读路径如何处理？&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="4-压测与容量评估"&gt;4. 压测与容量评估&lt;a class="anchor" href="#4-%e5%8e%8b%e6%b5%8b%e4%b8%8e%e5%ae%b9%e9%87%8f%e8%af%84%e4%bc%b0"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;做 Feed 压测时，整套服务、MySQL、Redis 和消息队列的测试环境是如何搭建的？&lt;/li&gt;
&lt;li&gt;压测使用了怎样的数据规模、请求比例和并发模型？&lt;/li&gt;
&lt;li&gt;如何根据 QPS、P95/P99、错误率、数据库连接数和 Redis 延迟判断系统瓶颈？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="三多级缓存与-redis-故障治理"&gt;三、多级缓存与 Redis 故障治理&lt;a class="anchor" href="#%e4%b8%89%e5%a4%9a%e7%ba%a7%e7%bc%93%e5%ad%98%e4%b8%8e-redis-%e6%95%85%e9%9a%9c%e6%b2%bb%e7%90%86"&gt;#&lt;/a&gt;&lt;/h2&gt;


&lt;h3 id="1-本地缓存redis-与-mysql"&gt;1. 本地缓存、Redis 与 MySQL&lt;a class="anchor" href="#1-%e6%9c%ac%e5%9c%b0%e7%bc%93%e5%ad%98redis-%e4%b8%8e-mysql"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;本地缓存、Redis、MySQL 的三级数据访问链路分别承担什么职责？&lt;/li&gt;
&lt;li&gt;什么数据适合放在本地缓存？什么数据不适合本地化，更适合放在 Redis 或权威存储？&lt;/li&gt;
&lt;li&gt;用户或作者的基本信息为什么适合放在本地缓存？&lt;/li&gt;
&lt;li&gt;本地缓存的生命周期如何管理？采用 TTL、容量淘汰还是主动失效？&lt;/li&gt;
&lt;li&gt;本地缓存的过期时间一般设置多久？&lt;/li&gt;
&lt;li&gt;为什么选择 15 分钟，而不是更短或更长？&lt;/li&gt;
&lt;li&gt;TTL 低于 15 分钟为什么可能影响性能或用户体验？本地缓存未命中后不是还可以访问 Redis 吗？&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="2-mysql-与-redis-一致性"&gt;2. MySQL 与 Redis 一致性&lt;a class="anchor" href="#2-mysql-%e4%b8%8e-redis-%e4%b8%80%e8%87%b4%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;MySQL 与 Redis 之间的数据一致性如何保证？&lt;/li&gt;
&lt;li&gt;如果采用定期检查或对账，具体检查什么、如何发现差异、如何修复？&lt;/li&gt;
&lt;li&gt;MySQL 数据同步或回灌到 Redis 需要时间，数据量很大时如何避免一次性重建带来的冲击？&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="3-redis-故障追问链"&gt;3. Redis 故障追问链&lt;a class="anchor" href="#3-redis-%e6%95%85%e9%9a%9c%e8%bf%bd%e9%97%ae%e9%93%be"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Redis 整体不可用时，系统如何处理？&lt;/li&gt;
&lt;li&gt;Redis 挂掉后，C 端流量直接回源 MySQL，数据库能否承受？&lt;/li&gt;
&lt;li&gt;Redis 集群部分节点或一半节点故障时，会对 MySQL 造成怎样的冲击？&lt;/li&gt;
&lt;li&gt;为了保护 MySQL，应限制哪一层、哪一类请求的流量？&lt;/li&gt;
&lt;li&gt;Redis 故障时，系统是直接拒绝访问、返回降级数据，还是允许部分请求回源？&lt;/li&gt;
&lt;li&gt;用户侧会看到报错、旧数据还是简化结果？如何确定降级优先级？&lt;/li&gt;
&lt;li&gt;Redis 节点故障并发生数据丢失时，缓存如何恢复和重建？&lt;/li&gt;
&lt;li&gt;恢复期间如何避免大量请求与全量回灌同时压垮 MySQL？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="四go-并发内存与-gc"&gt;四、Go 并发、内存与 GC&lt;a class="anchor" href="#%e5%9b%9bgo-%e5%b9%b6%e5%8f%91%e5%86%85%e5%ad%98%e4%b8%8e-gc"&gt;#&lt;/a&gt;&lt;/h2&gt;


&lt;h3 id="1-goroutine-与-gmp"&gt;1. Goroutine 与 GMP&lt;a class="anchor" href="#1-goroutine-%e4%b8%8e-gmp"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Go 的 goroutine 与操作系统线程是怎样对应的？&lt;/li&gt;
&lt;li&gt;与 Python 的并发方式相比，goroutine 有哪些优势和缺点？&lt;/li&gt;
&lt;li&gt;为什么 goroutine 通常比线程轻量？它是否在所有场景下都更快？&lt;/li&gt;
&lt;li&gt;Java 的协程或虚拟线程与 Go goroutine 有什么差别？协程一定比线程快吗？&lt;/li&gt;
&lt;li&gt;请介绍 GMP 调度模型中 G、M、P 的职责及调度流程。&lt;/li&gt;
&lt;li&gt;Goroutine 发生阻塞系统调用时，G、M、P 分别会发生什么变化？&lt;/li&gt;
&lt;li&gt;多个 P 都有本地运行队列时，调度器如何进行任务分配和负载均衡？&lt;/li&gt;
&lt;li&gt;什么场景下增加线程或 goroutine 能提升性能？什么场景下不能？&lt;/li&gt;
&lt;li&gt;高并发是否一定能够提效？goroutine 是否创建得越多越好？&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="2-channel-与同步原语"&gt;2. Channel 与同步原语&lt;a class="anchor" href="#2-channel-%e4%b8%8e%e5%90%8c%e6%ad%a5%e5%8e%9f%e8%af%ad"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Channel 的底层结构和工作原理是什么？&lt;/li&gt;
&lt;li&gt;无缓冲 channel 和有缓冲 channel 有什么区别？分别适合什么场景？&lt;/li&gt;
&lt;li&gt;使用 channel 时有哪些需要注意的点？&lt;/li&gt;
&lt;li&gt;你了解 &lt;code&gt;sync.WaitGroup&lt;/code&gt; 吗？它有哪些主要方法，使用时有哪些风险？&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Mutex&lt;/code&gt; 与 &lt;code&gt;RWMutex&lt;/code&gt; 有什么区别？什么场景下优先选择 &lt;code&gt;RWMutex&lt;/code&gt;？&lt;/li&gt;
&lt;li&gt;什么是自旋锁？它与互斥锁有什么区别，分别适合什么场景？&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="3-map-与并发安全"&gt;3. Map 与并发安全&lt;a class="anchor" href="#3-map-%e4%b8%8e%e5%b9%b6%e5%8f%91%e5%ae%89%e5%85%a8"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;使用 Go 原生 map 时有哪些需要注意的地方？&lt;/li&gt;
&lt;li&gt;Go 原生 map 是并发安全的吗？多个 goroutine 并发读写会发生什么？&lt;/li&gt;
&lt;li&gt;Map 并发读写不安全的底层原因是什么？&lt;/li&gt;
&lt;li&gt;如何解决 map 的并发安全问题？&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sync.Map&lt;/code&gt; 适合什么场景？它的实现原理是什么？&lt;/li&gt;
&lt;li&gt;传统 &lt;code&gt;sync.Map&lt;/code&gt; 中的只读区 &lt;code&gt;read&lt;/code&gt; 和脏区 &lt;code&gt;dirty&lt;/code&gt; 如何协作并保证数据可见性？&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="4-内存管理与-gc"&gt;4. 内存管理与 GC&lt;a class="anchor" href="#4-%e5%86%85%e5%ad%98%e7%ae%a1%e7%90%86%e4%b8%8e-gc"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Go 的内存是如何管理的？对象如何分配和回收？&lt;/li&gt;
&lt;li&gt;常见的垃圾回收算法有哪些？它们分别适合什么场景？&lt;/li&gt;
&lt;li&gt;Go 的垃圾回收是否只有三色标记？完整 GC 流程还包括哪些阶段？&lt;/li&gt;
&lt;li&gt;请详细介绍三色标记法的工作过程。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="五mysql索引与分库分表"&gt;五、MySQL、索引与分库分表&lt;a class="anchor" href="#%e4%ba%94mysql%e7%b4%a2%e5%bc%95%e4%b8%8e%e5%88%86%e5%ba%93%e5%88%86%e8%a1%a8"&gt;#&lt;/a&gt;&lt;/h2&gt;


&lt;h3 id="1-sql-执行链路"&gt;1. SQL 执行链路&lt;a class="anchor" href="#1-sql-%e6%89%a7%e8%a1%8c%e9%93%be%e8%b7%af"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;一条 &lt;code&gt;INSERT&lt;/code&gt; 或 &lt;code&gt;UPDATE&lt;/code&gt; SQL 发送到 MySQL 后，服务器内部会经历哪些环节？&lt;/li&gt;
&lt;li&gt;SQL 执行过程中，连接层、解析器、优化器、执行器、InnoDB、Buffer Pool、redo log、undo log 和 binlog 分别起什么作用？&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="2-innodb-与-b-树索引"&gt;2. InnoDB 与 B+ 树索引&lt;a class="anchor" href="#2-innodb-%e4%b8%8e-b-%e6%a0%91%e7%b4%a2%e5%bc%95"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;MySQL 索引有哪些分类？&lt;/li&gt;
&lt;li&gt;InnoDB 索引是如何实现的？&lt;/li&gt;
&lt;li&gt;B+ 树的数据结构是什么样的？InnoDB 为什么选择 B+ 树？&lt;/li&gt;
&lt;li&gt;B+ 树索引有哪些优势？&lt;/li&gt;
&lt;li&gt;哪些情况会导致 B+ 树索引的查询性能变差？&lt;/li&gt;
&lt;li&gt;索引字段被高并发更新时，会对 B+ 树和写入性能产生什么影响？&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="3-索引设计与优化"&gt;3. 索引设计与优化&lt;a class="anchor" href="#3-%e7%b4%a2%e5%bc%95%e8%ae%be%e8%ae%a1%e4%b8%8e%e4%bc%98%e5%8c%96"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;创建索引应遵循哪些原则？什么场景需要创建索引？&lt;/li&gt;
&lt;li&gt;结合 Feed 流项目，哪些字段适合建立索引？哪些字段不适合？&lt;/li&gt;
&lt;li&gt;什么是二级索引和回表？&lt;/li&gt;
&lt;li&gt;什么是覆盖索引？如何通过覆盖索引减少回表？&lt;/li&gt;
&lt;li&gt;什么是联合索引的最左前缀原则？&lt;/li&gt;
&lt;li&gt;多列联合索引应该如何确定字段与顺序？&lt;/li&gt;
&lt;li&gt;哪些写法或场景会造成索引失效？&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="4-慢-sql-排查"&gt;4. 慢 SQL 排查&lt;a class="anchor" href="#4-%e6%85%a2-sql-%e6%8e%92%e6%9f%a5"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;一条 SQL 查询很慢，你的完整排查思路是什么？&lt;/li&gt;
&lt;li&gt;如果 SQL 扫描行数很多、查询范围很大，可以从哪些方面改造？&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="5-分库分表与中间件"&gt;5. 分库分表与中间件&lt;a class="anchor" href="#5-%e5%88%86%e5%ba%93%e5%88%86%e8%a1%a8%e4%b8%8e%e4%b8%ad%e9%97%b4%e4%bb%b6"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;项目中是否使用过分库分表？你如何理解分库、分表的适用场景和代价？&lt;/li&gt;
&lt;li&gt;一个已经上线且持续有业务流量的单库单表系统要进行拆分，需要考虑哪些问题？完整迁移流程如何设计？&lt;/li&gt;
&lt;li&gt;你了解哪些分库分表开源组件或数据库中间件？&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="6-go-数据库连接池"&gt;6. Go 数据库连接池&lt;a class="anchor" href="#6-go-%e6%95%b0%e6%8d%ae%e5%ba%93%e8%bf%9e%e6%8e%a5%e6%b1%a0"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Go 连接 MySQL 使用了什么驱动、ORM 或组件？&lt;/li&gt;
&lt;li&gt;数据库连接池存在的意义是什么？&lt;/li&gt;
&lt;li&gt;ORM 或数据库连接池有哪些关键配置参数？这些参数应该如何设置？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="六redis-数据结构rehash-与集群"&gt;六、Redis 数据结构、Rehash 与集群&lt;a class="anchor" href="#%e5%85%adredis-%e6%95%b0%e6%8d%ae%e7%bb%93%e6%9e%84rehash-%e4%b8%8e%e9%9b%86%e7%be%a4"&gt;#&lt;/a&gt;&lt;/h2&gt;


&lt;h3 id="1-基础数据结构"&gt;1. 基础数据结构&lt;a class="anchor" href="#1-%e5%9f%ba%e7%a1%80%e6%95%b0%e6%8d%ae%e7%bb%93%e6%9e%84"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Redis 支持哪些主要数据结构？&lt;/li&gt;
&lt;li&gt;这些数据类型的底层编码分别是什么？&lt;/li&gt;
&lt;li&gt;Redis Set 通常使用什么底层结构？&lt;/li&gt;
&lt;li&gt;Redis ZSet 为什么能够排序？它的底层结构是怎样的？&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="2-缓存异常"&gt;2. 缓存异常&lt;a class="anchor" href="#2-%e7%bc%93%e5%ad%98%e5%bc%82%e5%b8%b8"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;什么是缓存穿透、缓存击穿和缓存雪崩？三者有什么区别？&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="3-redis-hash-渐进式-rehash"&gt;3. Redis Hash 渐进式 Rehash&lt;a class="anchor" href="#3-redis-hash-%e6%b8%90%e8%bf%9b%e5%bc%8f-rehash"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Redis Hash 的底层结构和扩容机制是什么？&lt;/li&gt;
&lt;li&gt;Redis 为什么采用渐进式 rehash，而不是一次性迁移全部数据？&lt;/li&gt;
&lt;li&gt;Rehash 期间的数据具体如何迁移？查询、写入和删除如何处理两张表？&lt;/li&gt;
&lt;li&gt;Redis 是按每秒固定数量迁移，还是由其他机制推进迁移？&lt;/li&gt;
&lt;li&gt;如果没有客户端请求、程序处于空闲状态，rehash 还会继续吗？&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="4-redis-集群与扩容"&gt;4. Redis 集群与扩容&lt;a class="anchor" href="#4-redis-%e9%9b%86%e7%be%a4%e4%b8%8e%e6%89%a9%e5%ae%b9"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Redis 有哪些集群或高可用模式？分别适合什么场景？&lt;/li&gt;
&lt;li&gt;Redis Cluster 如何实现数据分片？&lt;/li&gt;
&lt;li&gt;集群增加分片或节点时，会发生什么？数据如何迁移？&lt;/li&gt;
&lt;li&gt;假设集群从 8 个分片扩到 9 个分片，原来的哈希映射是否会失效？如何完成重新分片？&lt;/li&gt;
&lt;li&gt;Redis 集群会发生数据倾斜吗？常见原因是什么，如何解决？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="七rabbitmq-与消息可靠性"&gt;七、RabbitMQ 与消息可靠性&lt;a class="anchor" href="#%e4%b8%83rabbitmq-%e4%b8%8e%e6%b6%88%e6%81%af%e5%8f%af%e9%9d%a0%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;RabbitMQ 如何保证消息从生产者、Broker 到消费者的完整链路不丢失？&lt;/li&gt;
&lt;li&gt;生产者确认、消息持久化、镜像或仲裁队列、消费者 ACK、重试与死信队列分别解决什么问题？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="八rag检索与排序"&gt;八、RAG、检索与排序&lt;a class="anchor" href="#%e5%85%abrag%e6%a3%80%e7%b4%a2%e4%b8%8e%e6%8e%92%e5%ba%8f"&gt;#&lt;/a&gt;&lt;/h2&gt;


&lt;h3 id="1-文档处理与召回"&gt;1. 文档处理与召回&lt;a class="anchor" href="#1-%e6%96%87%e6%a1%a3%e5%a4%84%e7%90%86%e4%b8%8e%e5%8f%ac%e5%9b%9e"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;RAG 的文档分块策略是如何定义的？分块大小和重叠窗口如何选择？&lt;/li&gt;
&lt;li&gt;为什么同时选择 Milvus 和 Elasticsearch？两者分别承担什么职责？&lt;/li&gt;
&lt;li&gt;Milvus 语义召回与 Elasticsearch 关键词召回后，如何进行排序融合？&lt;/li&gt;
&lt;li&gt;你了解 Elasticsearch 的倒排索引吗？它是如何构建和查询的？&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="2-检索路由"&gt;2. 检索路由&lt;a class="anchor" href="#2-%e6%a3%80%e7%b4%a2%e8%b7%af%e7%94%b1"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;当一个 Query 进入系统时，如何判断应该走 Elasticsearch 关键词检索、向量检索、RAG 还是 SQL Agent？&lt;/li&gt;
&lt;li&gt;检索路由由规则、分类模型还是大语言模型完成？为什么？&lt;/li&gt;
&lt;li&gt;如果大模型对检索意图发生误判，系统如何发现、兜底和纠正？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="九agentmcp-与-ai-coding"&gt;九、Agent、MCP 与 AI Coding&lt;a class="anchor" href="#%e4%b9%9dagentmcp-%e4%b8%8e-ai-coding"&gt;#&lt;/a&gt;&lt;/h2&gt;


&lt;h3 id="1-agent-框架与范式"&gt;1. Agent 框架与范式&lt;a class="anchor" href="#1-agent-%e6%a1%86%e6%9e%b6%e4%b8%8e%e8%8c%83%e5%bc%8f"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;你了解哪些 Agent 常见范式，例如 ReAct？它们有什么区别和适用场景？&lt;/li&gt;
&lt;li&gt;你对 LangChain 和 LangGraph 了解多少？实际使用过哪些能力？&lt;/li&gt;
&lt;li&gt;你是否了解或使用过 OpenCloud 这类 Agent 调度工具？&lt;/li&gt;
&lt;li&gt;RAG 应该如何与 Agent 结合？&lt;/li&gt;
&lt;li&gt;Agent 遇到公开网络中不存在的私有或内网文档时，如何安全获取这部分知识？&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="2-mcp"&gt;2. MCP&lt;a class="anchor" href="#2-mcp"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;你了解 MCP 协议吗？它解决了什么问题？&lt;/li&gt;
&lt;li&gt;MCP 中的 Server（或 Service）、Resource 和 Prompt 分别是什么？它们有什么区别？&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="3-sql-agent"&gt;3. SQL Agent&lt;a class="anchor" href="#3-sql-agent"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;请介绍 SQL Agent 从接收用户问题到返回结果的完整执行链路。&lt;/li&gt;
&lt;li&gt;SQL Agent 如何理解自然语言、获取数据库 Schema、生成 SQL、校验权限、执行查询并处理结果？&lt;/li&gt;
&lt;li&gt;SQL Agent 如何限制写权限并防止危险 SQL？&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="4-对话记忆与任务编排"&gt;4. 对话记忆与任务编排&lt;a class="anchor" href="#4-%e5%af%b9%e8%af%9d%e8%ae%b0%e5%bf%86%e4%b8%8e%e4%bb%bb%e5%8a%a1%e7%bc%96%e6%8e%92"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;多轮对话中的记忆压缩有哪些常见方法？&lt;/li&gt;
&lt;li&gt;短期记忆和长期记忆分别如何设计？&lt;/li&gt;
&lt;li&gt;长期记忆存放在 MySQL 时，表结构如何设计？&lt;/li&gt;
&lt;li&gt;一个长任务或复杂任务执行时，如果上下文过长或模型注意力被分散，应如何拆解和编排任务？&lt;/li&gt;
&lt;li&gt;如何编排 AI 编程工具，使不同阶段共享必要上下文，又避免上下文持续膨胀？&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="5-ai-coding-与-skills"&gt;5. AI Coding 与 Skills&lt;a class="anchor" href="#5-ai-coding-%e4%b8%8e-skills"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;你了解哪些 Web Coding 或 AI Coding Skills？实际使用过哪些？&lt;/li&gt;
&lt;li&gt;如何根据项目需求设计或选择适合自己的 Skill？&lt;/li&gt;
&lt;li&gt;如何保证 AI 生成代码的质量和正确性？&lt;/li&gt;
&lt;li&gt;你会如何使用代码审查、静态检查、单元测试、集成测试和多模型复核来校验生成结果？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="十现场编码"&gt;十、现场编码&lt;a class="anchor" href="#%e5%8d%81%e7%8e%b0%e5%9c%ba%e7%bc%96%e7%a0%81"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;请现场完成一道算法或编码题，并说明思路、复杂度、边界条件和测试用例。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="十一面试收尾与反问"&gt;十一、面试收尾与反问&lt;a class="anchor" href="#%e5%8d%81%e4%b8%80%e9%9d%a2%e8%af%95%e6%94%b6%e5%b0%be%e4%b8%8e%e5%8f%8d%e9%97%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;部门的核心业务、当前技术架构和主要挑战是什么？&lt;/li&gt;
&lt;li&gt;这个岗位希望候选人重点掌握哪些能力？&lt;/li&gt;
&lt;li&gt;结合我的 Feed、RAG 和 Agent 项目，您对后续学习方向有什么建议？&lt;/li&gt;
&lt;li&gt;团队在 Agent 开发、AI Coding 和 Skills 方面有哪些实践或建议？&lt;/li&gt;
&lt;li&gt;本轮面试结果大概什么时候出来？后续流程是什么？&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>01佬滴滴混沌工程一面</title><link>https://go.botsarena.tech/docs/interview/dachang/01-didi-chaos-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/01-didi-chaos-1/</guid><description>&lt;h1 id="01佬滴滴混沌工程一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;01佬滴滴混沌工程一面&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;方向：混沌工程 / 后端&lt;/p&gt;

&lt;h2 id="项目"&gt;项目&lt;a class="anchor" href="#%e9%a1%b9%e7%9b%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Feed 流具体内容讲一下。&lt;/li&gt;
&lt;li&gt;Feed 流里引入了多级缓存，Redis 多级缓存具体是什么？&lt;/li&gt;
&lt;li&gt;缓存一致性能保证吗？&lt;/li&gt;
&lt;li&gt;用户进来一个请求之后，整个淘汰策略有考虑吗？&lt;/li&gt;
&lt;li&gt;Redis 大 Key 怎么拆分？&lt;/li&gt;
&lt;li&gt;比如一个 Key 是 String 类型，里面存的是 JSON，数据量很大，可能有 100MB，现在要做拆分，有什么思路？会怎么解决？&lt;/li&gt;
&lt;li&gt;视频流系统某一天突然很卡，从用户角度看网络延迟很高，站在你的视角怎么排查？排查逻辑是什么？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="算法"&gt;算法&lt;a class="anchor" href="#%e7%ae%97%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;手写 LRU。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="参考答案ai-生成"&gt;参考答案（AI 生成）&lt;a class="anchor" href="#%e5%8f%82%e8%80%83%e7%ad%94%e6%a1%88ai-%e7%94%9f%e6%88%90"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;以下答案由 AI 生成，仅供面试复盘参考。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="1-feed-流具体内容怎么讲"&gt;1. Feed 流具体内容怎么讲？&lt;a class="anchor" href="#1-feed-%e6%b5%81%e5%85%b7%e4%bd%93%e5%86%85%e5%ae%b9%e6%80%8e%e4%b9%88%e8%ae%b2"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;答：可以按“发布、分发、读取、互动、缓存、降级”来讲。发布侧写视频元数据，使用 MQ 或 Outbox 把事件投递出去；分发侧按用户规模选择推模式、拉模式或推拉结合；读取侧按时间、热度或关注关系分页拉取；互动侧处理点赞、评论、收藏等计数和状态；缓存侧用 Redis 承接热点列表和视频详情；降级侧准备回源 DB、限流、兜底空页和异步补偿。&lt;/p&gt;

&lt;h3 id="2-redis-多级缓存具体是什么"&gt;2. Redis 多级缓存具体是什么？&lt;a class="anchor" href="#2-redis-%e5%a4%9a%e7%ba%a7%e7%bc%93%e5%ad%98%e5%85%b7%e4%bd%93%e6%98%af%e4%bb%80%e4%b9%88"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;答：常见可以设计成本地缓存 + Redis + DB。L1 本地缓存放极热数据，TTL 很短，减少 Redis 压力；L2 Redis 放热点详情、Feed 列表、排行榜和计数；L3 DB 作为最终数据源。读请求先查本地缓存，再查 Redis，最后回源 DB 并回填缓存。&lt;/p&gt;

&lt;h3 id="3-缓存一致性能保证吗"&gt;3. 缓存一致性能保证吗？&lt;a class="anchor" href="#3-%e7%bc%93%e5%ad%98%e4%b8%80%e8%87%b4%e6%80%a7%e8%83%bd%e4%bf%9d%e8%af%81%e5%90%97"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;答：缓存一致性通常做到最终一致。常见写法是先更新数据库，再删除缓存，后续读请求回源 DB 并重新回填缓存；删除失败可以通过重试队列、MQ 或 binlog 订阅补偿；缓存再配合 TTL 做兜底。对一致性要求更高的接口，可以读主库或在写请求完成后同步刷新关键缓存。&lt;/p&gt;</description></item><item><title>01佬腾讯IDC后端</title><link>https://go.botsarena.tech/docs/interview/dachang/01-tencent-idc-backend/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/01-tencent-idc-backend/</guid><description>&lt;h1 id="01佬腾讯-idc-后端"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;01佬腾讯 IDC 后端&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;方向：后端开发&lt;/p&gt;
&lt;p&gt;附注：技术问题如下，生活问题较多，此处省略。&lt;/p&gt;

&lt;h2 id="项目"&gt;项目&lt;a class="anchor" href="#%e9%a1%b9%e7%9b%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;在 Redis 里面有没有应用过分布式锁？怎么使用 Redis 实现分布式锁？&lt;/li&gt;
&lt;li&gt;在项目中，有没有遇到 goroutine 泄漏、内存泄漏增长的情况？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="八股"&gt;八股&lt;a class="anchor" href="#%e5%85%ab%e8%82%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Redis 里面有哪些数据类型，分别适合什么场景？&lt;/li&gt;
&lt;li&gt;数据库事务四大特性。&lt;/li&gt;
&lt;li&gt;Channel 无缓存和有缓存有什么区别？分别在什么情况下使用？&lt;/li&gt;
&lt;li&gt;GMP 模型。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="算法"&gt;算法&lt;a class="anchor" href="#%e7%ae%97%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;合并两个有序数组。&lt;/li&gt;
&lt;li&gt;滑动窗口最大值。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="参考答案ai-生成"&gt;参考答案（AI 生成）&lt;a class="anchor" href="#%e5%8f%82%e8%80%83%e7%ad%94%e6%a1%88ai-%e7%94%9f%e6%88%90"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;以下答案由 AI 生成，仅供面试复盘参考。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="1-怎么使用-redis-实现分布式锁"&gt;1. 怎么使用 Redis 实现分布式锁？&lt;a class="anchor" href="#1-%e6%80%8e%e4%b9%88%e4%bd%bf%e7%94%a8-redis-%e5%ae%9e%e7%8e%b0%e5%88%86%e5%b8%83%e5%bc%8f%e9%94%81"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;答：加锁用 &lt;code&gt;SET lock_key token NX PX expire_ms&lt;/code&gt;，保证只有 key 不存在时写入，并设置过期时间防止死锁。解锁用 Lua 脚本先比较 token 是否一致，再删除 key，保证只释放自己持有的锁。生产环境还要考虑锁过期时间、业务超时、重试退避、续期和可重入需求。&lt;/p&gt;

&lt;h3 id="2-项目里遇到-goroutine-泄漏内存泄漏怎么排查"&gt;2. 项目里遇到 goroutine 泄漏、内存泄漏怎么排查？&lt;a class="anchor" href="#2-%e9%a1%b9%e7%9b%ae%e9%87%8c%e9%81%87%e5%88%b0-goroutine-%e6%b3%84%e6%bc%8f%e5%86%85%e5%ad%98%e6%b3%84%e6%bc%8f%e6%80%8e%e4%b9%88%e6%8e%92%e6%9f%a5"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;答：先看监控里的 goroutine 数、heap、RSS 和 GC 频率是否持续增长，再用 pprof 分析 &lt;code&gt;goroutine&lt;/code&gt;、&lt;code&gt;heap&lt;/code&gt;、&lt;code&gt;allocs&lt;/code&gt;。goroutine 泄漏常见于 channel 阻塞、context 未传递、后台循环无退出条件、网络请求无超时；内存增长常见于 slice 引用大数组、map/cache 无淘汰、定时器未释放、连接或文件句柄未关闭。&lt;/p&gt;</description></item><item><title>01佬腾讯WXG基础架构面试</title><link>https://go.botsarena.tech/docs/interview/dachang/01-tencent-wxg-infra/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/01-tencent-wxg-infra/</guid><description>&lt;h1 id="01佬腾讯-wxg-基础架构面试"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;01佬腾讯 WXG 基础架构面试&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;作者：01佬&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;回答多数为 AI 生成，仅供参考。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="面试题"&gt;面试题&lt;a class="anchor" href="#%e9%9d%a2%e8%af%95%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;


&lt;h3 id="八股"&gt;八股&lt;a class="anchor" href="#%e5%85%ab%e8%82%a1"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;进程和线程的区别？&lt;/li&gt;
&lt;li&gt;虚拟内存有什么作用？&lt;/li&gt;
&lt;li&gt;TCP 是怎么保证可靠传输的？&lt;/li&gt;
&lt;li&gt;拥塞控制讲一下？&lt;/li&gt;
&lt;li&gt;你理解的 RPC 是什么？&lt;/li&gt;
&lt;li&gt;最左前缀原则？&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="算法"&gt;算法&lt;a class="anchor" href="#%e7%ae%97%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;手写 LRU。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="参考答案"&gt;参考答案&lt;a class="anchor" href="#%e5%8f%82%e8%80%83%e7%ad%94%e6%a1%88"&gt;#&lt;/a&gt;&lt;/h2&gt;


&lt;h3 id="进程和线程的区别"&gt;进程和线程的区别？&lt;a class="anchor" href="#%e8%bf%9b%e7%a8%8b%e5%92%8c%e7%ba%bf%e7%a8%8b%e7%9a%84%e5%8c%ba%e5%88%ab"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;进程是操作系统资源分配的基本单位，拥有独立的虚拟地址空间、文件描述符、堆、全局变量等资源。线程是 CPU 调度的基本单位，同一进程内的多个线程共享进程资源，但各自拥有独立的栈、寄存器上下文和线程局部数据。&lt;/p&gt;
&lt;p&gt;区别可以从四点说：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;资源隔离：进程之间地址空间隔离，线程共享同一进程地址空间。&lt;/li&gt;
&lt;li&gt;创建和切换成本：进程更重，线程更轻。&lt;/li&gt;
&lt;li&gt;通信方式：进程间通信需要管道、消息队列、共享内存、socket 等机制；线程间可以直接共享内存，但需要锁保护。&lt;/li&gt;
&lt;li&gt;稳定性：一个进程崩溃通常影响自身；同一进程内一个线程异常可能影响整个进程。&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="虚拟内存有什么作用"&gt;虚拟内存有什么作用？&lt;a class="anchor" href="#%e8%99%9a%e6%8b%9f%e5%86%85%e5%ad%98%e6%9c%89%e4%bb%80%e4%b9%88%e4%bd%9c%e7%94%a8"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;虚拟内存给每个进程提供独立、连续的地址空间，再由操作系统和 MMU 通过页表映射到物理内存。&lt;/p&gt;
&lt;p&gt;主要作用：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;进程隔离：每个进程看到自己的地址空间，互相隔离，提升安全性和稳定性。&lt;/li&gt;
&lt;li&gt;简化编程模型：程序认为自己拥有连续内存，实际物理内存可以离散分配。&lt;/li&gt;
&lt;li&gt;提高内存利用率：按需加载页面，用到时再分配物理页。&lt;/li&gt;
&lt;li&gt;支持内存扩展：物理内存不足时，可以把部分页面换出到磁盘。&lt;/li&gt;
&lt;li&gt;支持共享和保护：共享库、mmap、页权限控制都依赖虚拟内存机制。&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="tcp-是怎么保证可靠传输的"&gt;TCP 是怎么保证可靠传输的？&lt;a class="anchor" href="#tcp-%e6%98%af%e6%80%8e%e4%b9%88%e4%bf%9d%e8%af%81%e5%8f%af%e9%9d%a0%e4%bc%a0%e8%be%93%e7%9a%84"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;TCP 通过一组机制共同保证可靠传输：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;序列号：每个字节都有序列号，接收方可以按序重组数据。&lt;/li&gt;
&lt;li&gt;确认应答：接收方通过 ACK 告诉发送方已经收到哪些数据。&lt;/li&gt;
&lt;li&gt;超时重传：发送方在超时时间内没有收到 ACK，会重传对应报文。&lt;/li&gt;
&lt;li&gt;快速重传：连续收到重复 ACK 时，发送方可以提前重传丢失报文。&lt;/li&gt;
&lt;li&gt;滑动窗口：通过发送窗口控制未确认数据量，提高吞吐。&lt;/li&gt;
&lt;li&gt;流量控制：接收方通过窗口大小告诉发送方自己的接收能力，避免接收缓冲区被打满。&lt;/li&gt;
&lt;li&gt;拥塞控制：根据网络拥塞程度调整发送速率，降低丢包和拥塞扩散。&lt;/li&gt;
&lt;li&gt;校验和：检测报文在传输过程中的错误。&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="拥塞控制讲一下"&gt;拥塞控制讲一下？&lt;a class="anchor" href="#%e6%8b%a5%e5%a1%9e%e6%8e%a7%e5%88%b6%e8%ae%b2%e4%b8%80%e4%b8%8b"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;拥塞控制解决的是发送方如何根据网络状态调整发送速率。TCP 主要通过拥塞窗口 &lt;code&gt;cwnd&lt;/code&gt; 控制网络中未确认的数据量。&lt;/p&gt;
&lt;p&gt;常见阶段：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;慢启动：连接开始时 &lt;code&gt;cwnd&lt;/code&gt; 较小，每收到一个 ACK 增长，整体呈指数增长。&lt;/li&gt;
&lt;li&gt;拥塞避免：&lt;code&gt;cwnd&lt;/code&gt; 达到阈值 &lt;code&gt;ssthresh&lt;/code&gt; 后，增长变慢，近似线性增长。&lt;/li&gt;
&lt;li&gt;快速重传：收到多个重复 ACK，说明中间某个包可能丢失，立即重传。&lt;/li&gt;
&lt;li&gt;快速恢复：发生丢包后降低 &lt;code&gt;ssthresh&lt;/code&gt; 和 &lt;code&gt;cwnd&lt;/code&gt;，再逐步恢复发送速率。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;面试里可以补一句：拥塞控制关注网络承载能力，流量控制关注接收方处理能力。&lt;/p&gt;</description></item><item><title>01阿里云一面</title><link>https://go.botsarena.tech/docs/interview/dachang/01-aliyun-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/01-aliyun-1/</guid><description>&lt;h1 id="01-阿里云一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;01 阿里云一面&lt;/a&gt;
&lt;/h1&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;根据口述整理，补充了面试中适合展开的回答口径。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="面试问题"&gt;面试问题&lt;a class="anchor" href="#%e9%9d%a2%e8%af%95%e9%97%ae%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;发件箱模式 Outbox&lt;/li&gt;
&lt;li&gt;复合游标分页&lt;/li&gt;
&lt;li&gt;JWT 健全自愈机制：Redis 故障降级 MySQL&lt;/li&gt;
&lt;li&gt;GMP 中 G 阻塞在系统调用时，M 和 P 会怎么样&lt;/li&gt;
&lt;li&gt;Go GC 的 STW 发生在哪些阶段&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="参考答案ai-生成"&gt;参考答案（AI 生成）&lt;a class="anchor" href="#%e5%8f%82%e8%80%83%e7%ad%94%e6%a1%88ai-%e7%94%9f%e6%88%90"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;以下答案由 AI 生成，仅供面试复盘参考。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="项目"&gt;项目&lt;a class="anchor" href="#%e9%a1%b9%e7%9b%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;


&lt;h3 id="发件箱模式-outbox"&gt;发件箱模式 Outbox&lt;a class="anchor" href="#%e5%8f%91%e4%bb%b6%e7%ae%b1%e6%a8%a1%e5%bc%8f-outbox"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;可直接说：&lt;/strong&gt; 发件箱模式解决的是“业务数据落库成功”和“消息最终发出去”之间的一致性问题。我把业务表和 &lt;code&gt;outbox_messages&lt;/code&gt; 表放在同一个本地事务里提交，事务提交成功后，由 worker 异步扫描 outbox 表，把消息投递到 MQ 或下游服务。&lt;/p&gt;
&lt;p&gt;核心表可以这样设计：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;CREATE&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;TABLE&lt;/span&gt; outbox_messages (
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; id BIGINT &lt;span style="color:#66d9ef"&gt;PRIMARY&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;KEY&lt;/span&gt; AUTO_INCREMENT,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; message_id VARCHAR(&lt;span style="color:#ae81ff"&gt;64&lt;/span&gt;) &lt;span style="color:#66d9ef"&gt;NOT&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;NULL&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; aggregate_type VARCHAR(&lt;span style="color:#ae81ff"&gt;64&lt;/span&gt;) &lt;span style="color:#66d9ef"&gt;NOT&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;NULL&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; aggregate_id VARCHAR(&lt;span style="color:#ae81ff"&gt;64&lt;/span&gt;) &lt;span style="color:#66d9ef"&gt;NOT&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;NULL&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; event_type VARCHAR(&lt;span style="color:#ae81ff"&gt;64&lt;/span&gt;) &lt;span style="color:#66d9ef"&gt;NOT&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;NULL&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; payload JSON &lt;span style="color:#66d9ef"&gt;NOT&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;NULL&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; status VARCHAR(&lt;span style="color:#ae81ff"&gt;16&lt;/span&gt;) &lt;span style="color:#66d9ef"&gt;NOT&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;NULL&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; retry_count INT &lt;span style="color:#66d9ef"&gt;NOT&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;NULL&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;DEFAULT&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; next_retry_at DATETIME &lt;span style="color:#66d9ef"&gt;NOT&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;NULL&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; created_at DATETIME &lt;span style="color:#66d9ef"&gt;NOT&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;NULL&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; updated_at DATETIME &lt;span style="color:#66d9ef"&gt;NOT&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;NULL&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;UNIQUE&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;KEY&lt;/span&gt; uk_message_id (message_id),
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;KEY&lt;/span&gt; idx_status_next_id (status, next_retry_at, id)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;事务边界这样划分：&lt;/p&gt;</description></item><item><title>01阿里云二面</title><link>https://go.botsarena.tech/docs/interview/dachang/01-aliyun-2/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/01-aliyun-2/</guid><description>&lt;h1 id="01-阿里云二面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;01 阿里云二面&lt;/a&gt;
&lt;/h1&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;根据口述整理，补充了面试中适合展开的回答口径。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="面试问题"&gt;面试问题&lt;a class="anchor" href="#%e9%9d%a2%e8%af%95%e9%97%ae%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;视频 Feed 流最核心的设计是什么&lt;/li&gt;
&lt;li&gt;消息队列异常时怎么降级&lt;/li&gt;
&lt;li&gt;消息队列怎么做高可用和持久化&lt;/li&gt;
&lt;li&gt;切片和数组的区别&lt;/li&gt;
&lt;li&gt;缓存击穿和缓存雪崩&lt;/li&gt;
&lt;li&gt;Go map 底层如何实现&lt;/li&gt;
&lt;li&gt;defer 的实现和返回值修改&lt;/li&gt;
&lt;li&gt;Go 协程间通信和 Channel 容量设计&lt;/li&gt;
&lt;li&gt;两个有序数组的中位数&lt;/li&gt;
&lt;li&gt;根据字符串中的数字重新排序&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="参考答案ai-生成"&gt;参考答案（AI 生成）&lt;a class="anchor" href="#%e5%8f%82%e8%80%83%e7%ad%94%e6%a1%88ai-%e7%94%9f%e6%88%90"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;以下答案由 AI 生成，仅供面试复盘参考。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="项目"&gt;项目&lt;a class="anchor" href="#%e9%a1%b9%e7%9b%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;


&lt;h3 id="视频-feed-流最核心的设计是什么"&gt;视频 Feed 流最核心的设计是什么&lt;a class="anchor" href="#%e8%a7%86%e9%a2%91-feed-%e6%b5%81%e6%9c%80%e6%a0%b8%e5%bf%83%e7%9a%84%e8%ae%be%e8%ae%a1%e6%98%af%e4%bb%80%e4%b9%88"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;可直接说：&lt;/strong&gt; 我觉得最核心的是复合游标分页。Feed 流的难点在于数据持续新增、删除、热度变化，同时还要保证翻页稳定、性能稳定。单纯 &lt;code&gt;offset&lt;/code&gt; 深分页会随着页码变大越来越慢，也容易在新内容插入后出现重复或跳过；复合游标用排序字段加唯一主键定位下一页，更适合动态 Feed。&lt;/p&gt;
&lt;p&gt;典型设计是 &lt;code&gt;(score, id)&lt;/code&gt; 或 &lt;code&gt;(created_at, id)&lt;/code&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;SELECT&lt;/span&gt; id, title, score, created_at
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;FROM&lt;/span&gt; videos
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;WHERE&lt;/span&gt; (
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; score &lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color:#f92672"&gt;?&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;OR&lt;/span&gt; (score &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#f92672"&gt;?&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;AND&lt;/span&gt; id &lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color:#f92672"&gt;?&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;ORDER&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;BY&lt;/span&gt; score &lt;span style="color:#66d9ef"&gt;DESC&lt;/span&gt;, id &lt;span style="color:#66d9ef"&gt;DESC&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;LIMIT&lt;/span&gt; &lt;span style="color:#f92672"&gt;?&lt;/span&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这样设计的重点：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;score&lt;/code&gt; 或 &lt;code&gt;created_at&lt;/code&gt; 决定主要排序。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;id&lt;/code&gt; 作为唯一排序补充，让同分、同时间下的顺序保持稳定。&lt;/li&gt;
&lt;li&gt;cursor 里保存上一页最后一条的排序字段和 &lt;code&gt;id&lt;/code&gt;，下一页从这个位置继续查。&lt;/li&gt;
&lt;li&gt;索引匹配排序字段和主键，例如 &lt;code&gt;(score DESC, id DESC)&lt;/code&gt; 或 &lt;code&gt;(created_at DESC, id DESC)&lt;/code&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果 Feed 有个性化推荐分数，可以把推荐结果先写入 Redis ZSet 或临时结果表，再用 &lt;code&gt;(rank_score, video_id)&lt;/code&gt; 做复合游标。面试里可以补一句：复合游标解决的是“高并发动态列表下的稳定翻页和深分页性能”。&lt;/p&gt;</description></item><item><title>gogod-滴滴秋储-后端研发实习生（增长技术部）一面</title><link>https://go.botsarena.tech/docs/interview/dachang/gogod-didi-growth-backend-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/gogod-didi-growth-backend-1/</guid><description>&lt;h1 id="滴滴秋储-后端研发实习生增长技术部一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;滴滴秋储-后端研发实习生（增长技术部）一面&lt;/a&gt;
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Redis 五种数据结构？讲讲 &lt;code&gt;zset&lt;/code&gt; 底层&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Redis 为什么快？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Go 的 &lt;code&gt;GC&lt;/code&gt; 讲讲&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;MySQL 的索引有哪些？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;MySQL 的锁有哪些？隔离级别有哪些？不同的隔离级别是怎么用这些锁的&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;MySQL 有哪些日志？有什么用？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;消息队列为什么用 Kafka？在你项目里对比其他的有什么优势吗&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;这里回答得不够清晰。&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;HTTP 和 HTTPS 有什么区别？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;TCP 为什么要四次挥手？第四次挥手省略之后会有什么问题？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;你的这个横向项目介绍一下，再说说你在里面主要做了什么内容&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="手撕题"&gt;手撕题&lt;a class="anchor" href="#%e6%89%8b%e6%92%95%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;ol start="162"&gt;
&lt;li&gt;寻找峰值&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>gogod-滴滴秋储-后端研发实习生（增长技术部）二面</title><link>https://go.botsarena.tech/docs/interview/dachang/gogod-didi-growth-backend-2/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/gogod-didi-growth-backend-2/</guid><description>&lt;h1 id="滴滴秋储-后端研发实习生增长技术部二面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;滴滴秋储-后端研发实习生（增长技术部）二面&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;一面结束约 10 分钟后进入二面。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;讲清楚你横向项目的场景&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;现场反馈是表达可以再收束一些，适合提前准备更精炼的项目总结。&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;消息队列怎么保证消息不丢？怎么保证一定被消费？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;第一个场景题和短信短链有关，点击短链之后跳转成长链&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;第二个场景题是定时任务和延迟任务发布之后，怎么保证正确执行&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="手撕题"&gt;手撕题&lt;a class="anchor" href="#%e6%89%8b%e6%92%95%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;用栈模拟队列&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;现场实现时使用了 Go 的切片来表达栈，面试官更关注结构设计和操作过程。&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>gogod-美团软件开发工程师（全栈方向）一面</title><link>https://go.botsarena.tech/docs/interview/dachang/gogod-meituan-fullstack-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/gogod-meituan-fullstack-1/</guid><description>&lt;h1 id="美团软件开发工程师全栈方向一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;美团软件开发工程师（全栈方向）一面&lt;/a&gt;
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;自我介绍&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;平时怎么用 AI 的？&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;讲了去年初还不怎么用，然后逐渐使用越来越多，平时用 AI 代替搜索引擎学新知识、多个 AI 相互印证；然后用 AI 辅助项目从头开发，需求、功能文档、具体逻辑、测试模块。&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;说一下你的项目里遇到过哪些困难的点？怎么解决的？&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;面试官对后端了解相对少一些，这里没有继续深挖。&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;手撕两道题&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;第一个是树的层序遍历 &lt;code&gt;BFS&lt;/code&gt;，第二个是查树上某个等于 &lt;code&gt;value&lt;/code&gt; 的节点，返回从根到该节点的路径，考察 &lt;code&gt;DFS&lt;/code&gt; 回溯。&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;一个网址从输入到渲染的过程是怎样的？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;了解浏览器的渲染流程吗？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;HTTPS&lt;/code&gt; 的 &lt;code&gt;S&lt;/code&gt; 讲一下&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;了解鉴权吗？&lt;code&gt;token&lt;/code&gt; 存在哪里？还有其他方式吗？&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;当时主要回答了 &lt;code&gt;JWT&lt;/code&gt; 鉴权。&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;了解 &lt;code&gt;HTTP&lt;/code&gt; 的缓存吗？&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;当时提到了 &lt;code&gt;304&lt;/code&gt;。&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;反问：您觉得现在开始学前端技术栈，应该怎么学？&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;面试官给的建议是先简单上手主流框架，然后让 AI 帮你生成一个真正可以用的前端项目，在做的过程中学习。&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>goking-网易互娱游戏研发服务端一面</title><link>https://go.botsarena.tech/docs/interview/dachang/goking-netease-game-server-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/goking-netease-game-server-1/</guid><description>&lt;h1 id="网易互娱游戏研发服务端一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;网易互娱游戏研发服务端一面&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;全程 53 分钟。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;C++20 新特性&lt;/li&gt;
&lt;li&gt;协程怎么存储数据的&lt;/li&gt;
&lt;li&gt;&lt;code&gt;vector&lt;/code&gt; 扩容原理&lt;/li&gt;
&lt;li&gt;为什么 1.5 倍或者 2 倍&lt;/li&gt;
&lt;li&gt;&lt;code&gt;string_view&lt;/code&gt; 讲一下&lt;/li&gt;
&lt;li&gt;左值右值（面试官写代码问能不能编译通过）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;move&lt;/code&gt; 底层原理&lt;/li&gt;
&lt;li&gt;换成万能引用问代码能不能编译&lt;/li&gt;
&lt;li&gt;为什么能编译（引用折叠）&lt;/li&gt;
&lt;li&gt;引用折叠原理&lt;/li&gt;
&lt;li&gt;虚函数原理&lt;/li&gt;
&lt;li&gt;虚函数表有什么&lt;/li&gt;
&lt;li&gt;虚函数性能如何&lt;/li&gt;
&lt;li&gt;构造函数调用虚函数打印结果（同样面试官写代码问打印结果）&lt;/li&gt;
&lt;li&gt;讲一下 &lt;code&gt;inline&lt;/code&gt; 原理&lt;/li&gt;
&lt;li&gt;虚函数可以 &lt;code&gt;inline&lt;/code&gt; 吗&lt;/li&gt;
&lt;li&gt;内存对齐问题代码分析&lt;/li&gt;
&lt;li&gt;难度升级，嵌套结构体分析内存大小&lt;/li&gt;
&lt;li&gt;虚拟地址讲一下&lt;/li&gt;
&lt;li&gt;虚拟地址寻址过程详细讲一下&lt;/li&gt;
&lt;li&gt;口撕算法题，反转一个区间使 1 的个数最多&lt;/li&gt;
&lt;li&gt;难度升级，只有 &lt;code&gt;p&lt;/code&gt; 的概率成功算 1 的期望&lt;/li&gt;
&lt;li&gt;概率题，抛硬币正反不是等概率如何实现一个函数可以等概率出现正反&lt;/li&gt;
&lt;li&gt;手撕跳表实现&lt;/li&gt;
&lt;li&gt;项目&lt;/li&gt;
&lt;li&gt;场景题，射击游戏中发射子弹到击中玩家服务器需要存储哪些东西？&lt;/li&gt;
&lt;li&gt;现在游戏中有延迟如何保证高延迟玩家和低延迟玩家的体验&lt;/li&gt;
&lt;li&gt;讲一下 &lt;code&gt;select&lt;/code&gt;、&lt;code&gt;poll&lt;/code&gt;、&lt;code&gt;epoll&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;epoll&lt;/code&gt; 底层原理&lt;/li&gt;
&lt;li&gt;&lt;code&gt;epoll&lt;/code&gt; 为什么快&lt;/li&gt;
&lt;li&gt;边沿触发一定要读完全部数据吗&lt;/li&gt;
&lt;li&gt;让你设计一个游戏如何做到单机 50 万玩家并发&lt;/li&gt;
&lt;li&gt;算法题思路，装备镶嵌宝石，不同宝石之间有互斥关系，同种宝石有上限，如何镶嵌让装备获得最大属性&lt;/li&gt;
&lt;li&gt;反问：如何学习游戏设计这种知识&lt;/li&gt;
&lt;li&gt;反问：游戏服务端开发主要用什么语言多&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>goking-网易互娱游戏研发服务端二面</title><link>https://go.botsarena.tech/docs/interview/dachang/goking-netease-game-server-2/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/goking-netease-game-server-2/</guid><description>&lt;h1 id="网易互娱游戏研发服务端二面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;网易互娱游戏研发服务端二面&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;全程 35 分钟，主要围绕项目、场景题和 AI Coding 展开。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;协程原理&lt;/li&gt;
&lt;li&gt;为什么想来做游戏&lt;/li&gt;
&lt;li&gt;之前有过游戏经历没（说本科用 Unity 跟着 B 站做了一个黑魂游戏）&lt;/li&gt;
&lt;li&gt;做的游戏各种功能如何实现进行拷打&lt;/li&gt;
&lt;li&gt;玩什么游戏（三角洲、王者荣耀）&lt;/li&gt;
&lt;li&gt;场景题，三角洲手雷爆炸会对敌人造成伤害，这种功能如何实现（回答的球形碰撞检测）&lt;/li&gt;
&lt;li&gt;三角洲全面战场手雷除了对敌人还有建筑造成伤害又该怎么实现&lt;/li&gt;
&lt;li&gt;怎么计算敌人是不是在爆炸范围内（回答了暴力遍历）&lt;/li&gt;
&lt;li&gt;能不能优化（回答了多线程扫描和分格子计算）&lt;/li&gt;
&lt;li&gt;项目 1 拷打&lt;/li&gt;
&lt;li&gt;项目 2 拷打&lt;/li&gt;
&lt;li&gt;用过分布式吗&lt;/li&gt;
&lt;li&gt;永劫无间振刀你会如何实现&lt;/li&gt;
&lt;li&gt;如何实现让用户的体验感比如说爽感更好（回答了特效在客户端直接显示，服务器进行验证）&lt;/li&gt;
&lt;li&gt;验证失败怎么办&lt;/li&gt;
&lt;li&gt;回溯需要考虑什么？&lt;/li&gt;
&lt;li&gt;AI Coding 用的多吗&lt;/li&gt;
&lt;li&gt;讲一下 AI Coding 心得&lt;/li&gt;
&lt;li&gt;用的哪个 AI 工具（Codex 和 GPT-5.4）&lt;/li&gt;
&lt;li&gt;上下文过长你会怎么解决&lt;/li&gt;
&lt;li&gt;反问：游戏活动有问题策划被挨骂内部会怎么处理&lt;/li&gt;
&lt;li&gt;反问：一个部门策划、客户端、服务端人员比例是多少&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>iiuuu-百度-go后台开发-一面</title><link>https://go.botsarena.tech/docs/interview/dachang/issue-79/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/issue-79/</guid><description>&lt;h3 id="coding-agent-项目"&gt;Coding Agent 项目&lt;a class="anchor" href="#coding-agent-%e9%a1%b9%e7%9b%ae"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Q4&lt;/strong&gt; 这个项目是做什么的？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q5&lt;/strong&gt; 你去看过那份源码吗？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q6&lt;/strong&gt; 你写了五层架构，是哪五层？&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="记忆分层"&gt;记忆分层&lt;a class="anchor" href="#%e8%ae%b0%e5%bf%86%e5%88%86%e5%b1%82"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Q7&lt;/strong&gt; 记忆你提到有两块，具体是什么？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q8&lt;/strong&gt; 为什么要分用户级和项目级？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q9&lt;/strong&gt; 你觉得哪些内容值得抽取成记忆？&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="mcp-设计"&gt;MCP 设计&lt;a class="anchor" href="#mcp-%e8%ae%be%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Q10&lt;/strong&gt; 你的 MCP 是怎么设计的？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q11&lt;/strong&gt; 你的 MCP 估计是延迟加载，怎么做的？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q12&lt;/strong&gt; 这相当于还是把所有工具写进上下文，只是描述很短，然后让模型调 tool_search 拿完整定义？&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="上下文压缩"&gt;上下文压缩&lt;a class="anchor" href="#%e4%b8%8a%e4%b8%8b%e6%96%87%e5%8e%8b%e7%bc%a9"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Q13&lt;/strong&gt; 你的上下文压缩怎么做的？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q14&lt;/strong&gt; 有个场景：模型必须完整读出一个很大的代码文件才能知道改哪一行，读出来加上 prompt 就把上下文打满了。这种情况怎么解决？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q15&lt;/strong&gt; 如果让你设计这个索引，你会怎么设计？&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="评测设计"&gt;评测设计&lt;a class="anchor" href="#%e8%af%84%e6%b5%8b%e8%ae%be%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Q16&lt;/strong&gt; 你简历里那个评测数据集是干什么的？里面有哪些内容？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q17&lt;/strong&gt; 你的评测指标有哪些？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q18&lt;/strong&gt; 效果你直接把结果塞给模型就让它评了吗？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q19&lt;/strong&gt; 我问的是你具体怎么让它评估？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q20&lt;/strong&gt; 你的评估 prompt 会怎么写？&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="多-agent-架构"&gt;多 Agent 架构&lt;a class="anchor" href="#%e5%a4%9a-agent-%e6%9e%b6%e6%9e%84"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Q21&lt;/strong&gt; 多 Agent 应该怎么拆分？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q22&lt;/strong&gt; 主 Agent 怎么调用子 Agent？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q23&lt;/strong&gt; 场景题：模型反问用户“你说的是下面 1、2、3 哪个选项”，用户回了个“2”。主 Agent 有完整上下文能理解，但子 Agent 因为上下文隔离拿不到。你怎么让子 Agent 知道这次要干什么？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q24&lt;/strong&gt; 这个补充内容怎么设计？数据格式用什么？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q25&lt;/strong&gt; 第二个场景：子 Agent 跑完把结果给了用户，用户在同一个话题上继续深问。这时候各个 Agent 怎么调度？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q26&lt;/strong&gt; 那你现在有思路吗？&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="场景题告警分析平台"&gt;场景题：告警分析平台&lt;a class="anchor" href="#%e5%9c%ba%e6%99%af%e9%a2%98%e5%91%8a%e8%ad%a6%e5%88%86%e6%9e%90%e5%b9%b3%e5%8f%b0"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;背景：&lt;/strong&gt; 大公司除了对外 AI 产品，还有内部提效工具，主要两类——数分（数据分析）和告警分析。面试官让二选一。&lt;/p&gt;</description></item><item><title>iiuuu-百度-go后台开发-二面</title><link>https://go.botsarena.tech/docs/interview/dachang/issue-81/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/issue-81/</guid><description>&lt;h3 id="项目一coding-agent"&gt;项目一：Coding Agent&lt;a class="anchor" href="#%e9%a1%b9%e7%9b%ae%e4%b8%80coding-agent"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Q3&lt;/strong&gt; 简历里写的是读过 Claude Code 是吧？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q4&lt;/strong&gt; 终端编码助手这个是完全自己写的吗？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q5&lt;/strong&gt; 先介绍一下这个框架，是做什么的？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q6&lt;/strong&gt; 举个例子，我要写个登录系统的注册流程，怎么组织？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q7&lt;/strong&gt; 怎么决定要调哪个工具？谁来定？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q8&lt;/strong&gt; 模型为什么能定？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q9&lt;/strong&gt; 当前怎么打包的？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q10&lt;/strong&gt; “打包”是指什么意思？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q11&lt;/strong&gt; MCP 延迟加载具体怎么做？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q12&lt;/strong&gt; 你的 BM25 只是个编码吗？要去对比，你怎么对比？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q13&lt;/strong&gt; 权限弹窗是什么？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q14&lt;/strong&gt; 你还做了一个压缩，怎么做的？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q15&lt;/strong&gt; 预览怎么来的？&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="项目二定时与任务调度系统"&gt;项目二：定时与任务调度系统&lt;a class="anchor" href="#%e9%a1%b9%e7%9b%ae%e4%ba%8c%e5%ae%9a%e6%97%b6%e4%b8%8e%e4%bb%bb%e5%8a%a1%e8%b0%83%e5%ba%a6%e7%b3%bb%e7%bb%9f"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Q17&lt;/strong&gt; 整个项目介绍一下，有哪些模块，怎么做的？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q18&lt;/strong&gt; 执行模块和定时模块的区别？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q19&lt;/strong&gt; 简历写有 2000 QPS，那你这个有分片吗？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q20&lt;/strong&gt; 用什么分的？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q21&lt;/strong&gt; 重复执行怎么避免？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q22&lt;/strong&gt; QPS 从 500 到 2000 是怎么测的？为什么能做到？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q23&lt;/strong&gt; 在什么机型上测的？你的环境？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q24&lt;/strong&gt; 虚拟机什么配置？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q25&lt;/strong&gt; 数据库在同一个机器上吗？自己搭的是吧？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q26&lt;/strong&gt; 你的 2000 是什么？创建任务的 QPS？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q27&lt;/strong&gt; 两核的能撑起 2000 QPS？不可能吧。你确定测的 2000？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q28&lt;/strong&gt; 刚才你起了个空接口去测，如果不起空接口，有没有其他方案排查这个问题？&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="go-基础"&gt;Go 基础&lt;a class="anchor" href="#go-%e5%9f%ba%e7%a1%80"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Q29&lt;/strong&gt; 并发写 map 的时候，为什么会有问题？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q30&lt;/strong&gt; map 是不是不能多协程去用？为什么不可以呢？我觉得可以。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q31&lt;/strong&gt; 切片和数组的区别？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q32&lt;/strong&gt; 切片扩容会发生什么？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q33&lt;/strong&gt; GMP 里，我的 M 现在阻塞了，会发生什么？&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="claude-code-源码"&gt;Claude Code 源码&lt;a class="anchor" href="#claude-code-%e6%ba%90%e7%a0%81"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Q34&lt;/strong&gt; 讲一下 Claude Code 一次请求是怎么执行的流程？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q35&lt;/strong&gt; 那你讲一下记忆系统。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q36&lt;/strong&gt; 你什么时候去查？加了索引你要去查，规则怎么定的？比如你有一些条目，我怎么去查？肯定是有规则的。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q37&lt;/strong&gt; Claude Code 你自己用过没有？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q38&lt;/strong&gt; 两个的区别在哪呢？&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="手撕代码"&gt;手撕代码&lt;a class="anchor" href="#%e6%89%8b%e6%92%95%e4%bb%a3%e7%a0%81"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Q39&lt;/strong&gt; 给一个日期，算出它是对应年份的第多少天。比如 2026 年 8 月 24 号是今年第几天。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q40&lt;/strong&gt; 有其他的方法吗？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q41&lt;/strong&gt; 系统函数能帮你解决问题吗？&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="redis--分布式锁--消息队列"&gt;Redis / 分布式锁 / 消息队列&lt;a class="anchor" href="#redis--%e5%88%86%e5%b8%83%e5%bc%8f%e9%94%81--%e6%b6%88%e6%81%af%e9%98%9f%e5%88%97"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Q42&lt;/strong&gt; 基础组件了解过什么？除了 MySQL。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q43&lt;/strong&gt; Redis 做过什么？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q44&lt;/strong&gt; 用 Redis 什么结构？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q45&lt;/strong&gt; 为什么用它呢？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q46&lt;/strong&gt; key / member / score 这三个是什么？你怎么构建的？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q47&lt;/strong&gt; 你还用 Redis 加锁是吧？分布式锁怎么加的？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q48&lt;/strong&gt; 消息队列或其他组件有了解过吗？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q49&lt;/strong&gt; 了解过哪一个呢？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Q50&lt;/strong&gt; Kafka 你自己测过没有？自己实践过没有？&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>m佬PDD服务端开发实习</title><link>https://go.botsarena.tech/docs/interview/dachang/m-pdd-backend-intern/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/m-pdd-backend-intern/</guid><description>&lt;h1 id="m佬-pdd-服务端开发实习"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;m佬 PDD 服务端开发实习&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;岗位：服务端开发实习&lt;/p&gt;

&lt;h2 id="面试流程"&gt;面试流程&lt;a class="anchor" href="#%e9%9d%a2%e8%af%95%e6%b5%81%e7%a8%8b"&gt;#&lt;/a&gt;&lt;/h2&gt;


&lt;h3 id="一面"&gt;一面&lt;a class="anchor" href="#%e4%b8%80%e9%9d%a2"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;项目细节追问。&lt;/li&gt;
&lt;li&gt;手撕 UDP 黏包问题相关题。&lt;/li&gt;
&lt;li&gt;简单模拟题。&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="二面"&gt;二面&lt;a class="anchor" href="#%e4%ba%8c%e9%9d%a2"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;手写 HashMap，实现方式是开放寻址。&lt;/li&gt;
&lt;li&gt;围绕 HashMap 底层聊了较多。&lt;/li&gt;
&lt;li&gt;项目细节追问较多。&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="三面"&gt;三面&lt;a class="anchor" href="#%e4%b8%89%e9%9d%a2"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;面试官对开源经历比较感兴趣，围绕开源项目聊了很多。&lt;/li&gt;
&lt;li&gt;手撕经典前缀表达式求值。&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="hr-面"&gt;HR 面&lt;a class="anchor" href="#hr-%e9%9d%a2"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;聊研究生阶段做项目的一些经历。&lt;/li&gt;
&lt;li&gt;结果：HR 面后流程结束。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="参考答案ai-生成"&gt;参考答案（AI 生成）&lt;a class="anchor" href="#%e5%8f%82%e8%80%83%e7%ad%94%e6%a1%88ai-%e7%94%9f%e6%88%90"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;以下答案由 AI 生成，仅供面试复盘参考。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="1-udp-黏包问题怎么回答"&gt;1. UDP 黏包问题怎么回答？&lt;a class="anchor" href="#1-udp-%e9%bb%8f%e5%8c%85%e9%97%ae%e9%a2%98%e6%80%8e%e4%b9%88%e5%9b%9e%e7%ad%94"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;答：UDP 按报文交付，应用层一次 &lt;code&gt;recvfrom&lt;/code&gt; 读取的是一个 datagram。面试里如果提到 UDP 黏包，可以先说明 UDP 保留报文边界，重点风险在于报文过大导致 IP 分片、接收缓冲区过小导致截断、网络丢包乱序，以及应用层把多个逻辑消息塞进一个 UDP 包后需要自行拆分。&lt;/p&gt;
&lt;p&gt;工程处理思路是设计应用层协议。比如每个逻辑消息使用 &lt;code&gt;length + payload&lt;/code&gt;，或者使用固定长度头部，头部里放 magic、version、seq、len、checksum。接收后先校验头部和长度，再按协议拆出多个逻辑消息。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;func&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;splitFrames&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;buf&lt;/span&gt; []&lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;) ([][]&lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;error&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;frames&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; make([][]&lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;, &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; len(&lt;span style="color:#a6e22e"&gt;buf&lt;/span&gt;) &amp;gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; len(&lt;span style="color:#a6e22e"&gt;buf&lt;/span&gt;) &amp;lt; &lt;span style="color:#ae81ff"&gt;4&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;nil&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;fmt&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Errorf&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;short header&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;n&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; int(&lt;span style="color:#a6e22e"&gt;binary&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;BigEndian&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Uint32&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;buf&lt;/span&gt;[:&lt;span style="color:#ae81ff"&gt;4&lt;/span&gt;]))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;n&lt;/span&gt; &amp;lt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; &lt;span style="color:#f92672"&gt;||&lt;/span&gt; len(&lt;span style="color:#a6e22e"&gt;buf&lt;/span&gt;[&lt;span style="color:#ae81ff"&gt;4&lt;/span&gt;:]) &amp;lt; &lt;span style="color:#a6e22e"&gt;n&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;nil&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;fmt&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Errorf&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;invalid frame length&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;frames&lt;/span&gt; = append(&lt;span style="color:#a6e22e"&gt;frames&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;buf&lt;/span&gt;[&lt;span style="color:#ae81ff"&gt;4&lt;/span&gt;:&lt;span style="color:#ae81ff"&gt;4&lt;/span&gt;&lt;span style="color:#f92672"&gt;+&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;n&lt;/span&gt;])
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;buf&lt;/span&gt; = &lt;span style="color:#a6e22e"&gt;buf&lt;/span&gt;[&lt;span style="color:#ae81ff"&gt;4&lt;/span&gt;&lt;span style="color:#f92672"&gt;+&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;n&lt;/span&gt;:]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;frames&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;nil&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id="2-开放寻址-hashmap-怎么实现"&gt;2. 开放寻址 HashMap 怎么实现？&lt;a class="anchor" href="#2-%e5%bc%80%e6%94%be%e5%af%bb%e5%9d%80-hashmap-%e6%80%8e%e4%b9%88%e5%ae%9e%e7%8e%b0"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;答：开放寻址把所有元素都放在数组里，冲突时按探测序列寻找下一个可用槽位，常见探测方式有线性探测、二次探测和双重哈希。每个槽位通常有三种状态：empty、used、deleted。查找时从 hash 位置开始探测，遇到目标 key 返回，遇到 empty 说明 key 缺席，遇到 deleted 继续探测。&lt;/p&gt;</description></item><item><title>m佬淘天AI应用开发一面</title><link>https://go.botsarena.tech/docs/interview/dachang/m-taotian-ai-app-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/m-taotian-ai-app-1/</guid><description>&lt;h1 id="m佬淘天-ai-应用开发一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;m佬淘天 AI 应用开发一面&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;岗位：AI 应用开发&lt;/p&gt;

&lt;h2 id="面试流程简述"&gt;面试流程简述&lt;a class="anchor" href="#%e9%9d%a2%e8%af%95%e6%b5%81%e7%a8%8b%e7%ae%80%e8%bf%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;面试内容集中在项目经历和 AI coding 认知，整体更像围绕工程实践展开的技术探讨。面试官重点关注候选人如何端到端推进 PR、如何使用 AI 工具、如何看待未来研发流程，以及如何治理 AI coding 带来的语义偏移和上下文管理问题。&lt;/p&gt;
&lt;p&gt;进展：已约二面。&lt;/p&gt;

&lt;h2 id="问题记录"&gt;问题记录&lt;a class="anchor" href="#%e9%97%ae%e9%a2%98%e8%ae%b0%e5%bd%95"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;拿一个 PR 讲，怎么端到端完成？&lt;/li&gt;
&lt;li&gt;日常 AI coding workflow 是什么？&lt;/li&gt;
&lt;li&gt;AI 工具能力继续增强后，流程还能优化哪里？&lt;/li&gt;
&lt;li&gt;怎么理解“语义偏移”？如何用 CI 做回收？&lt;/li&gt;
&lt;li&gt;文档、代码、记忆 / 事实层如何分层？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="参考答案ai-生成"&gt;参考答案（AI 生成）&lt;a class="anchor" href="#%e5%8f%82%e8%80%83%e7%ad%94%e6%a1%88ai-%e7%94%9f%e6%88%90"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;以下答案由 AI 生成，仅供面试复盘参考。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="1-拿一个-pr-讲怎么端到端完成"&gt;1. 拿一个 PR 讲，怎么端到端完成？&lt;a class="anchor" href="#1-%e6%8b%bf%e4%b8%80%e4%b8%aa-pr-%e8%ae%b2%e6%80%8e%e4%b9%88%e7%ab%af%e5%88%b0%e7%ab%af%e5%ae%8c%e6%88%90"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;答：可以按“需求理解、方案设计、实现、验证、评审、上线、回看”来讲。先明确 PR 要解决的用户问题、影响范围和验收标准，再读相关模块和历史 PR，确定改动边界；实现阶段保持小步提交，补单测、集成测试和必要的日志指标；提交前跑本地检查和关键链路验证；review 阶段重点解释设计取舍、风险和回滚方式；合并后观察线上指标和用户反馈。&lt;/p&gt;

&lt;h3 id="2-日常-ai-coding-workflow-是什么"&gt;2. 日常 AI coding workflow 是什么？&lt;a class="anchor" href="#2-%e6%97%a5%e5%b8%b8-ai-coding-workflow-%e6%98%af%e4%bb%80%e4%b9%88"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;答：常见流程是先让 AI 帮忙读代码和梳理调用链，再让 AI 生成方案草稿和测试点，随后人工确定实现边界。编码阶段可以让 AI 承担样板代码、局部函数、测试用例和文档更新；验证阶段让 AI 根据 diff 找风险点，再配合单测、lint、类型检查和本地运行确认质量。核心是把 AI 放在“加速理解、生成候选方案、补齐测试和辅助 review”的位置上。&lt;/p&gt;</description></item><item><title>m佬淘天AI应用开发二面</title><link>https://go.botsarena.tech/docs/interview/dachang/m-taotian-ai-app-2/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/m-taotian-ai-app-2/</guid><description>&lt;h1 id="m佬淘天-ai-应用开发二面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;m佬淘天 AI 应用开发二面&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;岗位：AI 应用开发&lt;/p&gt;

&lt;h2 id="面试流程简述"&gt;面试流程简述&lt;a class="anchor" href="#%e9%9d%a2%e8%af%95%e6%b5%81%e7%a8%8b%e7%ae%80%e8%bf%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;二面整体仍然偏项目深聊和 AI 工程认知探讨，面试官会沿着一面的项目和观点继续往下追问。问题更关注候选人对 RAG、代码智能体、上下文压缩、工程安全和未来工具形态的判断。&lt;/p&gt;

&lt;h2 id="问题记录"&gt;问题记录&lt;a class="anchor" href="#%e9%97%ae%e9%a2%98%e8%ae%b0%e5%bd%95"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;聊到 RAG 时，怎么看待现在的 RAG？&lt;/li&gt;
&lt;li&gt;Karpathy 之前提到过用 Obsidian 做知识库，用 Markdown 和代码片段存储，检索已经能覆盖很多场景；包括 page index 这类方案也很实用。向量数据库在 RAG 中后续还有哪些需求？&lt;/li&gt;
&lt;li&gt;聊到 Claude Code 的代码泄露和 harness engineer，怎么看待代码智能体的安全边界？&lt;/li&gt;
&lt;li&gt;怎么看待 Claude Code 的上下文压缩方式？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="参考答案ai-生成"&gt;参考答案（AI 生成）&lt;a class="anchor" href="#%e5%8f%82%e8%80%83%e7%ad%94%e6%a1%88ai-%e7%94%9f%e6%88%90"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;以下答案由 AI 生成，仅供面试复盘参考。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="1-怎么看待现在的-rag"&gt;1. 怎么看待现在的 RAG？&lt;a class="anchor" href="#1-%e6%80%8e%e4%b9%88%e7%9c%8b%e5%be%85%e7%8e%b0%e5%9c%a8%e7%9a%84-rag"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;答：RAG 的核心价值是把外部知识以可检索、可引用、可更新的方式接入模型。现在的 RAG 已经从“向量召回 + 拼 prompt”演进成一套工程系统，包括文档治理、分块、索引、混合检索、rerank、权限过滤、上下文压缩、引用溯源和效果评测。真正影响效果的往往是数据质量、召回可控性、上下文组织和评测闭环。&lt;/p&gt;

&lt;h3 id="2-向量数据库在-rag-中后续还有哪些需求"&gt;2. 向量数据库在 RAG 中后续还有哪些需求？&lt;a class="anchor" href="#2-%e5%90%91%e9%87%8f%e6%95%b0%e6%8d%ae%e5%ba%93%e5%9c%a8-rag-%e4%b8%ad%e5%90%8e%e7%bb%ad%e8%bf%98%e6%9c%89%e5%93%aa%e4%ba%9b%e9%9c%80%e6%b1%82"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;答：向量数据库的价值取决于知识规模、查询复杂度和工程约束。小规模代码库、个人知识库、Markdown 文档和结构化代码片段，关键词检索、文件索引、AST/符号索引、page index 已经很强；企业级知识库、多语言语义查询、自然语言模糊表达、跨文档关联、海量增量索引、权限过滤和高并发检索，会继续需要向量索引和向量数据库。&lt;/p&gt;
&lt;p&gt;更合理的判断是：RAG 会走向混合检索。代码类场景依赖符号索引、依赖图、全文检索和结构化检索；知识问答场景依赖 BM25、向量召回、rerank 和元数据过滤；Agent 场景还需要按任务动态选择工具、文档和历史记忆。向量数据库会成为检索栈的一层，而 RAG 的能力上限来自整体检索与上下文工程。&lt;/p&gt;

&lt;h3 id="3-怎么看待代码智能体的安全边界"&gt;3. 怎么看待代码智能体的安全边界？&lt;a class="anchor" href="#3-%e6%80%8e%e4%b9%88%e7%9c%8b%e5%be%85%e4%bb%a3%e7%a0%81%e6%99%ba%e8%83%bd%e4%bd%93%e7%9a%84%e5%ae%89%e5%85%a8%e8%be%b9%e7%95%8c"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;答：代码智能体有仓库读取、文件修改、命令执行、网络访问和凭证接触能力，权限边界要按真实工程工具来设计。安全策略可以分成四层：权限最小化、敏感信息隔离、执行审计、变更验证。比如限制可读目录和命令白名单，屏蔽 token、密钥和生产配置，对每次工具调用留审计日志，所有代码变更经过测试、review 和 CI。&lt;/p&gt;</description></item><item><title>m佬腾讯TEG研发管理全栈开发一面</title><link>https://go.botsarena.tech/docs/interview/dachang/m-tencent-teg-fullstack-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/m-tencent-teg-fullstack-1/</guid><description>&lt;h1 id="m佬腾讯-teg-研发管理全栈开发一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;m佬腾讯 TEG 研发管理全栈开发一面&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;岗位：全栈开发（偏后端应用开发）&lt;/p&gt;

&lt;h2 id="面试流程简述"&gt;面试流程简述&lt;a class="anchor" href="#%e9%9d%a2%e8%af%95%e6%b5%81%e7%a8%8b%e7%ae%80%e8%bf%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;整体时间比较长，前面先做了一道手写题，后面主要围绕 Go 基础、项目、AI coding / agent 相关理解展开，最后有反问环节。岗位挂全栈，面试内容明显偏后端应用开发和 AI 工具工程化。&lt;/p&gt;

&lt;h2 id="算法"&gt;算法&lt;a class="anchor" href="#%e7%ae%97%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;手写 LRU Cache。&lt;/li&gt;
&lt;li&gt;追问：如果给 LRU 加过期时间怎么设计？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="八股"&gt;八股&lt;a class="anchor" href="#%e5%85%ab%e8%82%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;goroutine 和线程的区别。&lt;/li&gt;
&lt;li&gt;GMP 模型。&lt;/li&gt;
&lt;li&gt;本地队列挂在 P 还是 M？&lt;/li&gt;
&lt;li&gt;channel 的理解、常见使用场景。&lt;/li&gt;
&lt;li&gt;channel close 后的行为。&lt;/li&gt;
&lt;li&gt;defer 的用途和执行顺序。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="项目--场景追问"&gt;项目 / 场景追问&lt;a class="anchor" href="#%e9%a1%b9%e7%9b%ae--%e5%9c%ba%e6%99%af%e8%bf%bd%e9%97%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;某网关项目里，如何把存量 API 适配成 MCP 调用形式？&lt;/li&gt;
&lt;li&gt;为什么选择在网关层做协议转换？现成 SDK 的局限是什么？&lt;/li&gt;
&lt;li&gt;OAuth 相关鉴权流程怎么设计？&lt;/li&gt;
&lt;li&gt;服务注册发现 / 配置管理怎么接？&lt;/li&gt;
&lt;li&gt;高并发下网关怎么考虑扩展和治理？&lt;/li&gt;
&lt;li&gt;大量调用失败时如何排查？&lt;/li&gt;
&lt;li&gt;skill 摘要索引 / 按需注入上下文怎么做？&lt;/li&gt;
&lt;li&gt;agent loop 为什么会死循环，怎么防护？&lt;/li&gt;
&lt;li&gt;多 session 并发时如何避免上下文 / 记忆串扰？&lt;/li&gt;
&lt;li&gt;长期记忆 / RAG 的基本理解和关键环节。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="ai--工程认知"&gt;AI / 工程认知&lt;a class="anchor" href="#ai--%e5%b7%a5%e7%a8%8b%e8%ae%a4%e7%9f%a5"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;平时 AI coding 怎么用？&lt;/li&gt;
&lt;li&gt;AI 生成代码和人工 review 的关系。&lt;/li&gt;
&lt;li&gt;AI review AI 是否有效？&lt;/li&gt;
&lt;li&gt;对 OpenClaw / OpenCode 一类工具的理解和使用感受。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="反问"&gt;反问&lt;a class="anchor" href="#%e5%8f%8d%e9%97%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;部门业务方向。&lt;/li&gt;
&lt;li&gt;团队当前在做的 AI + code 相关工作。&lt;/li&gt;
&lt;li&gt;团队内部 AI coding 的使用方式和模型选择。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="总体感受"&gt;总体感受&lt;a class="anchor" href="#%e6%80%bb%e4%bd%93%e6%84%9f%e5%8f%97"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;整体更像后端工程 + AI 工具方向的面试，项目会被追得比较细，尤其会看 Go 基础、项目真实性、工程化思考和 AI 工具理解。&lt;/p&gt;</description></item><item><title>m佬腾讯全栈开发二面</title><link>https://go.botsarena.tech/docs/interview/dachang/m-tencent-fullstack-2/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/m-tencent-fullstack-2/</guid><description>&lt;h1 id="m佬腾讯全栈开发二面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;m佬腾讯全栈开发二面&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;岗位：全栈开发&lt;/p&gt;

&lt;h2 id="面试流程简述"&gt;面试流程简述&lt;a class="anchor" href="#%e9%9d%a2%e8%af%95%e6%b5%81%e7%a8%8b%e7%ae%80%e8%bf%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;本轮以项目和工程讨论为主，重点围绕鉴权、平台集成、Agent 项目设计、开源框架阅读方式、需求推进和 AI 应用工程化展开。&lt;/p&gt;

&lt;h2 id="问题记录"&gt;问题记录&lt;a class="anchor" href="#%e9%97%ae%e9%a2%98%e8%ae%b0%e5%bd%95"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;鉴权方案、验证闭环、平台集成、工具动态更新。&lt;/li&gt;
&lt;li&gt;对大型开源框架源码的理解和阅读方式。&lt;/li&gt;
&lt;li&gt;某 agent / demo 项目的核心模块、总线、session、记忆设计、失败恢复。&lt;/li&gt;
&lt;li&gt;有没有做过端到端闭环项目？&lt;/li&gt;
&lt;li&gt;需求不清且 deadline 紧时怎么推进？&lt;/li&gt;
&lt;li&gt;如果重做一个 AI demo，会怎么优化架构？&lt;/li&gt;
&lt;li&gt;AI 应用开发中最容易被忽略的工程问题有哪些？&lt;/li&gt;
&lt;li&gt;模型输出不稳定时工程上怎么处理？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="参考答案ai-生成"&gt;参考答案（AI 生成）&lt;a class="anchor" href="#%e5%8f%82%e8%80%83%e7%ad%94%e6%a1%88ai-%e7%94%9f%e6%88%90"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;以下答案由 AI 生成，仅供面试复盘参考。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="1-鉴权方案验证闭环平台集成工具动态更新"&gt;1. 鉴权方案、验证闭环、平台集成、工具动态更新&lt;a class="anchor" href="#1-%e9%89%b4%e6%9d%83%e6%96%b9%e6%a1%88%e9%aa%8c%e8%af%81%e9%97%ad%e7%8e%af%e5%b9%b3%e5%8f%b0%e9%9b%86%e6%88%90%e5%b7%a5%e5%85%b7%e5%8a%a8%e6%80%81%e6%9b%b4%e6%96%b0"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;答：鉴权可以按用户身份、应用身份、工具权限和资源权限四层设计。用户侧用 OAuth / SSO 完成登录授权，平台侧用 app key、签名或 token 管理调用方身份，工具侧用 scope 控制可调用能力，资源侧按租户、项目和数据域做权限过滤。验证闭环包括鉴权单测、集成测试、灰度验证、审计日志和异常告警；工具动态更新可以通过配置中心或注册中心维护 tool schema、版本、权限和路由规则。&lt;/p&gt;

&lt;h3 id="2-大型开源框架源码怎么读"&gt;2. 大型开源框架源码怎么读？&lt;a class="anchor" href="#2-%e5%a4%a7%e5%9e%8b%e5%bc%80%e6%ba%90%e6%a1%86%e6%9e%b6%e6%ba%90%e7%a0%81%e6%80%8e%e4%b9%88%e8%af%bb"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;答：先从使用入口和核心概念开始，跑一个最小 demo，再沿主链路读关键接口和数据结构。读源码时重点看模块边界、生命周期、扩展点、错误处理和并发模型；遇到复杂框架可以用断点、日志、调用图和测试用例辅助理解。最终要把源码理解落到“它解决什么问题、核心抽象是什么、扩展点在哪里、工程取舍是什么”。&lt;/p&gt;

&lt;h3 id="3-agent-项目的核心模块怎么讲"&gt;3. Agent 项目的核心模块怎么讲？&lt;a class="anchor" href="#3-agent-%e9%a1%b9%e7%9b%ae%e7%9a%84%e6%a0%b8%e5%bf%83%e6%a8%a1%e5%9d%97%e6%80%8e%e4%b9%88%e8%ae%b2"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;答：可以拆成任务入口、规划器、工具层、事件总线、session 管理、记忆系统、执行器和观测模块。事件总线负责把模型推理、工具调用、用户输入、错误和状态变更串起来；session 保存一次对话或任务的上下文；记忆负责沉淀用户偏好、项目事实和历史决策；失败恢复则依赖重试、回滚、断点续跑、执行轨迹和人工接管。&lt;/p&gt;

&lt;h3 id="4-有没有做过端到端闭环项目"&gt;4. 有没有做过端到端闭环项目？&lt;a class="anchor" href="#4-%e6%9c%89%e6%b2%a1%e6%9c%89%e5%81%9a%e8%bf%87%e7%ab%af%e5%88%b0%e7%ab%af%e9%97%ad%e7%8e%af%e9%a1%b9%e7%9b%ae"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;答：端到端闭环项目要讲清“需求来源、方案设计、开发实现、测试验证、上线发布、监控反馈、迭代优化”。AI 应用里还要补充 prompt / tool schema 设计、评测集构建、badcase 收集、线上日志分析和效果回归。面试时最好拿一个 PR 或功能模块讲完整路径。&lt;/p&gt;

&lt;h3 id="5-需求不清且-deadline-紧时怎么推进"&gt;5. 需求不清且 deadline 紧时怎么推进？&lt;a class="anchor" href="#5-%e9%9c%80%e6%b1%82%e4%b8%8d%e6%b8%85%e4%b8%94-deadline-%e7%b4%a7%e6%97%b6%e6%80%8e%e4%b9%88%e6%8e%a8%e8%bf%9b"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;答：先把目标、用户、核心场景和验收标准快速对齐，再把需求拆成必须交付、可延后和待确认三类。实现上优先做最小可用闭环，给关键风险留验证点，过程中保持短周期同步。deadline 紧时，最重要的是把模糊需求变成可验收的小里程碑。&lt;/p&gt;</description></item><item><title>m佬阿里国际AI研发一面</title><link>https://go.botsarena.tech/docs/interview/dachang/m-alibaba-intl-ai-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/m-alibaba-intl-ai-1/</guid><description>&lt;h1 id="m佬阿里国际-ai-研发一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;m佬阿里国际 AI 研发一面&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;岗位：AI 研发&lt;/p&gt;

&lt;h2 id="面试体验"&gt;面试体验&lt;a class="anchor" href="#%e9%9d%a2%e8%af%95%e4%bd%93%e9%aa%8c"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;面试体验很好。一面主要围绕 AI 项目、Agent 工作流、任务修正、回退机制、工具注册、记忆系统和 RAG 检索展开。&lt;/p&gt;

&lt;h2 id="问题记录"&gt;问题记录&lt;a class="anchor" href="#%e9%97%ae%e9%a2%98%e8%ae%b0%e5%bd%95"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;先做一下自我介绍。&lt;/li&gt;
&lt;li&gt;简历里的 AI 相关项目是通过自学仿照某类产品做的吗？能简单讲一下吗？&lt;/li&gt;
&lt;li&gt;这个项目目前跑起来哪些具体的场景化应用？&lt;/li&gt;
&lt;li&gt;如果要做一个“定时触发任务并自动通知某个人”的场景，在你的系统里会怎么落地？需要考虑哪些模块？&lt;/li&gt;
&lt;li&gt;这个场景更像 workflow 还是 agent？为什么？&lt;/li&gt;
&lt;li&gt;假设用户先发起一个查询任务，随后补充说参数写错了，要把原来的参数改成新的参数，怎么让 agent 快速、优雅地完成修改？&lt;/li&gt;
&lt;li&gt;如果只通过 prompt 让 agent 感知“这是一次更正”，它怎么判断这条新消息是修改前一个任务，还是新的独立任务？&lt;/li&gt;
&lt;li&gt;在 React / Agent Loop 已经执行中的情况下，如何处理用户中途插入的纠错信息？&lt;/li&gt;
&lt;li&gt;如果一个任务已经执行到多轮，怎么判断应该回退到哪一轮、哪个节点重新执行？&lt;/li&gt;
&lt;li&gt;如果通过模型判断需要回退的节点，如何控制成本和稳定性？&lt;/li&gt;
&lt;li&gt;协调者和子 agent 的设计里，上层协调者和正在工作的下层 agent 之间怎么取舍和平衡？&lt;/li&gt;
&lt;li&gt;如果子 agent 重启或重新执行，旧结果应该如何抛弃？怎么定义结果失效？&lt;/li&gt;
&lt;li&gt;如果一直向上回溯 Loop 节点，会带来哪些开销和不确定性？&lt;/li&gt;
&lt;li&gt;本地轻量工具注册表是做什么的？和正常的 MCP 工具有哪些区别？&lt;/li&gt;
&lt;li&gt;项目里用了记忆吗？&lt;/li&gt;
&lt;li&gt;如果线上生产环境里要构建一个面向 C 端用户的 Agent 记忆模块，会考虑哪些因素？&lt;/li&gt;
&lt;li&gt;Agent 的记忆应该怎么分层？&lt;/li&gt;
&lt;li&gt;当前会话记忆、每日摘要记忆、长期用户记忆之间有什么区别？&lt;/li&gt;
&lt;li&gt;如果用户问一个新问题，但历史记忆里有相关偏好，agent 怎么处理？&lt;/li&gt;
&lt;li&gt;这里的 RAG / 检索流程应该怎么设计？&lt;/li&gt;
&lt;li&gt;在大规模知识库场景下，如何高效召回用户真正需要的文档？&lt;/li&gt;
&lt;li&gt;除了 query rewrite、多路召回之外，还有哪些思路可以提升召回效率？&lt;/li&gt;
&lt;li&gt;有什么想问我的？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="参考答案ai-生成"&gt;参考答案（AI 生成）&lt;a class="anchor" href="#%e5%8f%82%e8%80%83%e7%ad%94%e6%a1%88ai-%e7%94%9f%e6%88%90"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;以下答案由 AI 生成，仅供面试复盘参考。&lt;/p&gt;</description></item><item><title>m佬阿里国际AI研发二面</title><link>https://go.botsarena.tech/docs/interview/dachang/m-alibaba-intl-ai-2/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/m-alibaba-intl-ai-2/</guid><description>&lt;h1 id="m佬阿里国际-ai-研发二面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;m佬阿里国际 AI 研发二面&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;岗位：AI 研发&lt;/p&gt;

&lt;h2 id="问题记录"&gt;问题记录&lt;a class="anchor" href="#%e9%97%ae%e9%a2%98%e8%ae%b0%e5%bd%95"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;再简要介绍一下自己的情况。&lt;/li&gt;
&lt;li&gt;对 Harness / AI Coding Harness 怎么理解？&lt;/li&gt;
&lt;li&gt;提到不同实践方式，你觉得哪种更好？如果自己实践，会怎么选型？&lt;/li&gt;
&lt;li&gt;如果在成熟大公司内部实践 Harness 式研发模式，怎么做比较好？有什么最佳实践建议？&lt;/li&gt;
&lt;li&gt;你说用文档约束 AI，具体怎么理解？能举例吗？&lt;/li&gt;
&lt;li&gt;工程内 Markdown / 文档约束和传统知识库、RAG 有什么区别？&lt;/li&gt;
&lt;li&gt;除了定义文档约束，还有哪些方式可以帮助 AI 参与企业级研发？&lt;/li&gt;
&lt;li&gt;用 AI Coding 之后，还会看源码吗？&lt;/li&gt;
&lt;li&gt;现在主要使用哪些 AI Coding 工具？&lt;/li&gt;
&lt;li&gt;某类传统 IDE 型 AI 编程产品现在还用吗？&lt;/li&gt;
&lt;li&gt;传统 IDE 辅助编程类产品有前途吗？未来会怎么发展？&lt;/li&gt;
&lt;li&gt;未来 AI Coding 的趋势是什么？&lt;/li&gt;
&lt;li&gt;未来对技术人才的要求，最核心的三点是什么？&lt;/li&gt;
&lt;li&gt;为什么觉得汇报和表达产出很重要？&lt;/li&gt;
&lt;li&gt;现在手头通过 AI 在做的最核心事情是什么？&lt;/li&gt;
&lt;li&gt;在开源社区做 PR，具体做什么？&lt;/li&gt;
&lt;li&gt;开源社区日常怎么运作？机制和流程是什么样的？&lt;/li&gt;
&lt;li&gt;除了 AI 方向，计算机基础比如数据库、计算机网络、数据结构、算法掌握得怎么样？&lt;/li&gt;
&lt;li&gt;对自己的职业发展规划怎么考虑？&lt;/li&gt;
&lt;li&gt;对业务领域或业务方向有什么倾向？&lt;/li&gt;
&lt;li&gt;过去用 AI 学习、开发或做具体事情的过程中，遇到过最有技术挑战的问题是什么？&lt;/li&gt;
&lt;li&gt;当时怎么解决这个技术挑战？能讲一个具体 case 和心路历程吗？&lt;/li&gt;
&lt;li&gt;英文能力怎么样？平时英语交流多吗？&lt;/li&gt;
&lt;li&gt;对工作地点有什么考虑？&lt;/li&gt;
&lt;li&gt;目前还在面哪些其他岗位？进展怎么样？&lt;/li&gt;
&lt;li&gt;有什么想问我的？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="参考答案ai-生成"&gt;参考答案（AI 生成）&lt;a class="anchor" href="#%e5%8f%82%e8%80%83%e7%ad%94%e6%a1%88ai-%e7%94%9f%e6%88%90"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;以下答案由 AI 生成，仅供面试复盘参考。&lt;/p&gt;</description></item><item><title>Shio字节一面</title><link>https://go.botsarena.tech/docs/interview/dachang/shio-bytedance-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/shio-bytedance-1/</guid><description>&lt;h1 id="shio-字节一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;Shio 字节一面&lt;/a&gt;
&lt;/h1&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;根据口述整理，以下为一面题目清单。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="自我介绍与项目"&gt;自我介绍与项目&lt;a class="anchor" href="#%e8%87%aa%e6%88%91%e4%bb%8b%e7%bb%8d%e4%b8%8e%e9%a1%b9%e7%9b%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;自我介绍&lt;/li&gt;
&lt;li&gt;选一个最熟悉的项目讲一下&lt;/li&gt;
&lt;li&gt;拷打项目（围绕项目进行深入追问）&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="算法"&gt;算法&lt;a class="anchor" href="#%e7%ae%97%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;搜索旋转排序数组&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;题目链接：&lt;a href="https://leetcode.cn/problems/search-in-rotated-sorted-array/description/"&gt;搜索旋转排序数组&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="数据库mysql"&gt;数据库（MySQL）&lt;a class="anchor" href="#%e6%95%b0%e6%8d%ae%e5%ba%93mysql"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;给一个简单场景和几个字段，问这几个字段设计数据库表时，数据结构怎么选&lt;/li&gt;
&lt;li&gt;&lt;code&gt;varchar&lt;/code&gt; 和 &lt;code&gt;char&lt;/code&gt; 的区别&lt;/li&gt;
&lt;li&gt;给一个查询语句和联合索引，问会不会走索引&lt;/li&gt;
&lt;li&gt;怎么排查慢查询&lt;/li&gt;
&lt;li&gt;（面试官让自我提问，后面为自己所想问题）MySQL 执行一条 &lt;code&gt;update&lt;/code&gt; 会发生什么？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="go-与并发"&gt;Go 与并发&lt;a class="anchor" href="#go-%e4%b8%8e%e5%b9%b6%e5%8f%91"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Go 的 goroutine 和线程有什么区别？goroutine 有自己的栈吗？&lt;/li&gt;
&lt;li&gt;遇到并发情况怎么加锁？&lt;/li&gt;
&lt;li&gt;如果是分布式场景下怎么加锁？加锁命令是什么？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="redis"&gt;Redis&lt;a class="anchor" href="#redis"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;为什么延迟队列可以用 &lt;code&gt;zset&lt;/code&gt; 来做？&lt;/li&gt;
&lt;li&gt;&lt;code&gt;zset&lt;/code&gt; 的底层数据结构是什么样的？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="计算机网络"&gt;计算机网络&lt;a class="anchor" href="#%e8%ae%a1%e7%ae%97%e6%9c%ba%e7%bd%91%e7%bb%9c"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;输入一个 URL 到网页加载之间发生了什么？&lt;/li&gt;
&lt;li&gt;TCP 为什么要三次握手，而不是两次？&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Shio美团一面</title><link>https://go.botsarena.tech/docs/interview/dachang/shio-meituan-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/shio-meituan-1/</guid><description>&lt;h1 id="shio-美团一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;Shio 美团一面&lt;/a&gt;
&lt;/h1&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;根据图片内容整理，以下为一面题目清单。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="操作系统与-io"&gt;操作系统与 I/O&lt;a class="anchor" href="#%e6%93%8d%e4%bd%9c%e7%b3%bb%e7%bb%9f%e4%b8%8e-io"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;进程的调度方法有哪些？不同调度方法分别适合什么场景？&lt;/li&gt;
&lt;li&gt;线程调度的开销主要由哪几部分组成？&lt;/li&gt;
&lt;li&gt;操作系统的 I/O 模型有哪些？&lt;/li&gt;
&lt;li&gt;讲一下阻塞 I/O 和非阻塞 I/O。&lt;/li&gt;
&lt;li&gt;为什么不能一下开上万个线程？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="计算机网络"&gt;计算机网络&lt;a class="anchor" href="#%e8%ae%a1%e7%ae%97%e6%9c%ba%e7%bd%91%e7%bb%9c"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;TCP 有哪些保证可靠传输的机制？&lt;/li&gt;
&lt;li&gt;流量控制和拥塞控制的区别是什么？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="mysql"&gt;MySQL&lt;a class="anchor" href="#mysql"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;为什么 MySQL 使用 B+ 树？&lt;/li&gt;
&lt;li&gt;索引有哪些类型？覆盖索引是什么？&lt;/li&gt;
&lt;li&gt;联合索引 &lt;code&gt;abc&lt;/code&gt; 查询 &lt;code&gt;bc&lt;/code&gt; 能不能走索引？&lt;/li&gt;
&lt;li&gt;索引失效的常见情况有哪些？&lt;/li&gt;
&lt;li&gt;怎么看一条 SQL 的执行计划？需要重点关注哪些字段？&lt;/li&gt;
&lt;li&gt;MySQL 有哪些事务隔离级别？&lt;/li&gt;
&lt;li&gt;事务的四个特性是什么？分别依靠什么机制实现？&lt;/li&gt;
&lt;li&gt;什么是 MVCC？它是如何实现的？&lt;/li&gt;
&lt;li&gt;可重复读隔离级别是如何处理幻读的？&lt;/li&gt;
&lt;li&gt;MySQL 加了哪些锁？只有行锁吗？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="llm-与微调"&gt;LLM 与微调&lt;a class="anchor" href="#llm-%e4%b8%8e%e5%be%ae%e8%b0%83"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;LLM 的幻觉是什么？&lt;/li&gt;
&lt;li&gt;怎么解决或者缓解幻觉？&lt;/li&gt;
&lt;li&gt;除了 RAG 还有哪些方案？&lt;/li&gt;
&lt;li&gt;全量微调大概是在做什么？&lt;/li&gt;
&lt;li&gt;LoRA 微调大概是在做什么？&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;备注：这部分当时没答上来，面试官提到了“微调”方向。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="rag-项目"&gt;RAG 项目&lt;a class="anchor" href="#rag-%e9%a1%b9%e7%9b%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;RAG 项目拷打。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="ai-coding-场景题"&gt;AI Coding 场景题&lt;a class="anchor" href="#ai-coding-%e5%9c%ba%e6%99%af%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;给了一段几行代码，内容是对所有 &lt;code&gt;user_ids&lt;/code&gt; 执行一条 &lt;code&gt;update&lt;/code&gt;。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;这个实现的风险点是什么？&lt;/li&gt;
&lt;li&gt;如果 &lt;code&gt;user_ids&lt;/code&gt; 是百万级，并且更新的值是负数，会怎么样？&lt;/li&gt;
&lt;li&gt;怎么把它做成一个更工程化的版本？&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Tadori1zanai Bilibili增值一面</title><link>https://go.botsarena.tech/docs/interview/dachang/tadori-bilibili-vas-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/tadori-bilibili-vas-1/</guid><description>&lt;h1 id="tadori1zanai-bilibili-增值一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;Tadori1zanai Bilibili 增值一面&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;作者：Tadori1zanai&lt;br&gt;
时间：2026.5.7&lt;/p&gt;
&lt;p&gt;暂无可展示的面试题。&lt;/p&gt;</description></item><item><title>Tadori1zanai 字节中国交易与广告一面</title><link>https://go.botsarena.tech/docs/interview/dachang/tadori-bytedance-ecom-ads-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/tadori-bytedance-ecom-ads-1/</guid><description>&lt;h1 id="tadori1zanai-字节中国交易与广告一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;Tadori1zanai 字节中国交易与广告一面&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;作者：Tadori1zanai&lt;br&gt;
时间：2026.4.28&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;注：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;回答多数为 AI 生成，仅供参考。&lt;/li&gt;
&lt;li&gt;只记录部分面试和部分问题，部分问题暂无回答。&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h2 id="waitgroup-底层是如何实现的"&gt;WaitGroup 底层是如何实现的？&lt;a class="anchor" href="#waitgroup-%e5%ba%95%e5%b1%82%e6%98%af%e5%a6%82%e4%bd%95%e5%ae%9e%e7%8e%b0%e7%9a%84"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;WaitGroup&lt;/code&gt; 本质是一个带阻塞能力的计数器，用于等待一组 goroutine 执行完成。&lt;/li&gt;
&lt;li&gt;它内部通过原子操作维护计数器，&lt;code&gt;Add&lt;/code&gt; 增加任务数，&lt;code&gt;Done&lt;/code&gt; 减少任务数。&lt;/li&gt;
&lt;li&gt;当计数器不为 0 时，调用 &lt;code&gt;Wait&lt;/code&gt; 的 goroutine 会被挂起。&lt;/li&gt;
&lt;li&gt;最后一个 &lt;code&gt;Done&lt;/code&gt; 把计数器减为 0 时，会通过 runtime 的信号量机制唤醒所有阻塞的 goroutine。&lt;/li&gt;
&lt;li&gt;为了降低锁开销，&lt;code&gt;WaitGroup&lt;/code&gt; 使用 CAS 维护状态，并结合 runtime 调度器实现阻塞与唤醒。&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="synconce-底层原理"&gt;sync.Once 底层原理&lt;a class="anchor" href="#synconce-%e5%ba%95%e5%b1%82%e5%8e%9f%e7%90%86"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sync.Once&lt;/code&gt; 用于保证某个函数在并发环境下只执行一次。&lt;/li&gt;
&lt;li&gt;内部通过原子变量 &lt;code&gt;done&lt;/code&gt; 和互斥锁实现。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Do&lt;/code&gt; 方法先通过原子读检查 &lt;code&gt;done&lt;/code&gt; 标志，已经执行过就直接返回。&lt;/li&gt;
&lt;li&gt;未执行时进入加锁慢路径，在临界区内二次检查。&lt;/li&gt;
&lt;li&gt;执行函数完成后，通过原子写将 &lt;code&gt;done&lt;/code&gt; 置为 1。&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Tadori1zanai 字节中国交易与广告三面</title><link>https://go.botsarena.tech/docs/interview/dachang/tadori-bytedance-ecom-ads-3/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/tadori-bytedance-ecom-ads-3/</guid><description>&lt;h1 id="tadori1zanai-字节中国交易与广告三面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;Tadori1zanai 字节中国交易与广告三面&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;作者：Tadori1zanai&lt;br&gt;
时间：2026.5.7&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;注：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;回答多数为 AI 生成，仅供参考。&lt;/li&gt;
&lt;li&gt;只记录部分面试和部分问题，部分问题暂无回答。&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h2 id="lru-的缺点"&gt;LRU 的缺点&lt;a class="anchor" href="#lru-%e7%9a%84%e7%bc%ba%e7%82%b9"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;容易被顺序扫描打穿，大量只访问一次的数据会把真正热点挤出去。&lt;/li&gt;
&lt;li&gt;LRU 只看最近访问时间，无法识别长期高频访问的稳定热点。&lt;/li&gt;
&lt;li&gt;标准实现通常是 map 加双向链表，命中后需要更新链表，高并发下锁竞争明显。&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="lru-如何增强并发性能"&gt;LRU 如何增强并发性能？&lt;a class="anchor" href="#lru-%e5%a6%82%e4%bd%95%e5%a2%9e%e5%bc%ba%e5%b9%b6%e5%8f%91%e6%80%a7%e8%83%bd"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;优先做分片，把缓存拆成多个 shard，每个 shard 有自己的 map、链表和锁。&lt;/li&gt;
&lt;li&gt;业务允许时，可以把严格 LRU 放宽成近似 LRU，例如异步或批量更新访问顺序。&lt;/li&gt;
&lt;li&gt;并发和流量进一步提高时，可以结合多级缓存、热点保护，或使用更适合工程场景的淘汰策略。&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Tadori1zanai 字节中国交易与广告二面</title><link>https://go.botsarena.tech/docs/interview/dachang/tadori-bytedance-ecom-ads-2/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/tadori-bytedance-ecom-ads-2/</guid><description>&lt;h1 id="tadori1zanai-字节中国交易与广告二面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;Tadori1zanai 字节中国交易与广告二面&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;作者：Tadori1zanai&lt;br&gt;
时间：2026.4.29&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;注：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;回答多数为 AI 生成，仅供参考。&lt;/li&gt;
&lt;li&gt;只记录部分面试和部分问题，部分问题暂无回答。&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h2 id="kafka-为什么可以处理高吞吐"&gt;Kafka 为什么可以处理高吞吐？&lt;a class="anchor" href="#kafka-%e4%b8%ba%e4%bb%80%e4%b9%88%e5%8f%af%e4%bb%a5%e5%a4%84%e7%90%86%e9%ab%98%e5%90%9e%e5%90%90"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Kafka 把消息当成日志做顺序追加写，顺序写磁盘效率高于随机写。&lt;/li&gt;
&lt;li&gt;Kafka 通过 partition 把一个 topic 拆成多条并行日志，生产和消费都可以并行扩展。&lt;/li&gt;
&lt;li&gt;Kafka 支持批量发送、批量写入、批量拉取，减少网络和系统调用开销。&lt;/li&gt;
&lt;li&gt;Kafka 充分利用操作系统 page cache，很多文件读写先走内存。&lt;/li&gt;
&lt;li&gt;Kafka 使用零拷贝发送消息，减少用户态和内核态之间的数据搬运。&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Tadori1zanai 字节广告与架构一面</title><link>https://go.botsarena.tech/docs/interview/dachang/tadori-bytedance-ads-arch-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/tadori-bytedance-ads-arch-1/</guid><description>&lt;h1 id="tadori1zanai-字节广告与架构一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;Tadori1zanai 字节广告与架构一面&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;作者：Tadori1zanai&lt;br&gt;
时间：2026.5.27&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;注：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;回答多数为 AI 生成，仅供参考。&lt;/li&gt;
&lt;li&gt;只记录部分面试和部分问题，部分问题暂无回答。&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h2 id="缓存雪崩如何避免"&gt;缓存雪崩如何避免？&lt;a class="anchor" href="#%e7%bc%93%e5%ad%98%e9%9b%aa%e5%b4%a9%e5%a6%82%e4%bd%95%e9%81%bf%e5%85%8d"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;给过期时间加入随机数，避免大量数据在同一时间过期。&lt;/li&gt;
&lt;li&gt;使用互斥锁或 singleflight，cache miss 时让同一时间只有一个请求构建缓存。&lt;/li&gt;
&lt;li&gt;互斥锁需要设置超时时间。&lt;/li&gt;
&lt;li&gt;使用后台任务主动更新缓存，减少请求链路上的集中回源。&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Tadori1zanai 美团核心本地商业业务研发平台一面</title><link>https://go.botsarena.tech/docs/interview/dachang/tadori-meituan-local-biz-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/tadori-meituan-local-biz-1/</guid><description>&lt;h1 id="tadori1zanai-美团核心本地商业业务研发平台一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;Tadori1zanai 美团核心本地商业业务研发平台一面&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;作者：Tadori1zanai&lt;br&gt;
时间：2026.4.29&lt;/p&gt;
&lt;p&gt;暂无可展示的面试题。&lt;/p&gt;</description></item><item><title>Tadori1zanai 美团核心本地商业基础研发平台一面</title><link>https://go.botsarena.tech/docs/interview/dachang/tadori-meituan-local-infra-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/tadori-meituan-local-infra-1/</guid><description>&lt;h1 id="tadori1zanai-美团核心本地商业基础研发平台一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;Tadori1zanai 美团核心本地商业基础研发平台一面&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;作者：Tadori1zanai&lt;br&gt;
时间：2026.5.13&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;注：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;回答多数为 AI 生成，仅供参考。&lt;/li&gt;
&lt;li&gt;只记录部分面试和部分问题，部分问题暂无回答。&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h2 id="怎么理解长连接和短连接的区别"&gt;怎么理解长连接和短连接的区别？&lt;a class="anchor" href="#%e6%80%8e%e4%b9%88%e7%90%86%e8%a7%a3%e9%95%bf%e8%bf%9e%e6%8e%a5%e5%92%8c%e7%9f%ad%e8%bf%9e%e6%8e%a5%e7%9a%84%e5%8c%ba%e5%88%ab"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;本质区别是连接是否跨多次通信复用。&lt;/li&gt;
&lt;li&gt;短连接通常一次请求响应结束后释放连接。&lt;/li&gt;
&lt;li&gt;长连接在一次建立后持续保留，后续多次收发都走同一条连接。&lt;/li&gt;
&lt;li&gt;短连接实现简单，适合普通请求响应，偏无状态。&lt;/li&gt;
&lt;li&gt;长连接需要服务端维护连接状态、心跳和超时清理，适合 IM、双工通信等有状态场景。&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Tadori1zanai 腾讯微信游戏小游戏一面</title><link>https://go.botsarena.tech/docs/interview/dachang/tadori-tencent-wxgame-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/tadori-tencent-wxgame-1/</guid><description>&lt;h1 id="tadori1zanai-腾讯微信游戏小游戏一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;Tadori1zanai 腾讯微信游戏小游戏一面&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;作者：Tadori1zanai&lt;br&gt;
时间：2026.4.25&lt;/p&gt;
&lt;p&gt;暂无可展示的面试题。&lt;/p&gt;</description></item><item><title>Tadori1zanai 腾讯微信游戏小游戏三面</title><link>https://go.botsarena.tech/docs/interview/dachang/tadori-tencent-wxgame-3/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/tadori-tencent-wxgame-3/</guid><description>&lt;h1 id="tadori1zanai-腾讯微信游戏小游戏三面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;Tadori1zanai 腾讯微信游戏小游戏三面&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;作者：Tadori1zanai&lt;br&gt;
时间：2026.5.13&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;注：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;回答多数为 AI 生成，仅供参考。&lt;/li&gt;
&lt;li&gt;只记录部分面试和部分问题，部分问题暂无回答。&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h2 id="goroutine-如何实现goroutine-切换时保存哪些信息"&gt;goroutine 如何实现，goroutine 切换时保存哪些信息？&lt;a class="anchor" href="#goroutine-%e5%a6%82%e4%bd%95%e5%ae%9e%e7%8e%b0goroutine-%e5%88%87%e6%8d%a2%e6%97%b6%e4%bf%9d%e5%ad%98%e5%93%aa%e4%ba%9b%e4%bf%a1%e6%81%af"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Goroutine 是 Go 在用户态实现的轻量级协程。&lt;/li&gt;
&lt;li&gt;每个 goroutine 维护自己的栈和状态。&lt;/li&gt;
&lt;li&gt;切换时，Go 主要保存少量关键寄存器信息到 G 的 &lt;code&gt;gobuf&lt;/code&gt; 结构体。&lt;/li&gt;
&lt;li&gt;典型信息包括 &lt;code&gt;sp&lt;/code&gt; 栈顶指针、&lt;code&gt;pc&lt;/code&gt; 下一条指令地址、&lt;code&gt;ret&lt;/code&gt; 系统调用返回值、&lt;code&gt;bp&lt;/code&gt; 栈帧基址。&lt;/li&gt;
&lt;li&gt;这些操作在用户态完成，开销远低于操作系统线程切换。&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="goroutine-切换和线程进程切换有什么区别"&gt;goroutine 切换和线程、进程切换有什么区别？&lt;a class="anchor" href="#goroutine-%e5%88%87%e6%8d%a2%e5%92%8c%e7%ba%bf%e7%a8%8b%e8%bf%9b%e7%a8%8b%e5%88%87%e6%8d%a2%e6%9c%89%e4%bb%80%e4%b9%88%e5%8c%ba%e5%88%ab"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;进程和线程切换由操作系统内核完成，属于内核态切换。&lt;/li&gt;
&lt;li&gt;goroutine 切换由 Go runtime 完成，属于用户态切换。&lt;/li&gt;
&lt;li&gt;进程切换最重，涉及虚拟地址空间切换，会影响 TLB 和缓存。&lt;/li&gt;
&lt;li&gt;线程切换共享地址空间，但仍需要保存较多寄存器和调度状态。&lt;/li&gt;
&lt;li&gt;goroutine 切换更轻，不涉及地址空间变化，只保存少量核心上下文。&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="udp-不可靠体现在什么地方"&gt;UDP 不可靠体现在什么地方？&lt;a class="anchor" href="#udp-%e4%b8%8d%e5%8f%af%e9%9d%a0%e4%bd%93%e7%8e%b0%e5%9c%a8%e4%bb%80%e4%b9%88%e5%9c%b0%e6%96%b9"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;数据包可能丢失。&lt;/li&gt;
&lt;li&gt;数据包可能乱序到达。&lt;/li&gt;
&lt;li&gt;数据包可能重复。&lt;/li&gt;
&lt;li&gt;UDP 没有流量控制和拥塞控制。&lt;/li&gt;
&lt;li&gt;UDP 只负责尽力发送，不保证到达和顺序。&lt;/li&gt;
&lt;li&gt;UDP 仍然有 checksum 校验，数据损坏通常会被丢弃。&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="udp-的数据帧一般的大小是多少太小或者太大的数据帧会怎么样"&gt;UDP 的数据帧一般的大小是多少？太小或者太大的数据帧会怎么样？&lt;a class="anchor" href="#udp-%e7%9a%84%e6%95%b0%e6%8d%ae%e5%b8%a7%e4%b8%80%e8%88%ac%e7%9a%84%e5%a4%a7%e5%b0%8f%e6%98%af%e5%a4%9a%e5%b0%91%e5%a4%aa%e5%b0%8f%e6%88%96%e8%80%85%e5%a4%aa%e5%a4%a7%e7%9a%84%e6%95%b0%e6%8d%ae%e5%b8%a7%e4%bc%9a%e6%80%8e%e4%b9%88%e6%a0%b7"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;UDP 理论最大数据报大小约为 &lt;code&gt;65535 - 20(IP头) - 8(UDP头) = 65507&lt;/code&gt; 字节。&lt;/li&gt;
&lt;li&gt;以太网 MTU 通常是 1500 字节，因此 UDP payload 常控制在 &lt;code&gt;1500 - 20(IP头) - 8(UDP头) = 1472&lt;/code&gt; 字节以内，避免 IP 分片。&lt;/li&gt;
&lt;li&gt;UDP 包太大会被 IP 层分片，一个分片丢失会导致整个数据报失效。&lt;/li&gt;
&lt;li&gt;UDP 包太小会让 header 占比变高，系统调用和网络包数量增加，带来 CPU 和网卡压力。&lt;/li&gt;
&lt;li&gt;工程上通常控制 UDP 包大小，减少分片，同时兼顾传输效率。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;TCP payload 常见最大值是 MSS，通常为 &lt;code&gt;1500 - 20(IP头) - 20(TCP头) = 1460&lt;/code&gt; 字节。&lt;/p&gt;</description></item><item><title>Tadori1zanai 腾讯微信游戏小游戏四面</title><link>https://go.botsarena.tech/docs/interview/dachang/tadori-tencent-wxgame-4/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/tadori-tencent-wxgame-4/</guid><description>&lt;h1 id="tadori1zanai-腾讯微信游戏小游戏四面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;Tadori1zanai 腾讯微信游戏小游戏四面&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;作者：Tadori1zanai&lt;br&gt;
时间：2026.5.19&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;注：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;回答多数为 AI 生成，仅供参考。&lt;/li&gt;
&lt;li&gt;只记录部分面试和部分问题，部分问题暂无回答。&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h2 id="mysql-事务如何实现"&gt;MySQL 事务如何实现？&lt;a class="anchor" href="#mysql-%e4%ba%8b%e5%8a%a1%e5%a6%82%e4%bd%95%e5%ae%9e%e7%8e%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;暂无回答。&lt;/p&gt;

&lt;h2 id="mysql-事务中的一致性如何实现"&gt;MySQL 事务中的一致性如何实现？&lt;a class="anchor" href="#mysql-%e4%ba%8b%e5%8a%a1%e4%b8%ad%e7%9a%84%e4%b8%80%e8%87%b4%e6%80%a7%e5%a6%82%e4%bd%95%e5%ae%9e%e7%8e%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;暂无回答。&lt;/p&gt;

&lt;h2 id="lru-和-lfu-底层数据结构"&gt;LRU 和 LFU 底层数据结构&lt;a class="anchor" href="#lru-%e5%92%8c-lfu-%e5%ba%95%e5%b1%82%e6%95%b0%e6%8d%ae%e7%bb%93%e6%9e%84"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;暂无回答。&lt;/p&gt;</description></item><item><title>Tadori1zanai 阿里云一面</title><link>https://go.botsarena.tech/docs/interview/dachang/tadori-aliyun-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/tadori-aliyun-1/</guid><description>&lt;h1 id="tadori1zanai-阿里云一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;Tadori1zanai 阿里云一面&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;作者：Tadori1zanai&lt;br&gt;
时间：2026.5.27&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;注：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;回答多数为 AI 生成，仅供参考。&lt;/li&gt;
&lt;li&gt;只记录部分面试和部分问题，部分问题暂无回答。&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h2 id="http-长轮询和-websocket-的区别"&gt;HTTP 长轮询和 WebSocket 的区别&lt;a class="anchor" href="#http-%e9%95%bf%e8%bd%ae%e8%af%a2%e5%92%8c-websocket-%e7%9a%84%e5%8c%ba%e5%88%ab"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;HTTP 长轮询和 WebSocket 都可以实现服务端向客户端推送数据，但原理不同。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HTTP 长轮询本质上仍然是 HTTP 请求。&lt;/li&gt;
&lt;li&gt;客户端发起请求后，服务器没有数据时会挂起请求，直到有新数据或超时再返回。&lt;/li&gt;
&lt;li&gt;客户端收到响应后会立刻再次发起请求。&lt;/li&gt;
&lt;li&gt;WebSocket 是在 HTTP 握手后升级为长连接协议。&lt;/li&gt;
&lt;li&gt;WebSocket 建立持久 TCP 连接后，客户端和服务端都可以主动发送消息。&lt;/li&gt;
&lt;li&gt;WebSocket 实现真正的全双工通信。&lt;/li&gt;
&lt;li&gt;WebSocket 不需要频繁创建请求和传输 HTTP Header，因此实时性更高、开销更低。&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="etcd-的架构"&gt;etcd 的架构&lt;a class="anchor" href="#etcd-%e7%9a%84%e6%9e%b6%e6%9e%84"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;暂无回答。&lt;/p&gt;

&lt;h2 id="etcd-的一致性如何实现"&gt;etcd 的一致性如何实现？&lt;a class="anchor" href="#etcd-%e7%9a%84%e4%b8%80%e8%87%b4%e6%80%a7%e5%a6%82%e4%bd%95%e5%ae%9e%e7%8e%b0"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;暂无回答。&lt;/p&gt;</description></item><item><title>哈饥米百度psig国际化 ai一面</title><link>https://go.botsarena.tech/docs/interview/dachang/hajimi-baidu-psig-ai-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/hajimi-baidu-psig-ai-1/</guid><description>&lt;h1 id="百度-psig-国际化-ai-一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;百度 psig 国际化 ai 一面&lt;/a&gt;
&lt;/h1&gt;


&lt;h2 id="项目"&gt;项目&lt;a class="anchor" href="#%e9%a1%b9%e7%9b%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;项目拷打。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="redis"&gt;Redis&lt;a class="anchor" href="#redis"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Redis 存一个商品的各项信息，用什么数据结构？&lt;/li&gt;
&lt;li&gt;Redis 存一个商品的库存，可能并发增减，用什么数据结构？&lt;/li&gt;
&lt;li&gt;Redis 存最近 20 条评论，用什么数据结构？除了 zset 还能用什么？&lt;/li&gt;
&lt;li&gt;缓存三剑客。&lt;/li&gt;
&lt;li&gt;Redis 内存淘汰策略有什么？&lt;/li&gt;
&lt;li&gt;Redis 事务和 MySQL 事务区别。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="mysql"&gt;MySQL&lt;a class="anchor" href="#mysql"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;怎么排查 MySQL 慢查询？&lt;/li&gt;
&lt;li&gt;假设用户表数据量太大，怎么分表？有没有后续动态去扩容这个表，同时它的分布也比较均匀的分表方法？&lt;/li&gt;
&lt;li&gt;用户表存了手机号，分表后一个一个表扫描太慢了，应该怎么查询？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="计算机基础"&gt;计算机基础&lt;a class="anchor" href="#%e8%ae%a1%e7%ae%97%e6%9c%ba%e5%9f%ba%e7%a1%80"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;发送一个 curl 请求发生了什么？&lt;/li&gt;
&lt;li&gt;如何解析 SSE 的数据帧？&lt;/li&gt;
&lt;li&gt;Linux I/O 多路复用原理？epoll 如果来了新事件，怎么唤醒阻塞进程？&lt;/li&gt;
&lt;li&gt;Linux 权限 644 是什么？&lt;/li&gt;
&lt;li&gt;Work stealing。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="手撕"&gt;手撕&lt;a class="anchor" href="#%e6%89%8b%e6%92%95"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;多协程交替打印 1 和 2。&lt;/li&gt;
&lt;li&gt;堆排序。&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>哈饥米腾讯PCG应用效能技术</title><link>https://go.botsarena.tech/docs/interview/dachang/hajimi-tencent-pcg-efficiency/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/hajimi-tencent-pcg-efficiency/</guid><description>&lt;h1 id="腾讯-pcg-应用效能技术"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;腾讯 PCG 应用效能技术&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;被 PCG 同一个部门捞了两次，第一次是后台开发，第二次是运营开发，应该是 KPI，综合了一下两次的面经。&lt;/p&gt;

&lt;h2 id="go"&gt;Go&lt;a class="anchor" href="#go"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;errgroup 和 waitgroup 区别。&lt;/li&gt;
&lt;li&gt;errgroup 如果子协程抛出错误，其他协程不想取消怎么办？比如定时扫描任务一个失败，其他任务应该取消吗？&lt;/li&gt;
&lt;li&gt;GMP 的 P 在没有主动设置的情况下，它的数量是等于多少的？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="设计与架构"&gt;设计与架构&lt;a class="anchor" href="#%e8%ae%be%e8%ae%a1%e4%b8%8e%e6%9e%b6%e6%9e%84"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;什么是策略模式？&lt;/li&gt;
&lt;li&gt;你的服务瓶颈应该在哪里，怎么判断和扩容？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="llm-与-agent"&gt;LLM 与 Agent&lt;a class="anchor" href="#llm-%e4%b8%8e-agent"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;LLM 自己死循环了怎么解决？&lt;/li&gt;
&lt;li&gt;LLM 会反复调用同一个工具，这种死循环你要怎么去避免？&lt;/li&gt;
&lt;li&gt;有的时候 LLM 可能做了一些危险的操作，要怎么去做一个人工介入/确认的功能呢？&lt;/li&gt;
&lt;li&gt;Function call 的能力和 MCP 这两个有什么区别？&lt;/li&gt;
&lt;li&gt;RAG 文档切分的方式。&lt;/li&gt;
&lt;li&gt;假如向量数据库现在用户量比较大，用户会频繁地更新这个知识库里面的文档。那你要怎么去做这个数据库的索引？&lt;/li&gt;
&lt;li&gt;如果工具特别多，怎么避免把上下文挤爆？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="mysql"&gt;MySQL&lt;a class="anchor" href="#mysql"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;MySQL 死锁的场景。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="网络"&gt;网络&lt;a class="anchor" href="#%e7%bd%91%e7%bb%9c"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;SSE 的原理，如果不用 SSE 还有什么方法能立即推送？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="手撕"&gt;手撕&lt;a class="anchor" href="#%e6%89%8b%e6%92%95"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;206。&lt;/li&gt;
&lt;li&gt;198。&lt;/li&gt;
&lt;li&gt;多协程任务调度器。&lt;/li&gt;
&lt;li&gt;10 个数求平方，同时最多 2 个协程运行，收集所有结果到数组。&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>哈饥米腾讯音乐内容业务线</title><link>https://go.botsarena.tech/docs/interview/dachang/hajimi-tme-content/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/hajimi-tme-content/</guid><description>&lt;h1 id="腾讯音乐内容业务线"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;腾讯音乐内容业务线&lt;/a&gt;
&lt;/h1&gt;


&lt;h2 id="存储与同步"&gt;存储与同步&lt;a class="anchor" href="#%e5%ad%98%e5%82%a8%e4%b8%8e%e5%90%8c%e6%ad%a5"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;数据从 MySQL 同步到 ES 的方法。&lt;/li&gt;
&lt;li&gt;binlog 设计之初的意义。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="缓存与事务"&gt;缓存与事务&lt;a class="anchor" href="#%e7%bc%93%e5%ad%98%e4%b8%8e%e4%ba%8b%e5%8a%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Cache Aside 存在的问题，怎么解决？延迟双删。&lt;/li&gt;
&lt;li&gt;项目中的分布式事务问题，怎么解决？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="go-与-java"&gt;Go 与 Java&lt;a class="anchor" href="#go-%e4%b8%8e-java"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;对比 Go 和 Java 的 Map。&lt;/li&gt;
&lt;li&gt;为什么 Go 需要红黑树？Go 怎么防止哈希攻击？&lt;/li&gt;
&lt;li&gt;对比 Go 和 Java 的 GC。&lt;/li&gt;
&lt;li&gt;混合写屏障是怎么感知到引用的新增和接触的？&lt;/li&gt;
&lt;li&gt;对比 Go 和 Java 的协程/线程。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="mysql"&gt;MySQL&lt;a class="anchor" href="#mysql"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;MySQL 聚簇索引和非聚簇索引，为什么非聚簇叶子节点中存在全部记录？&lt;/li&gt;
&lt;li&gt;B+ 树结构，如果是联合索引 abc，每个非叶子节点的结构什么样？&lt;/li&gt;
&lt;li&gt;Explain 分析 SQL，哪些字段要重点看？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="es"&gt;ES&lt;a class="anchor" href="#es"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;ES 有三个数据节点，某个索引有三个分片，在不同的三个节点上。同一个索引存放的是一些纯数字的 ID，比较简单。如果去 ES 倒叙查 Top100，这个请求发给 ES 后，大概的简单实现原理是什么？基于你的基础知识分析下。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="框架与中间件"&gt;框架与中间件&lt;a class="anchor" href="#%e6%a1%86%e6%9e%b6%e4%b8%8e%e4%b8%ad%e9%97%b4%e4%bb%b6"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Spring 怎么解决循环依赖？&lt;/li&gt;
&lt;li&gt;Kafka 什么情况下会 rebalance？&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="手撕"&gt;手撕&lt;a class="anchor" href="#%e6%89%8b%e6%92%95"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;122。&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>布洛克琴字节一面</title><link>https://go.botsarena.tech/docs/interview/dachang/blocke-bytedance-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/blocke-bytedance-1/</guid><description>&lt;h1 id="字节一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;字节一面&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;时间：2026-2-5 14:00面试、2026-2-5 23:00 通过&lt;/p&gt;

&lt;h2 id="项目"&gt;项目&lt;a class="anchor" href="#%e9%a1%b9%e7%9b%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;


&lt;h3 id="视频feed流系统"&gt;视频feed流系统&lt;a class="anchor" href="#%e8%a7%86%e9%a2%91feed%e6%b5%81%e7%b3%bb%e7%bb%9f"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;jwt认证具体实现方式&lt;/li&gt;
&lt;li&gt;Feed流的稳定分页是如何保证的&lt;/li&gt;
&lt;li&gt;项目中RabbitMQ的作用&lt;/li&gt;
&lt;li&gt;Redis满了怎么办&lt;/li&gt;
&lt;li&gt;热榜是如何实现的&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="分布式账本"&gt;分布式账本&lt;a class="anchor" href="#%e5%88%86%e5%b8%83%e5%bc%8f%e8%b4%a6%e6%9c%ac"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;讲一下Raft共识算法&lt;/li&gt;
&lt;li&gt;项目是如何防止篡改的&lt;/li&gt;
&lt;li&gt;ECDSA加密&lt;/li&gt;
&lt;li&gt;讲一下每笔交易如何签名和验签的流程&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="八股"&gt;八股&lt;a class="anchor" href="#%e5%85%ab%e8%82%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;


&lt;h3 id="go"&gt;Go&lt;a class="anchor" href="#go"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;GMP模型&lt;/li&gt;
&lt;li&gt;协程和线程&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="os"&gt;OS&lt;a class="anchor" href="#os"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;进程、协程、线程&lt;/li&gt;
&lt;li&gt;死锁&lt;/li&gt;
&lt;li&gt;分页中断&lt;/li&gt;
&lt;li&gt;虚拟内存&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="cn"&gt;CN&lt;a class="anchor" href="#cn"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;浏览器输入URL后会发生什么&lt;/li&gt;
&lt;li&gt;HTTPS&lt;/li&gt;
&lt;li&gt;TCP三次握手和四次挥手&lt;/li&gt;
&lt;li&gt;TCP拥塞控制&lt;/li&gt;
&lt;li&gt;DNS&lt;/li&gt;
&lt;li&gt;HTTP1/HTTP2/HTTP3区别&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="mysql"&gt;MySQL&lt;a class="anchor" href="#mysql"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;B+树的优势&lt;/li&gt;
&lt;li&gt;事务的四个隔离级别&lt;/li&gt;
&lt;li&gt;运行Update会发生什么&lt;/li&gt;
&lt;li&gt;MVCC的实现及如何回滚&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="redis"&gt;Redis&lt;a class="anchor" href="#redis"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;内存过期删除方式&lt;/li&gt;
&lt;li&gt;数据持久化AOF和RDB&lt;/li&gt;
&lt;li&gt;Redis和数据库如何保证一致性&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="算法"&gt;算法&lt;a class="anchor" href="#%e7%ae%97%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://leetcode.cn/problems/rotate-list/description/"&gt;61. 旋转链表 - 力扣（LeetCode）&lt;/a&gt;&lt;/p&gt;</description></item><item><title>布洛克琴字节二面</title><link>https://go.botsarena.tech/docs/interview/dachang/blocke-bytedance-2/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/blocke-bytedance-2/</guid><description>&lt;h1 id="字节二面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;字节二面&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;时间：2026-2-11 11:00面试、2026-2-11 23:00 挂&lt;/p&gt;

&lt;h2 id="项目"&gt;项目&lt;a class="anchor" href="#%e9%a1%b9%e7%9b%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;


&lt;h3 id="视频feed流系统"&gt;视频Feed流系统&lt;a class="anchor" href="#%e8%a7%86%e9%a2%91feed%e6%b5%81%e7%b3%bb%e7%bb%9f"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;热榜的实现方式，引导滑动窗口热榜&lt;/li&gt;
&lt;li&gt;Redis宕机了怎么办，再启动呢&lt;/li&gt;
&lt;li&gt;如何保证Redis和数据库的一致性&lt;/li&gt;
&lt;li&gt;如果Redis宕机了，还有大量访问怎么办？&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="开放性"&gt;开放性&lt;a class="anchor" href="#%e5%bc%80%e6%94%be%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;你觉得你这两个项目哪个更耗费你的精力&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="算法"&gt;算法&lt;a class="anchor" href="#%e7%ae%97%e6%b3%95"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;现有学生表（Students）和科目成绩表（Scores）。请编写一个 SQL 查询，统计总分严格大于 300 分的学生人数。要求在处理过程中，先得出每位学生的各科总成绩并按总分从大到小进行排序，最终输出符合上述条件的统计结果。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;三个线程分别打印a、b、c，多线程打印abc五遍&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>整理-字节DataAML一面（3.31）</title><link>https://go.botsarena.tech/docs/interview/dachang/summary-bytedance-data-aml-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/summary-bytedance-data-aml-1/</guid><description>&lt;h1 id="字节-data-aml-一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;字节 Data AML 一面&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;面试时间：3.31&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;根据截图整理，以下为当时记录的面试问题。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="面试问题"&gt;面试问题&lt;a class="anchor" href="#%e9%9d%a2%e8%af%95%e9%97%ae%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;你的 Agent 有统计过 token 的消耗量吗？&lt;/li&gt;
&lt;li&gt;MCP、Skills 概念&lt;/li&gt;
&lt;li&gt;分布式系统 CAP 的概念&lt;/li&gt;
&lt;li&gt;专业&lt;/li&gt;
&lt;li&gt;语言方面&lt;/li&gt;
&lt;li&gt;数据库，为什么选 postgres，postgres 和 MySQL 的区别&lt;/li&gt;
&lt;li&gt;介绍一下 postgres 事务方面 ACID 是怎么保证的&lt;/li&gt;
&lt;li&gt;还有什么方式具备……？（原记录缺失，忘了，没答上来）&lt;/li&gt;
&lt;li&gt;Redis 在学习过程中处在什么阶段&lt;/li&gt;
&lt;li&gt;为什么考虑只用 Redis 做消息队列，为什么不用 Kafka&lt;/li&gt;
&lt;li&gt;Redis 使用中怎么保证消息不漏消费、不会丢失&lt;/li&gt;
&lt;li&gt;Redis 了解热点 key 的方法，一般用什么方式缓解 Redis 的热度压力&lt;/li&gt;
&lt;li&gt;介绍 Redis 主从同步的机制&lt;/li&gt;
&lt;li&gt;手撕考核&lt;/li&gt;
&lt;li&gt;问面试官问题&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>整理-字节一面（TCP与MySQL）</title><link>https://go.botsarena.tech/docs/interview/dachang/summary-bytedance-1-tcp-mysql/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/summary-bytedance-1-tcp-mysql/</guid><description>&lt;h1 id="字节一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;字节一面&lt;/a&gt;
&lt;/h1&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;根据截图整理，以下为当时记录的面试问题。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="面试问题"&gt;面试问题&lt;a class="anchor" href="#%e9%9d%a2%e8%af%95%e9%97%ae%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;TCP 连接三次握手、四次挥手&lt;/li&gt;
&lt;li&gt;为什么挥手比握手多一次？ACK 和 FIN 一次发送不行吗？&lt;/li&gt;
&lt;li&gt;为什么不发送 FIN、等待一个时间间隔就直接关闭？为什么还要等 ACK？&lt;/li&gt;
&lt;li&gt;MySQL 索引结构&lt;/li&gt;
&lt;li&gt;MySQL 数据怎么存的&lt;/li&gt;
&lt;li&gt;一页数据很多，存不下怎么办？&lt;/li&gt;
&lt;li&gt;TCP 的可靠传输怎么知道超时了？&lt;/li&gt;
&lt;li&gt;怎么维护 TCP 的长连接&lt;/li&gt;
&lt;li&gt;B+ 树为什么非叶子节点不存数据&lt;/li&gt;
&lt;li&gt;覆盖索引和索引下推&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>橘子腾讯wxg运营开发日常一面</title><link>https://go.botsarena.tech/docs/interview/dachang/juzi-tencent-wxg-ops-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/juzi-tencent-wxg-ops-1/</guid><description>&lt;h1 id="橘子腾讯-wxg-运营开发日常一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;橘子腾讯 WXG 运营开发日常一面&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;这篇面经主要围绕算法、MySQL 架构设计、索引原理，以及 AI 问答系统的链路分析与优化展开，适合用来做综合场景题复盘。&lt;/p&gt;

&lt;h2 id="面试问题"&gt;面试问题&lt;a class="anchor" href="#%e9%9d%a2%e8%af%95%e9%97%ae%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;能听清楚吗？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;我这边场地不方便，所以不开摄像头啦，不好意思。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;现在开始面试环节，麻烦先简单自我介绍一下。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;最开始搞的竞赛是 ACM 竞赛吗？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;我们是开发岗位，会有一些编程题目，能看到题目吗？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;有三道题，大概 20 分钟左右，每题都要写。&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;备注：下面三题是针对算法题“选出 503 次数前十的 IP”的追问。&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;堆的复杂度是怎么样的？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;假设日志文件特别大，比如 1T，但机器内存只有 10G，你觉得你的思路时间会有问题吗？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;有什么优化思路吗？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;MySQL 有用过吗？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;假设用 MySQL 作为数据库，设计一套亿级别用户的微信红包收发记录功能，你会怎么设计？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;分库分表具体怎么分？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;抛开分库分表，还有其他设计上要注意的吗？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;索引是怎么实现的？有了解过吗？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;现在 AI 聊天机器人应该用得很多吧？你可以讲一下从在聊天框向 AI 提问、敲下回车到看到回答的整个过程经历了哪些步骤吗？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;还有其他步骤吗？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;假设用户觉得 AI 机器人回答太慢，有什么排查和优化思路吗？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;如果是网络慢，有什么优化思路吗？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;假设用户觉得回答不准，有什么排查和优化思路吗？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;在工程实现上，有什么成本小但能提升回答准确率的方法吗？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;你怎么看待 AI 对技术领域的影响？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;我们面试内容主要这些，你有没有什么疑问呢？&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;原作者主页：&lt;a href="https://github.com/orangelab-dev"&gt;orangelab-dev&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>江月腾讯一面</title><link>https://go.botsarena.tech/docs/interview/dachang/jiangyue-tencent-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/jiangyue-tencent-1/</guid><description>&lt;h1 id="腾讯一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;腾讯一面&lt;/a&gt;
&lt;/h1&gt;


&lt;h2 id="手撕"&gt;手撕&lt;a class="anchor" href="#%e6%89%8b%e6%92%95"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;手写 LRU。&lt;/li&gt;
&lt;li&gt;LRU 并发竞争问题。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="网络"&gt;网络&lt;a class="anchor" href="#%e7%bd%91%e7%bb%9c"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;TLS 握手的具体流程。&lt;/li&gt;
&lt;li&gt;TCP 四次挥手，TIME_WAIT 阶段在哪个地方？&lt;/li&gt;
&lt;li&gt;TCP 拥塞控制。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="操作系统"&gt;操作系统&lt;a class="anchor" href="#%e6%93%8d%e4%bd%9c%e7%b3%bb%e7%bb%9f"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;进程线程的区别，什么情况下会导致线程的切换？&lt;/li&gt;
&lt;li&gt;当时没答出来，举了个 GMP 并发编程的例子，后面就问了 GMP。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="go"&gt;Go&lt;a class="anchor" href="#go"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Golang 的内存回收，只答了三色标记和写屏障。&lt;/li&gt;
&lt;li&gt;内存压力大怎么去优化？&lt;/li&gt;
&lt;li&gt;GMP 模型。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="项目"&gt;项目&lt;a class="anchor" href="#%e9%a1%b9%e7%9b%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;项目拷打。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="反问"&gt;反问&lt;a class="anchor" href="#%e5%8f%8d%e9%97%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;</description></item><item><title>白猫快手客户端一面</title><link>https://go.botsarena.tech/docs/interview/dachang/baimao-kuaishou-client-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/baimao-kuaishou-client-1/</guid><description>&lt;h1 id="快手客户端一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;快手客户端一面&lt;/a&gt;
&lt;/h1&gt;


&lt;h2 id="计算机基础"&gt;计算机基础&lt;a class="anchor" href="#%e8%ae%a1%e7%ae%97%e6%9c%ba%e5%9f%ba%e7%a1%80"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;聊一下虚拟内存是什么？&lt;/li&gt;
&lt;li&gt;它是通过什么实现的？&lt;/li&gt;
&lt;li&gt;CPU 和虚拟内存有什么关系？&lt;/li&gt;
&lt;li&gt;CPU 的调度算法有哪些？它们有什么优缺点？适合在什么场景下使用？&lt;/li&gt;
&lt;li&gt;HTTP 和 TCP 分别是在什么层的协议？&lt;/li&gt;
&lt;li&gt;TCP/IP协议里面的IP指的是什么？&lt;/li&gt;
&lt;li&gt;应用层还有哪些协议？&lt;/li&gt;
&lt;li&gt;DNS 是做什么的？&lt;/li&gt;
&lt;li&gt;DNS 的流程是什么？&lt;/li&gt;
&lt;li&gt;TCP 拥塞控制是什么？具体流程是怎么样的？&lt;/li&gt;
&lt;li&gt;平常有用 AI 吗？聊一下。（反问了是哪些方面，面试官说都可，就聊了一下vibe coding）&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="手撕"&gt;手撕&lt;a class="anchor" href="#%e6%89%8b%e6%92%95"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;前序中序遍历构建二叉树，力扣模式&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="反问"&gt;反问&lt;a class="anchor" href="#%e5%8f%8d%e9%97%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;自身不足&lt;/li&gt;
&lt;li&gt;部门业务&lt;/li&gt;
&lt;li&gt;让面试官给一点学习建议&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>离大谱-米哈游-运维-一面</title><link>https://go.botsarena.tech/docs/interview/dachang/issue-76/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/issue-76/</guid><description>&lt;h2 id="自我介绍"&gt;自我介绍&lt;a class="anchor" href="#%e8%87%aa%e6%88%91%e4%bb%8b%e7%bb%8d"&gt;#&lt;/a&gt;&lt;/h2&gt;


&lt;h2 id="项目"&gt;项目&lt;a class="anchor" href="#%e9%a1%b9%e7%9b%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;（IM 项目）&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;设计一个类似飞书、钉钉的已读未读状态，用什么数据结构，链路要怎么设计。&lt;/li&gt;
&lt;li&gt;要说得很细，一直说到数据库怎么写。&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="八股"&gt;八股&lt;a class="anchor" href="#%e5%85%ab%e8%82%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;计算机网络：TCP、UDP、IP、DNS 解析、域名解析全覆盖。&lt;/li&gt;
&lt;li&gt;OS：进程、线程，怎么用命令定位线程的问题，dbs 架构（原文待确认）。&lt;/li&gt;
&lt;li&gt;Linux 怎么查 CPU 飙高问题。&lt;/li&gt;
&lt;li&gt;Go 语言的项目出现了消息堆积的情况，怎么定位；不能猜测，要定位。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="k8s"&gt;K8s&lt;a class="anchor" href="#k8s"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Pod 到 Service 的数据链路。&lt;/li&gt;
&lt;li&gt;三指针是什么，怎么用（原文待确认）。&lt;/li&gt;
&lt;li&gt;一个 Pod 里的容器共享什么 namespace。&lt;/li&gt;
&lt;li&gt;如果 Pod 的内存还有很多但还是 OOM，该怎么定位问题。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;无手撕。&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>程序员羊肉-腾讯暑期一面部分答案（操作系统和数据库）</title><link>https://go.botsarena.tech/docs/interview/dachang/yangrou-tencent-summer-1-answers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/yangrou-tencent-summer-1-answers/</guid><description>&lt;h1 id="程序员羊肉-腾讯暑期一面部分答案操作系统和数据库"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;程序员羊肉-腾讯暑期一面部分答案（操作系统和数据库）&lt;/a&gt;
&lt;/h1&gt;


&lt;h2 id="面试问题"&gt;面试问题&lt;a class="anchor" href="#%e9%9d%a2%e8%af%95%e9%97%ae%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;描述一个线程从创建开始的完整生命周期&lt;/li&gt;
&lt;li&gt;cpu切换线程的整个过程是怎么样的&lt;/li&gt;
&lt;li&gt;切换进程比切换线程多了什么开销&lt;/li&gt;
&lt;li&gt;手撕并发安全的count计数&lt;/li&gt;
&lt;li&gt;读操作需要加锁吗，为什么&lt;/li&gt;
&lt;li&gt;怎么理解工作内存和内存屏障&lt;/li&gt;
&lt;li&gt;说一下 update t set c = c + 1 where id = 10 这个sql执行的过程&lt;/li&gt;
&lt;li&gt;到了innodb的存储引擎层，这个sql是怎么处理的&lt;/li&gt;
&lt;li&gt;能具体说说这个update更新操作是怎样的更新方式吗&lt;/li&gt;
&lt;li&gt;它是怎么最终把数据写到磁盘里的&lt;/li&gt;
&lt;li&gt;你说是异步到磁盘里的，怎么理解这个异步&lt;/li&gt;
&lt;li&gt;了解过undolog和redolog吗&lt;/li&gt;
&lt;li&gt;buffer pool了解过吗&lt;/li&gt;
&lt;li&gt;update这个语句会加什么锁&lt;/li&gt;
&lt;li&gt;数据更新是发生在buffer pool还是在磁盘里的&lt;/li&gt;
&lt;li&gt;你说是发生在buffer pool里再异步刷新到磁盘，它为什么要这样设计呢，为什么要做两阶段的提交&lt;/li&gt;
&lt;li&gt;除了减少IO还有什么别的原因吗？&lt;/li&gt;
&lt;li&gt;redolog有什么好处呢&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="参考答案ai-生成"&gt;参考答案（AI 生成）&lt;a class="anchor" href="#%e5%8f%82%e8%80%83%e7%ad%94%e6%a1%88ai-%e7%94%9f%e6%88%90"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;以下答案由 AI 生成，仅供面试复盘参考。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="1-描述一个线程从创建开始的完整生命周期"&gt;1. 描述一个线程从创建开始的完整生命周期&lt;a class="anchor" href="#1-%e6%8f%8f%e8%bf%b0%e4%b8%80%e4%b8%aa%e7%ba%bf%e7%a8%8b%e4%bb%8e%e5%88%9b%e5%bb%ba%e5%bc%80%e5%a7%8b%e7%9a%84%e5%ae%8c%e6%95%b4%e7%94%9f%e5%91%bd%e5%91%a8%e6%9c%9f"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;线程共有5个状态：新建(init), 就绪(runnable), 运行(running), 阻塞(blocked), 终止(dead)
&lt;img src="https://go.botsarena.tech/pictures/%e7%ba%bf%e7%a8%8b%e7%94%9f%e5%91%bd%e5%91%a8%e6%9c%9f.png" alt="线程生命周期" loading="lazy" decoding="async"/&gt;&lt;/p&gt;

&lt;h3 id="2-cpu切换线程的整个过程是怎么样的"&gt;2. cpu切换线程的整个过程是怎么样的&lt;a class="anchor" href="#2-cpu%e5%88%87%e6%8d%a2%e7%ba%bf%e7%a8%8b%e7%9a%84%e6%95%b4%e4%b8%aa%e8%bf%87%e7%a8%8b%e6%98%af%e6%80%8e%e4%b9%88%e6%a0%b7%e7%9a%84"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;总体流程:用户态-&amp;gt;内核态-&amp;gt;用户态
详细如下&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;cpu提升硬件权限等级，切换内核栈&lt;/li&gt;
&lt;li&gt;cpu硬件将旧线程的SS, RSP, CS, RIP, RFALGS等压入该线程的内核栈中。&lt;/li&gt;
&lt;li&gt;随后cpu跳转到处理中断程序的入口，内核中的汇编代码会将其他通用寄存器也压入内核栈中(这里使用汇编不用c是因为我们不能确定编译器会如何使用寄存器，我们要保证寄存器中的数据完好无损，所以使用汇编直接操作)&lt;/li&gt;
&lt;li&gt;处理完中断或系统调用的逻辑后，如果当前线程需要让出cpu,会通过调度器根据调度公平算法从就绪队列中选出一个线程&lt;/li&gt;
&lt;li&gt;然后检查这两个线程是否属于同一个进程，这决定了是否切换页表和刷新TLB。接着切换新线程的内核栈，然后保存和恢复一些基于线程的硬件状态&lt;/li&gt;
&lt;li&gt;接下来汇编会从内核栈中弹出之前保存的新线程的通用寄存器&lt;/li&gt;
&lt;li&gt;最后内核执行返回指令。cpu自动从内核栈中弹出之前保存的现场(SS, RSP, CS, RIP, RFALGS等)，cpu特权等级恢复为用户态。&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="3-切换进程比切换线程多了什么开销"&gt;3. 切换进程比切换线程多了什么开销&lt;a class="anchor" href="#3-%e5%88%87%e6%8d%a2%e8%bf%9b%e7%a8%8b%e6%af%94%e5%88%87%e6%8d%a2%e7%ba%bf%e7%a8%8b%e5%a4%9a%e4%ba%86%e4%bb%80%e4%b9%88%e5%bc%80%e9%94%80"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;这里问的应该是不同进程的线程和同一进程的线程比切换多了什么开销。
多了切换页表的开销&lt;/p&gt;</description></item><item><title>程序员羊肉小红书一面</title><link>https://go.botsarena.tech/docs/interview/dachang/yangrou-xiaohongshu-summer-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/yangrou-xiaohongshu-summer-1/</guid><description>&lt;h1 id="暑期一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;暑期一面&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;岗位：【27届实习】Product Engineer-产品工程师（AI与全栈方向）-社区工程&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;自我介绍，然后可以重点说你觉得你比较有代表性的一段项目经历。&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;我说的实习经历里的 tab 补全提示词那块的链路设计与重构。&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;【实习】我看这里还讲到用 workers KV 去做了一下 JWT 的鉴权这块我们是怎么迁移的？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;【实习】那 workers KV 它的一致性模型是什么呀？比如说会不会出现一些边界的一些badcase？&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;幸好准备了，是最终一致性。&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;【实习】那有什么解决方式方案吗？&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;我说这里的业务场景能接受最终一致性。但我感觉应该不对。&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;【实习】你们做了一个状态机来管理这个评论的生命周期，一个是这个状态机的状态和转移是什么样子的？然后另外我看我们这里有提到用了虚拟线程，就是采用虚拟线程的这个技术方案选型的原因是什么？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;【实习】看我们这里还就是做了一些游标分页加乐观锁的一个优化。就是一个是在做游标分页和乐观锁之前，我们是怎么做的分页？然后跟之前的比如说一些普通的 offset 分页，游标分页它的优势是什么？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;【项目】RAG混合检索策略怎么做的？召回的效果是如何评估的？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;【项目】我们刚刚有提到做了一些 Chunk 切片的一些优化，那 Chunk 切片粒度它太大和太小，刚刚讲过，有可能有一些问题，就是如果它 chunk 切片粒度太大的话，它可能会造成什么样的问题？太小的话还可能造成什么样的问题？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;【项目】看我们的 agent 这里我们同时用了 react 和 plan-execute-replan 的两种模式，然后是两种应用场景，我们简单介绍一下为什么做这样子的技术选型，以及这两种为什么要这样选，以及为什么要分别用在这两个对应的场景上。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;【项目】比如说你的 RAG 系统里面是有很多相应的一些知识库文档，然后在实际的生产环境里面，我们可能 RAG 系统里的文档可能会有一些频繁的更新，或者说增删减，那如果出现这种情况，就是出现向量索引与原文不一致的这种情况，我们该怎么保证这种问题导致的一些错误呢？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;【项目】展开讲我们的记忆系统是什么样子？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;【项目】那如果我们有一个长期运行的一个agent，用户的对话可能长年累月，比如说需要数月或者一年多的一个累计的一个历史对话，就是对话的轮数很多很多很多，那我们在记忆系统上能做哪些优化？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;我们的经历里面其实大部分是 AI 相关的加后端的一些经历，那你觉得你对于你自己没有前端经验这一个 gap 是怎么看待的？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;刚也提到 vibe coding，就是我们平常就是日常使用的一些 coding 工具是哪些？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;共享屏幕，vibe coding 一个极简版的小红书网页版，用户可以做图文笔记的发布，然后就是不管你的信息展示页面是什么样子，就瀑布流或者怎样，可以在首页的那个信息流里面展示出你发布出来的内容。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;【八股】哈希碰撞会在什么情况下发生呢？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;【八股】哈希碰撞出现之后，我们有什么样的处理方式呢？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;【八股】讲一下 LRU CACHE 它是一种什么样的缓存策略？&lt;/p&gt;</description></item><item><title>程序员羊肉腾讯一面</title><link>https://go.botsarena.tech/docs/interview/dachang/yangrou-tencent-summer-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/yangrou-tencent-summer-1/</guid><description>&lt;h1 id="s3暑期一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;S3暑期一面&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;纯八股拷打，没问实习和项目，全程40min&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;自我介绍&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;描述一个线程从创建开始的完整生命周期&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;你刚刚提到cpu调度，那cpu在切换线程的时候整个过程是怎样的&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;切换进程与切换线程相比，额外的开销是什么&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;从jvm角度讲一下java创建线程的生命周期&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;start创建线程时，jvm怎么对它进行资源分配的，比如堆、栈&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;【手撕】count计数（add和get），用你知道的方式改成线程安全的，可以写多种，不要求能运行&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;写了 synchronized、AtomicInteger、ReentrantLock。&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;我看你只给写操作加了锁，读操作要加锁吗？为什么？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;volatile了解吗？解决了什么问题？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;你怎么理解工作内存和内存屏障&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;你觉得你写的这个代码存在可见性和内存屏障的问题吗？为什么？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;如果有线程调用getCount，它是从工作内存读还是主内存读&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;说一下 update set c = c + 1 where id = 10 这个sql执行的过程&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;到了innodb的存储引擎层，这个sql是怎么处理的&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;能具体说说这个update更新操作是怎样的更新方式吗&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;它是怎么最终把数据写到磁盘里的&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;你说是异步到磁盘里的，怎么理解这个异步&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;了解过undolog和redolog吗&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;buffer pool了解过吗&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;update这个语句会加什么锁&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;那你把这些问题串起来，按顺序，先做什么再做什么，来讲下这个update sql语句的过程&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;数据更新是发生在buffer pool还是在磁盘里的&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;你说是发生在buffer pool里再异步刷新到磁盘，它为什么要这样设计呢，为什么要做两阶段的提交&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;除了减少IO还有什么别的原因吗？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;redolog有什么好处呢&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;讲一下Function call、mcp、skill、rules、vibe coding、spec coding、harness engineering的概念以及解决了什么问题&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;举一个具体的case来说明Function call 和 mcp的差异&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;手机里有个chatbot，我跟他说帮我点一份外卖，那么这个时候只有Function call是怎样的？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;你说Function call只能调用本地的是什么意思？怎么理解的？假设我现在有美团和饿了么的api，也能拿到&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;MCP里包含tool吗&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;你现在也用ai coding吧，说下这样的过程，会涉及到哪些AI Agent的技术吗&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ReAct 和 Plan-Execute-Replan的区别&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="反问"&gt;反问&lt;a class="anchor" href="#%e5%8f%8d%e9%97%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;学习建议&lt;/p&gt;</description></item><item><title>老酸奶网易雷火web后端开发一面</title><link>https://go.botsarena.tech/docs/interview/dachang/suannai-netease-leihuo-web-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/suannai-netease-leihuo-web-1/</guid><description>&lt;h1 id="老酸奶-网易雷火-web后端开发-一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;老酸奶 网易雷火 web后端开发 一面&lt;/a&gt;
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;讲一下 GMP&lt;/li&gt;
&lt;li&gt;如果阻塞了会怎么样&lt;/li&gt;
&lt;li&gt;Gin 比起传统库的好处，然后讲一下 Gin 架构的请求处理流程&lt;/li&gt;
&lt;li&gt;HTTP 的报文是怎么组成的&lt;/li&gt;
&lt;li&gt;Feed 流的热榜是怎么做的？&lt;/li&gt;
&lt;li&gt;这个热榜时间复杂度是多少，有没有方法可以优化一下这个热榜功能？&lt;/li&gt;
&lt;li&gt;讲一下为什么你这个 Feed 流是先改库再进入消息队列的？&lt;/li&gt;
&lt;li&gt;别的项目和实习相关的&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="参考答案ai-生成"&gt;参考答案（AI 生成）&lt;a class="anchor" href="#%e5%8f%82%e8%80%83%e7%ad%94%e6%a1%88ai-%e7%94%9f%e6%88%90"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;以下答案由 AI 生成，仅供面试复盘参考。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="1-讲一下-gmp"&gt;1. 讲一下 GMP&lt;a class="anchor" href="#1-%e8%ae%b2%e4%b8%80%e4%b8%8b-gmp"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;答：GMP 是 Go 调度器的核心模型。G（Goroutine）代表一个 goroutine，包含栈、指令指针等上下文信息；M（Machine）代表操作系统线程，是实际执行单元；P（Processor）代表逻辑处理器，持有本地运行队列，是 G 和 M 之间的桥梁。P 的数量由 &lt;code&gt;GOMAXPROCS&lt;/code&gt; 决定，默认等于 CPU 核数。调度流程：每个 P 有一个本地 G 队列，M 绑定 P 后从本地队列取 G 执行；本地队列空时从全局队列或其他 P 的队列偷取（work stealing）。这种两级队列 + 偷取机制减少了全局锁竞争，提升了并发效率。&lt;/p&gt;

&lt;h3 id="2-如果阻塞了会怎么样"&gt;2. 如果阻塞了会怎么样&lt;a class="anchor" href="#2-%e5%a6%82%e6%9e%9c%e9%98%bb%e5%a1%9e%e4%ba%86%e4%bc%9a%e6%80%8e%e4%b9%88%e6%a0%b7"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;答：Goroutine 阻塞分两种情况：用户态阻塞（如 channel、互斥锁）和系统调用阻塞。用户态阻塞时，Go 调度器会将当前 G 挂起放到等待队列，M 继续绑定 P 执行其他 G，不会浪费线程资源。系统调用阻塞时，M 会和 P 解绑，P 被其他 M 接管继续调度，阻塞的 M 等待系统调用返回后尝试重新获取 P。网络 IO 阻塞则通过 netpoller 实现异步，goroutine 在等待网络数据时被挂起，数据就绪后由 netpoller 唤醒，整个过程不需要额外的线程阻塞。&lt;/p&gt;</description></item><item><title>老酸奶网易雷火web后端开发二面</title><link>https://go.botsarena.tech/docs/interview/dachang/suannai-netease-leihuo-web-2/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/suannai-netease-leihuo-web-2/</guid><description>&lt;h1 id="老酸奶-网易雷火-web后端开发-二面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;老酸奶 网易雷火 web后端开发 二面&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;二面，30min，无手撕。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;讲一下 Go 的协程&lt;/li&gt;
&lt;li&gt;了不了解 TCP 的头部报文&lt;/li&gt;
&lt;li&gt;你的 Feed 流项目是推拉结合还是只是拉的&lt;/li&gt;
&lt;li&gt;现在让你设计一个游戏内对话功能，你把技术选型和设计思路讲讲&lt;/li&gt;
&lt;li&gt;你平时玩网易雷火的什么游戏？段位打到哪了？&lt;/li&gt;
&lt;li&gt;你有没有参加过抽奖活动，让你设计的话你把技术选型和设计思路讲讲&lt;/li&gt;
&lt;li&gt;别的项目和实习相关的&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="反问"&gt;反问&lt;a class="anchor" href="#%e5%8f%8d%e9%97%ae"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;业务技术栈匹配度&lt;/li&gt;
&lt;li&gt;多长时间出结果？回答：需要等待横向的意思&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="结果"&gt;结果&lt;a class="anchor" href="#%e7%bb%93%e6%9e%9c"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;横向一周挂。&lt;/p&gt;

&lt;h2 id="参考答案ai-生成"&gt;参考答案（AI 生成）&lt;a class="anchor" href="#%e5%8f%82%e8%80%83%e7%ad%94%e6%a1%88ai-%e7%94%9f%e6%88%90"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;以下答案由 AI 生成，仅供面试复盘参考。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="1-讲一下-go-的协程"&gt;1. 讲一下 Go 的协程&lt;a class="anchor" href="#1-%e8%ae%b2%e4%b8%80%e4%b8%8b-go-%e7%9a%84%e5%8d%8f%e7%a8%8b"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;答：Go 的协程即 goroutine，是 Go 运行时管理的用户态轻量线程。核心特点：启动成本极低（初始栈仅 2KB，按需增长），通过 GMP 调度模型实现高效并发，阻塞时自动切换不浪费线程。与操作系统线程相比，goroutine 的创建、销毁和上下文切换都在用户态完成，可以轻松创建数十万个。goroutine 之间通过 channel 进行通信，遵循&amp;quot;CSP 并发模型&amp;quot;和&amp;quot;不要通过共享内存来通信，而要通过通信来共享内存&amp;quot;的设计哲学。实际使用中配合 &lt;code&gt;sync.WaitGroup&lt;/code&gt;、&lt;code&gt;context&lt;/code&gt; 等控制生命周期和超时取消。&lt;/p&gt;

&lt;h3 id="2-了不了解-tcp-的头部报文"&gt;2. 了不了解 TCP 的头部报文&lt;a class="anchor" href="#2-%e4%ba%86%e4%b8%8d%e4%ba%86%e8%a7%a3-tcp-%e7%9a%84%e5%a4%b4%e9%83%a8%e6%8a%a5%e6%96%87"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;答：TCP 头部固定 20 字节，可选部分最长 40 字节。主要字段：源端口和目标端口（各 2 字节）、序列号 seq（4 字节，标识数据流中的字节位置）、确认号 ack（4 字节，期望收到的下一个字节序号）、数据偏移（4 位，头部长度）、标志位（URG/ACK/PSH/RST/SYN/FIN，各 1 位）、窗口大小（2 字节，用于流量控制）、校验和（2 字节）、紧急指针（2 字节）。可选字段包括 MSS、时间戳、窗口缩放等。三次握手时 SYN 标志位置 1，四次挥手时 FIN 标志位置 1，数据传输时 ACK 始终置 1。&lt;/p&gt;</description></item><item><title>长晴百度一面</title><link>https://go.botsarena.tech/docs/interview/dachang/changqing-baidu-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/changqing-baidu-1/</guid><description>&lt;h1 id="长晴百度一面"&gt;
 &lt;a class="page-home-link" href="https://go.botsarena.tech/"&gt;长晴百度一面&lt;/a&gt;
&lt;/h1&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;根据口述整理，补充了面试中适合展开的回答口径。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="面试问题"&gt;面试问题&lt;a class="anchor" href="#%e9%9d%a2%e8%af%95%e9%97%ae%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;


&lt;h2 id="go"&gt;Go&lt;a class="anchor" href="#go"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;介绍一下 GMP 是什么。&lt;/li&gt;
&lt;li&gt;channel 的作用以及注意事项。&lt;/li&gt;
&lt;li&gt;map 并发安全性，以及安全方案。&lt;/li&gt;
&lt;li&gt;slice 并发安全性。&lt;/li&gt;
&lt;li&gt;进程、线程、协程的区别。&lt;/li&gt;
&lt;li&gt;下面代码结果是什么？&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;func&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;main&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	&lt;span style="color:#a6e22e"&gt;s&lt;/span&gt; &lt;span style="color:#f92672"&gt;:=&lt;/span&gt; make([]&lt;span style="color:#66d9ef"&gt;int&lt;/span&gt;, &lt;span style="color:#ae81ff"&gt;3&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	&lt;span style="color:#a6e22e"&gt;s&lt;/span&gt; = append(&lt;span style="color:#a6e22e"&gt;s&lt;/span&gt;, &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, &lt;span style="color:#ae81ff"&gt;2&lt;/span&gt;, &lt;span style="color:#ae81ff"&gt;3&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;	&lt;span style="color:#a6e22e"&gt;fmt&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Print&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;s&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start="7"&gt;
&lt;li&gt;使用两个协程交替打印 1-100。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="redis"&gt;Redis&lt;a class="anchor" href="#redis"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Redis 常用数据结构。&lt;/li&gt;
&lt;li&gt;排行榜应该用哪个数据结构。&lt;/li&gt;
&lt;li&gt;如果 ZSet 做排行榜时要获取某个分数范围内的用户，应该使用哪个命令。&lt;/li&gt;
&lt;li&gt;分布式锁。&lt;/li&gt;
&lt;li&gt;Redis 里面的自增命令是哪个。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="网络"&gt;网络&lt;a class="anchor" href="#%e7%bd%91%e7%bb%9c"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;介绍一下 400、499 状态码。&lt;/li&gt;
&lt;li&gt;HTTPS 和 HTTP 的区别。&lt;/li&gt;
&lt;li&gt;HTTPS 的 TLS 加密是对称加密还是非对称加密。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="rabbitmq"&gt;RabbitMQ&lt;a class="anchor" href="#rabbitmq"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;RabbitMQ 如何保证消息的顺序性。&lt;/li&gt;
&lt;li&gt;RabbitMQ 如何保证消息消费的幂等性。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="mysql"&gt;MySQL&lt;a class="anchor" href="#mysql"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;SQL 题题干待补充。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="参考答案ai-生成"&gt;参考答案（AI 生成）&lt;a class="anchor" href="#%e5%8f%82%e8%80%83%e7%ad%94%e6%a1%88ai-%e7%94%9f%e6%88%90"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;blockquote class='book-hint '&gt;
&lt;p&gt;以下答案由 AI 生成，仅供面试复盘参考。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="1-介绍一下-gmp-是什么"&gt;1. 介绍一下 GMP 是什么。&lt;a class="anchor" href="#1-%e4%bb%8b%e7%bb%8d%e4%b8%80%e4%b8%8b-gmp-%e6%98%af%e4%bb%80%e4%b9%88"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;答：GMP 是 Go runtime 的调度模型。G 代表 goroutine，M 代表操作系统线程，P 代表调度器处理器；M 需要绑定 P 才能执行 G。P 维护本地运行队列，调度器也有全局队列，空闲 P 会通过 work stealing 从其他 P 的队列里偷取 G。遇到网络 I/O 时，G 通常挂到 netpoll；遇到阻塞系统调用时，P 会转交给其他 M，让可运行的 G 继续被调度。&lt;/p&gt;</description></item><item><title>降噪 字节中国交易与广告 一面</title><link>https://go.botsarena.tech/docs/interview/dachang/issue-88/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/issue-88/</guid><description>&lt;p&gt;GoClub_Feed项目面经.md&lt;/p&gt;

&lt;h2 id="项目与系统设计"&gt;项目与系统设计&lt;a class="anchor" href="#%e9%a1%b9%e7%9b%ae%e4%b8%8e%e7%b3%bb%e7%bb%9f%e8%ae%be%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;


&lt;h3 id="自我介绍与多级缓存"&gt;自我介绍与多级缓存&lt;a class="anchor" href="#%e8%87%aa%e6%88%91%e4%bb%8b%e7%bb%8d%e4%b8%8e%e5%a4%9a%e7%ba%a7%e7%bc%93%e5%ad%98"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;自我介绍（项目：Feed）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;多级缓存如何实现？完整路径讲一下。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;本地缓存大小是多少？根据什么设置？怎么进行数据更新或淘汰？&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="推荐排序与-feed-流"&gt;推荐、排序与 Feed 流&lt;a class="anchor" href="#%e6%8e%a8%e8%8d%90%e6%8e%92%e5%ba%8f%e4%b8%8e-feed-%e6%b5%81"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol start="4"&gt;
&lt;li&gt;
&lt;p&gt;你是根据什么推送视频的？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;你是如何实现热度排序的（ZSet）？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;讲讲 ZSet 底层的数据结构。跳表有什么好处？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;讲一下推拉结合。你的 Inbox 和 Outbox 如何实现？大 V 如何判定？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;如果大 V 变成普通用户，或者普通用户变成大 V，应该怎么处理？之前的视频怎么处理？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;用户很久没有登录，回归后的 Inbox 是怎样的？Inbox 中的记录如何处理？Inbox 可以一直增长吗？&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="rediskafka-与分页"&gt;Redis、Kafka 与分页&lt;a class="anchor" href="#rediskafka-%e4%b8%8e%e5%88%86%e9%a1%b5"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol start="10"&gt;
&lt;li&gt;
&lt;p&gt;点赞、收藏先写入 Redis，再通过 Kafka 异步落库。如果 Kafka 宕机了怎么办？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;为什么使用游标分页？使用时间戳可能有什么问题？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Kafka 消费时如何保证幂等？你是怎么做的？为什么这么做？&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;其余问题记不起来了。&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="算法题"&gt;算法题&lt;a class="anchor" href="#%e7%ae%97%e6%b3%95%e9%a2%98"&gt;#&lt;/a&gt;&lt;/h2&gt;

&lt;ol start="13"&gt;
&lt;li&gt;反转单链表。&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>降噪 字节中国交易与广告 二面</title><link>https://go.botsarena.tech/docs/interview/dachang/issue-90/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://go.botsarena.tech/docs/interview/dachang/issue-90/</guid><description>&lt;h2 id="go-基础"&gt;Go 基础&lt;a class="anchor" href="#go-%e5%9f%ba%e7%a1%80"&gt;#&lt;/a&gt;&lt;/h2&gt;


&lt;h3 id="gmpgc-与内存调优"&gt;GMP、GC 与内存调优&lt;a class="anchor" href="#gmpgc-%e4%b8%8e%e5%86%85%e5%ad%98%e8%b0%83%e4%bc%98"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;讲一下 Go 的 GMP。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;讲一下 Go 的 GC。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Go 的内存调优手段你了解吗？&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id="项目与系统设计"&gt;项目与系统设计&lt;a class="anchor" href="#%e9%a1%b9%e7%9b%ae%e4%b8%8e%e7%b3%bb%e7%bb%9f%e8%ae%be%e8%ae%a1"&gt;#&lt;/a&gt;&lt;/h2&gt;


&lt;h3 id="feed-流与缓存优化"&gt;Feed 流与缓存优化&lt;a class="anchor" href="#feed-%e6%b5%81%e4%b8%8e%e7%bc%93%e5%ad%98%e4%bc%98%e5%8c%96"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol start="4"&gt;
&lt;li&gt;
&lt;p&gt;完整讲一下你的 Feed 流架构。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;为什么要使用 Singleflight？Singleflight 只在进程内有效，真实环境中还有什么手段优化？&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="电商与数据一致性"&gt;电商与数据一致性&lt;a class="anchor" href="#%e7%94%b5%e5%95%86%e4%b8%8e%e6%95%b0%e6%8d%ae%e4%b8%80%e8%87%b4%e6%80%a7"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol start="6"&gt;
&lt;li&gt;
&lt;p&gt;电商系统优惠券防重复、防超卖怎么实现？整体架构讲一下。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Outbox 事务的数据库字段是怎么设计的？为什么这么设计？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;你的点赞先写 Redis，再异步落库，那么怎么保证一致性？你关于点赞的数据库字段怎么设计？为什么这么设计？&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id="redis-与数据库优化"&gt;Redis 与数据库优化&lt;a class="anchor" href="#redis-%e4%b8%8e%e6%95%b0%e6%8d%ae%e5%ba%93%e4%bc%98%e5%8c%96"&gt;#&lt;/a&gt;&lt;/h3&gt;

&lt;ol start="9"&gt;
&lt;li&gt;
&lt;p&gt;Redis 分布式锁有了解吗？用什么数据结构？你的 Key 和 Value 会使用什么填入？业务时间超过 TTL 怎么办？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;什么是 N+1 查询？你是怎么处理的？&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item></channel></rss>