去哪儿全栈一面:机票系统设计与订单代码审查
- 轮次
- 一面
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- 能否介绍自己的经历,并选择一个熟悉的项目展开?
- 项目怎样设计,遇到了什么问题,哪些决定来自自己的思考?
- 结合机票业务,你会怎样设计相应的系统?
- 给出一段订单创建代码,你能找出其中的问题吗?
- 手写算法的实现思路是什么,时间复杂度怎样分析?
- 最近在学习什么新技术,你对它的理解是什么?
《参考解析》
机票业务先把范围问清楚
搜索、报价、预订、支付、出票属于不同环节。系统设计时先确认本题覆盖哪一段、库存由谁管理、价格是否会变化,再划定订单状态和服务边界。若调用外部供应方超时,应区分明确失败和结果未知,后者需要查询结果或后续核对,不能直接再创建一张新订单。
订单代码可以从一致性看起
检查是否重复创建、金额是否由可信来源计算、库存是否会被并发超卖、状态更新是否允许非法跳转。数据库事务只能覆盖其管理的写入,无法自动把外部接口调用一起回滚。跨系统步骤应有可查询的业务编号,以及明确的重试或补偿条件。
原帖没有贴出系统设计题的详细约束、订单代码和算法题干。以上是对应环节的分析方法,不能当作原题的唯一解。面试者在反问中了解到团队偏机票 To C 后端,技术准备应覆盖业务建模和后端基础。