killerDK level
获赞
4
粉丝
4
关注
4
看过 TA
104
北京科技大学
2027
golang
IP属地:北京
暂未填写个人简介
私信
关注
## 1.自我介绍## 2.实习和项目经历1.项目目的是什么?2.项目双阶段流程是怎么做的?为什么3.如果要实现用户级别隔离的长期记忆该怎么做?>我答得是入库,抽取知识图谱三元组,拼接上下文4.k8s了解的多吗5.平时写代码都怎么进行测试?都有哪些测试方法?重构一个系统如何保证用户的感知不变?> 测试了解的不多,实习的工作有专门的测试,答了下:发灰度,然后回归测试,前后端联调用的apifox之前写好的一些请求集,还有请求重放## 3.平时ai写代码怎么样保证正确性?> spec驱动开发,然后还会让ai写测试1.追问spec怎么写的:> 我用的openspec工具,我认为让aispec最重要的是和ai交流逐步去完善spec的过程,我会在提示词里面专门加上让ai有不确定的东西和我讨论的内容,一般cursor会变成选择题的plan模式,claudecli之类的会停下来和确认2.ai写好的东西怎么验证:> 首先让ai自己写测试验证,给ai一些fewshot构造测试集,先把最基本的测试集合过了,然后我会让ai构建mvp,先保证能跑,然后再在mvp上逐步实现spec里面提到的各种todo,我认为能跑是最基本的要求,如果是前后端系统,跑起来后我会自己手动试一下相关的功能,检查下数据库什么的> (现在想下可能再开始就建立一套验证标准就比较好,比如一些量化指标,让ai去达到)## 4.go相关1.go的goroutine讲一下:> 触发我的八股背诵连招了,协程、gmp、调度、chan通信都背了下,面试官打断说ok我知道你会了2.协程为什么比线程轻量?> 协程是用户态的,切换不需要在内核态和用户态转换,节省了很多资源> (感觉答少了)3.如果让你实现一个协程(不用在意语言,谈思路),你会怎么做?> 1.我认为既然协程是用户态轻量级的线程,最重要的就是调度器了,因为用户自主决定什么时候切换才是真正的自主> 2.其次是清理机制,用完的要及时清理占用,这样可以保证并发性> 3.资源分配系统,每个携程都需要从进程中拿到自己资源,所以资源的高效分配也需要> 这里记不太清怎么答得了,我感觉对协程的理解大部分来自于go的goroutine,我回答的也都是go里面的一些机制,面试官让我自己实现,我大部分都是go的有什么,我答什么吧,也不能全部答成go的,很拧巴)面试官提示:如果有个网络调用进来了要怎么做?> 4.回答中断,要系统级别挂起等待中断,也可以用多路复用机制,比如维护多个socket链接,谁好了通知调度器追问go的io多路复用怎么实现的的知道吗?> 5.我回答我不太了解具体的,我只知道go维护了一个interface,把mac、linux(epoll),和windows的多路复用相关的功能都实现了那个interface,用那个interface来多路复用机制。底层的机制我不清楚,面试官说已经很好了4.用过哪些web框架?你认为web框架和普通的请求处理最大的区别是什么?> 1.我用过gin和python的一些框架,我认为首先web提供了更高性能的路由,相比普通的请求处理,性能更高,其次就是强大的中间件机制追问都用过哪些中间件?> 2.比如鉴权,jwt中间件,限流熔断的中间件,链路追踪中间件追问redis和mysql中间件用过吗?> 3.我回答我写的一般都是微服务框架,web框架一般只做路由,和rpc调用,和数据库接触的部分一般是rpc来实现的(好像redis也是中间件,这里应该说错了)## 5.用过mysql说说索引吧> 回答的聚簇索引和非聚簇索引区别,怎么样建立索引,索引下推,索引失效,索引回表,所以底层b+树,b+树和b树区别## 6.手撕[LCR 059. 数据流中的第 K 大元素](************************************)我忘了python的堆咋定义了哈哈哈,ez题没撕出来,面试官和我都笑了,问了下思路结束了,他说和那边讨论下,如果加面的话考你aicoding## 7. 七点半面试完大概九点半收到挂的邮件
0 点赞 评论 收藏
分享
2025-12-16 15:59
已编辑
北京科技大学 golang
大概5天后约的二面## 高并发性能相关q:如果有一个抢票的场景,会采取什么方案保证高并发时候的性能?a:首先考虑扩容,然后采用负载均恒来减少路由层面的压力,比如对ip地址做个哈希q:怎么保证相对公平性,比如保证先来后到,但是也不是绝对公平a:对请求排队来保证公平性,同时也能形成限流结果,也可以通过一些抢占机制,让公平性下降q:如果造成了超卖问题,该如何发现?如何解决a:发现:超卖问题可能是数据库或者部分流程down掉导致的,也就可以从这部分入手,如果发现了部分服务down掉,就考虑造成了超卖问题,还有可能是重复的请求,没有正确获取锁,解决方法就是组织重复请求。解决:如果发现了超卖问题,暂停对数据的消费,保存在请求队列中,运行检查机制后,再重新评估这个数据是否能继续消费q:提到了队列,你在选择相关技术的时候,会考虑哪些方面?a:考虑吞吐量,是否可以无缝扩容,响应速度快q:如果要监控数据库的性能,该看哪些指标?(没回答上来之后提示了,数据库也是一台计算机)a:监控磁盘、内存、cpu的占用,监控连接数是否到达瓶颈## 总结还有一些问题是在记不清楚了,几乎全部是诸如此类的业务相关的问题,我不会也不是很了解,面试官每次听完我的答案都给了半肯定的答案:“这样也行”、“这个也可以”,所以应该是没有答到点子上,我需要加强相关的知识点特别是消息队列和redis的理解了,面试很快,大概30分钟不到就结束了,其中面试官会不厌其烦地重复和解释问题给我思考时间。
0 点赞 评论 收藏
分享
2025-12-12 21:26
北京科技大学 golang
## redis### 都用过哪些指令?具体一些我的项目中redis除了分布式锁的使用,就剩下一个验证码的存储了,所以我就说了加key、设置key过期时间的### 分布式锁的流程问:拿不到锁的业务怎么办?> 如果别的业务拿不到锁就会自旋or进入队列等待和超时。问:这样的话,会导致并发性能降低,有什么解决方法?> 我不会,瞎说的:用乐观锁和版本控制降低锁的颗粒度。这里同学告诉我setnx就是乐观锁TAT问:redis怎么实现乐观锁?> 依旧不会,于是让我讲了mysql的乐观锁## 项目拷打了很久的项目,甚至让我投屏演示项目,我的docker有个一直卡着没启动好,耽误了10分钟,而且我投屏投错了,让面试官看着空白划鼠标了5分钟,汗流浃背了,好在最后启动成功了,挑了一个接口让我详细讲下如何写的。### 服务发现&负载均衡用的consul和nacos实现的,我自己写了个轮训的算法实现负载均衡,问我还有什么算法,我答了加权,保持最小连接数,urlhash,iphash,最短连接时间### 链路追踪怎么实现的?怎么找到性能瓶颈怎么解决?用的Jaeger,当时死活想不起来叫什么。找到瓶颈后,如果是路由方面的瓶颈,尝试考虑扩容,如果是数据的瓶颈,尝试redis存储热点数据### 测试和保证系统稳定性怎么做的?用的接口管理平台,接口管理平台自带一个压测### grpc+protobuf相比传统的http+json优势在哪?grpc可扩展性很强,再多台服务器部署扩容几乎是无痛的,只要做好服务发现和负载均衡。而protobuf相比json传输效率和压缩性能更强### jwt相比cookie+session优势在哪?我只说出来了jwt的优势,没说出cookie+session的劣势。### 讲一下gmp?协程和线程的区别gmp我讲完后,觉得我只是解释了3个词语分别是什么,没有讲到精髓。我又补充了窃取g,以及p队列初始化和流程,下来查看笔记觉得少答了抢占式调度吧我提到协程锁用户级轻量的线程,切换性能更高,并发性更强,并且由用户调度,对内核无感## 实习经历问我了都做了什么?在实习的不同阶段都有什么不同收获,我没理解面试官的意思,把项目讲到比较细节的部分,他打断我说主要说阶段性的,以周或者月为单位。我就聊了下。## 总结依旧没有按照顺序写,想到什么写什么。拷打了很多项目,我发现我很多时候,用到了xx技术,只是单纯看的教程和找的代码用到了,并不清楚为什么要用,以及相比于同类技术的优缺点在哪,这也是我接下来一个思考的方向,面试官给到了一些压力,也让我认识到了我的不足,八股方面特别是redis的,感谢面试官。
查看12道真题和解析
0 点赞 评论 收藏
分享
2025-12-10 16:23
北京科技大学 golang
## mysql:这部分面试官说我答的不错,但是回看来说也漏东西了### 事务和 redo log:我回答了acid和分别怎么实现的,提到了undo log和redo log,顺便让我说下redo log### 什么时候建立索引?什么时候索引失效?- 建立索引一般是在select ... where a and b 时,对where后面的建立索引,讲了下联合索引和最左匹配原则,区分度面试官提醒了下,答出来了distinct(count(\*))/count(\*)越大越好,比如性别就不适合索引- 索引失效讲到了不符合最左匹配原则、where中的 or、like 模糊查询时候没有前缀、函数,表达式和类型转换没答出来## redis### 雪崩现象:答了下为什么出现,以及设置随机到期时间### 都用过什么数据结构?zset 有什么坑?把常见的数据结构答了下,zset不会,我都没用过,听同学是考feed流###  分布式锁?只回答了red lock,redis本身的setNx忘记了,面完查了下笔记发现少回答了很多东西## Golang 相关### GMP模型回答的一般,大致讲了下怎么调度的,以及负载均衡### goroutine 内存逃逸讲的如果有等待一个ch的信息但是一直得不到就会逃逸,逃逸到堆内存之后 gc 就不好清理了### channel有什么坑吗?没回答好,现在想想可能要把及时关闭和关闭已关闭会panic和写入已关闭panic回答## 算法给一个nums,写出全排列,dfs+回溯,很简单## 项目看我用了grpc和nacos,说技术栈很匹配,问了服务发现怎么做的,我直接用的nacos,也没啥细节的,负载均衡说了下## python和爬虫面试的组有爬咨询的需求,所以问了很多python和爬虫的问题,我本来就不会+会的也忘差不多干净了,回答的很烂,比如python的携程、python调度、js解析,我讲了下我写过的一个爬虫怎么做二重认证伪造的,基本上就是f12之后对着一个个重定向跳,拿着url里面的信息## 反问和总结面试官说他们组每个人都有能力完成爬虫和web开发的整体流程,爬虫我不会啊,我投简历时候以为爬虫是一小部分,听说要做分布式爬虫,感觉我爬虫会得不多,python也答得不好,应该没希望了。不过**面试官人超级好**,我不会的或者遗漏有的还会提醒我,一点没有压力我,这是准备好了简历的第一次面试,结果来说一般,个人感觉符合预期,辛苦面试官这个面经没有完全按照提问顺序写,想到什么写什么。
查看12道真题和解析
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务