快手主站测开一面

快手主站一面(已挂)
1.滴滴代码DIFF和PRD角度分别都是怎么考虑的
代码DIFF:主要分为新代码和迭代代码,新代码我会关注首先是数据,写缓存或者落库的数据,数据从哪里来的,经过了怎么样的加工,写到哪里去。其次是业务逻辑,和我认知的逻辑是否有偏差。然后是针对循环判断中特殊的分支去考虑。老代码,主要关注DIFF改了之前的什么数据,改了会对历史逻辑有影响吗,然后才去关注新逻辑。
PRD:可以举例堵车卡
2.自动化全流程介绍一下
就是司机端那套
3.自动化关注什么校验点
钱和文案,一口价会关注全流程的钱是否是一样的
4.订单状态机的状态流转怎么测
状态机就是维护了不同状态,通过事件驱动状态改变的一个黑盒子。
对于我们这个业务状态机就是双向链表,他只能顺序流转或者倒退,不能跳跃某一阶段。
5.了解过订单结算后发奖失败的异步补偿怎么做的吗
1. 任务创建与持久化:
  - 订单结算成功后,立即创建一个奖励任务并将其持久化到专门的数据库表(reward_tasks)中,状态为待处理。
  - 通常通过消息队列(如发件箱模式)或直接调用服务来触发任务创建。
2. 异步重试机制:
  - 一个独立的后台调度器会定期扫描 reward_tasks 表,查找失败或待处理的任务。
  - 对这些任务进行异步重试发奖,并记录重试次数。
  - 重试间隔采用指数退避策略(逐渐拉长间隔),并设置最大重试次数。
3. 确保幂等性:
  - 发奖接口必须设计为幂等的,即多次调用同一发奖操作(带相同业务ID)只会成功发放一次奖励,防止重复发放。
4. 监控与告警:
  - 实时监控奖励任务的状态(成功、失败、永久失败等)。
  - 对持续失败或达到永久失败阈值的任务进行告警,以便及时发现问题。
5. 人工干预:
  - 对于达到最大重试次数仍未成功的永久失败任务,提供管理后台或工具,允许运营人员进行人工查询、分析和手动重试/处理。
6.测开周期比怎么提升的
自动化mock
7.Trace实现原理
核心概念
Trace :一个完整请求链路
可以通过雪花算法生成,解决时间回拨,可以记录一个发生过的时间,如果之后的时间比这个时间要小,就重新生成一个。
Span :一次调用过程(需要有开始时间和结束时间)
SpanContext :Trace 的全局上下文信息, 如里面有traceId
1. 请求入口: 当一个请求进入系统时,入口服务(如网关)会生成一个全新的 Trace ID 和一个根 Span ID,并创建一个根 Span。这个 SpanContext(包含 Trace ID 和根 Span ID)被标记为采样(如果配置了采样)。
2. 上下文传播:
  - 当入口服务调用下游服务A时,它会将当前的 SpanContext(包含 Trace ID 和当前 Span 的 Span ID 作为 Parent Span ID)注入到调用服务A的请求头中。
  - 服务A接收到请求后,从请求头中提取 SpanContext。
  - 服务A使用提取到的 Trace ID 和 Parent Span ID 创建一个新的子 Span。
3. 持续传播: 这个过程在整个请求链路上重复。每个服务在调用下一个服务之前,都会将当前 Span 的 SpanContext 注入到出站请求中。
4. Span 完成与上报: 当一个 Span 完成其操作后(例如,RPC 调用返回),会记录其结束时间,并将其所有信息(Trace ID, Span ID, Parent Span ID, start_time, end_time, tags, logs 等)上报到追踪后端。
5. 追踪后端处理: 追踪后端接收到所有 Span 数据后,会根据 Trace ID 和 Parent Span ID 将它们关联起来,重建出完整的 Trace 链路图,并提供可视化界面供分析。
8.trace在header里面,rpc没有header的概念,怎么传过去的
尽管 RPC 没有 HTTP 的“header”概念,但现代 RPC 框架都提供了与业务数据分离的上下文元数据传输机制(如 gRPC 的 Metadata、Dubbo 的 Attachment)。配合拦截器(Interceptors)或过滤器(Filters),分布式追踪库(如 OpenTelemetry、OpenTracing)能够透明地在这些元数据中注入和提取 SpanContext,从而实现 Trace 信息的跨服务传播,而无需业务代码感知。
9.定时任务trace能扫到吗,怎么做的了解过吗
实际上就是没有从网关层面的一个入口了,通过字节码注入一个入口,或者AOP
10.快手业务
11.权限DIFF工具怎么做的
12.设计模式
13.超卖解决方案
14.AI自己主动探索过啥(只了解过RAG和MCP)
15.代码题:从测试角度分析这段代码有什么问题 1.安全性 2.空指针 3.double精度 4.业务逻辑
要求使用设计模式重构这段代码,解决上述问题。
反问:
1.我们这个业务主要是负责快手,你可以理解为除了快手,还有像A站kim以及你们那边估计也在用我们这边的能力。我们这边涉及的能力就是有账号,地理位置、推送短信,就是一些中台的。然后你像key count k switch也是我们负责,还有热更新,这些东西业务上的是这些,然后还有一些专项建设的。我们这边专项机设的可能就涉及到trace相关的应用,还有大模型相关的应用。是这样的。
2.建议的话其实你实习经验已经我觉得已经够了,还是多多探索一下前沿的东西。就是现在感觉互联网公司都都挺那个的,都挺专注发展AI这个东西,可以自己多动手实践一下。然后还有就是写代码,写代码得长写,不然会经常忘掉。
全部评论
二面偏向于实习,写了个发红包
点赞 回复 分享
发布于 昨天 21:57 天津

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务