Skip to content

面试冲刺 ​

说明:本文档对先前两份题库定制报告进行了全量合并、去重、逻辑重构与排版优化。所有问题标题、为什么会问、作答思路及依据原文均严格保持原始 QA 内容不变,按“架构设计/高并发 → 数据库/存储 → 缓存/Redis → 消息队列/MQ → 微服务/Spring框架 → JVM/线程池/排障 → 业务/Flowable项目深挖 → 软技能/反问”的逻辑顺序进行了归类排列。


一、 系统架构与高并发设计 ​

1. 高并发大数据量场景如何设计系统? ​

属性内容
分类岗位技能 高概率
真实题库近90天被问 2 次 · 累计 4 次
出现公司CVTE、TME酷狗、滴滴 都问过

为什么会问 ​

考察系统设计时是否能先识别瓶颈和业务一致性边界,再把缓存、异步、存储扩展、限流降级和可观测性组合成可落地方案。

作答思路 ​

  1. 指标与约束澄清:先澄清 QPS、读写比例、峰值时长、延迟目标、数据量、核心交易链路及一致性等级;
  2. 全链路架构设计:
  • 入口层:通过网关鉴权、限流和黑白名单保护;
  • 读路径:采用本地/Redis 缓存、热点 Key 保护和缓存预热;
  • 写路径:通过 MQ 削峰、异步化和消费者水平扩容;
  • 存储层:以索引和 SQL 优化为前提,瓶颈明确后再做读写分离、分库分表或归档;同一业务键保持局部有序。
  1. 数据可靠性与防重:对库存、审批、扣款等关键写操作,用唯一约束、状态机、条件更新或幂等表兜底,而不是只依赖分布式锁;
  2. 稳定性保障:补充熔断降级、超时重试、监控告警、压测容量基线和故障演练。

依据原文 ​

曾在省级电网 7×24 系统中使用 Redis 缓存实时监测数据、RabbitMQ 异步推送调度指令;在 OA 系统中通过 Redis 缓存审批人信息使任务列表接口响应降至 200ms 内。


2. 微服务拆分的原则是什么?拆得太细会有什么问题? ​

属性内容
分类岗位技能 可能问
真实题库近90天被问 2 次 · 累计 2 次
出现公司阿里巴巴 都问过

为什么会问 ​

考察架构设计是否以业务边界和团队交付效率为核心,而不是把单体拆分本身当作目标。

作答思路 ​

  1. 拆分原则:说明拆分依据是领域边界、数据所有权、变化频率、独立扩缩容需求和团队边界,而不是按技术层或表机械拆分。一个服务应尽量拥有自己的核心数据和业务规则,对外通过稳定 API 或事件协作;先从模块化单体或边界清晰、压力明显的模块开始演进;
  2. 拆分过细的问题:会导致分布式调用链变长、网络失败和排障复杂度上升、跨服务事务增多、数据一致性难度提高、部署与测试成本上升;
  3. 治理配套:说明治理配套包括网关、注册发现、配置管理、超时重试、熔断限流、链路追踪、日志监控、契约测试和灰度发布。对于审批、财务等强关联模块,要慎拆并明确最终一致性方案。

依据原文 ​

候选人熟悉 Spring Cloud Gateway、OpenFeign、Hystrix,并有 Docker 容器化微服务部署和分库分表经历,可结合电力系统的业务线模块说明拆分取舍。


二、 数据库与存储(MySQL / 分库分表) ​

3. 慢 SQL 怎么排查和优化? ​

属性内容
分类岗位技能 高概率
真实题库近90天被问 11 次 · 累计 24 次
出现公司万丈金数、奇妙思维、嘉为科技、字节跳动 都问过

为什么会问 ​

考察候选人是否具备从监控发现问题、通过执行计划定位瓶颈并完成工程优化的完整能力。候选人简历明确写有 Explain 分析、索引优化和慢查询调优,因此很可能被追问具体案例。

作答思路 ​

  1. 定位链路:通过慢查询日志、APM/接口监控定位具体 SQL、调用入口和数据规模,记录执行耗时、参数和影响范围,确认是偶发还是稳定复现;
  2. 执行计划分析:用 EXPLAIN / EXPLAIN ANALYZE 关注 type、possible_keys、key、key_len、rows、filtered、Extra,重点检查全表扫描、回表过多、filesort、temporary、隐式类型转换和锁等待;
  3. 优化顺序与改写:
  • 根据 where/join/order by 条件设计联合或覆盖索引,避免 select * 和函数包裹索引列;
  • 避免深分页,改为基于游标或主键范围翻页;
  • 拆分超大查询或预聚合报表(如财务系统“科目余额聚合 + 统一组装”);
  1. 效果验证:上线后用执行计划、耗时、扫描行数和数据库负载进行验证,评估索引写入成本与回滚方案。

依据原文 ​

简历明确具备 MySQL 索引优化、Explain 分析和慢查询调优能力;曾重构财务三大报表为“科目余额聚合+统一组装”,将生成时间从 30 分钟缩短至 5 分钟。也可结合 OA 任务列表接口通过查询优化和审批人缓存将响应控制在 200ms 内。


4. 索引在什么情况下会失效? ​

属性内容
分类岗位技能 高概率
真实题库近90天被问 7 次 · 累计 10 次
出现公司亚信科技、某互联网公司、某杭州小厂 都问过

为什么会问 ​

候选人明确具备 MySQL 索引优化和 Explain 分析经验,面试官通常会从宽泛的“会优化”继续追问具体失效场景。

作答思路 ​

  1. 常见失效原因:
  • 联合索引未遵守最左前缀;
  • 在索引列上使用函数或表达式;
  • 发生隐式类型转换;
  • like 以通配符开头;
  • 对低区分度字段单独建索引但优化器判断收益低;
  • 范围条件后联合索引后续列利用受限;
  • 数据量很小时优化器选择全表扫描;
  • OR 条件、否定条件或不合理排序导致索引利用不足。
  1. 判定依据:回答不能绝对化,最终以 EXPLAIN、统计信息和实际数据分布为准,并关注回表、覆盖索引和排序代价。

依据原文 ​

结合电力实时监测查询、审批任务列表和财务流水查询,准备一个真实的联合索引案例:明确查询条件顺序、排序字段、数据量、优化前后的执行计划以及是否使用覆盖索引。


5. MySQL 事务隔离级别有哪些? ​

属性内容
分类岗位技能 高概率
真实题库近90天被问 5 次 · 累计 29 次
出现公司一心向上、万丈金数、京东 都问过

为什么会问 ​

候选人负责财务、报表、审批等涉及状态和金额的数据模块,事务隔离与并发正确性是后端岗位的高频基础能力。通常会继续追问可重复读、MVCC 和锁。

作答思路 ​

  1. 隔离级别与并发现象:依次说明读未提交、读已提交、可重复读、串行化,以及脏读、不可重复读、幻读分别在哪些级别可能出现;
  2. InnoDB 实现机制:InnoDB 默认通常是可重复读,普通一致性读(快照读)依赖 MVCC 的 Read View 和 Undo Log;当前读如 update、select for update 会使用记录锁、间隙锁或 Next-Key Lock 控制并发;
  3. 业务选型与边界:报表或一般查询可接受快照读;余额扣减、审批状态流转等关键写操作要用事务包裹,并采用条件更新、唯一约束或显式锁防止并发覆盖。区分一致性读与当前读,不要笼统宣称“可重复读完全没有幻读”。

依据原文 ​

候选人负责财务应收应付、固定资产和电费核算等涉及状态与数据准确性的模块,可结合扣款、凭证生成或审批状态更新说明事务边界设计。


6. 你在电力核心业务系统中设计的历史数据分库分表方案是什么?分片键如何选,跨分片查询、扩容迁移和数据一致性如何处理? ​

属性内容
分类简历深挖 高概率

为什么会问 ​

考察“设计过分库分表”是否具备真实的数据规模判断、查询模型设计和长期运维意识,而不是仅停留在中间件配置。

作答思路 ​

  1. 背景与痛点:如实说明当时的痛点、数据增长类型和典型查询(如设备运行日志或历史监测数据按时间持续增长,在线业务更关注近期数据与按设备查询);
  2. 分片键选择:分片键应服务主要查询条件,可采用业务实体维度与时间维度组合,避免纯时间分片造成热点或纯设备分片导致单设备数据失衡;
  3. 关键技术处理:
  • 路由与查询:说明路由规则、全局唯一 ID、主表与流水表边界;跨分片查询采用限定时间范围、异步汇总表或 Elasticsearch/数仓承担分析,避免线上广播查询;
  • 扩容迁移:考虑新旧路由双写、迁移校验、灰度切换和回退预案;
  • 数据一致性:通过本地事务保证单分片写入,对跨服务或异步索引使用消息、重试与对账。

依据原文 ​

电力核心业务系统中“设计分库分表方案优化历史数据查询”;同时使用 Elasticsearch 存储海量运行日志,支撑故障快速检索与分析。


三、 缓存与分布式锁(Redis) ​

7. 缓存穿透、缓存击穿、缓存雪崩分别是什么?如何解决? ​

属性内容
分类岗位技能 高概率
真实题库近90天被问 6 次 · 累计 37 次
出现公司中电信翼康科技有限公司、京东、华为 都问过

为什么会问 ​

候选人多次使用 Redis,并负责审批人信息、实时监测数据和高频财务查询缓存。面试官会借此判断其是否理解缓存异常场景,而非只会简单读写 Redis。

作答思路 ​

  1. 缓存穿透:请求不存在的数据,持续绕过缓存打到数据库。解决方案:参数校验、缓存空值(设置较短 TTL)和布隆过滤器;
  2. 缓存击穿:热点 Key 过期瞬间并发回源。解决方案:互斥锁/SETNX 重建、逻辑过期、热点永不过期配合后台异步刷新,控制回源线程数;
  3. 缓存雪崩:大量 Key 同时过期或 Redis 节点故障。解决方案:TTL 加随机抖动、多级缓存、限流降级、缓存预热和 Redis 高可用集群;
  4. 观察指标:补充缓存命中率、Redis 延迟/内存、数据库连接池和热点 Key QPS 监控。

依据原文 ​

候选人在 OA 任务列表、电力实时监测和财务高频查询中均使用 Redis 缓存,可选择其中一个读多写少场景说明 Key、TTL、失效策略与监控方式。


8. Redis 分布式锁如何实现? ​

属性内容
分类岗位技能 高概率
真实题库近90天被问 6 次 · 累计 33 次
出现公司Xtransfer、亚信科技、京东 都问过

为什么会问 ​

候选人简历直接写有 SETNX 分布式锁和 Lua,属于极容易被要求现场展开的高频题,考察多实例部署下的互斥控制、锁误释放风险和业务幂等意识。

作答思路 ​

  1. 核心指令:基础实现为 SET lockKey uniqueValue NX PX leaseMillis,NX 保证首次获取,PX 防止死锁,uniqueValue 必须是请求或线程唯一 token;
  2. 原子释放:释放不能直接 DEL,必须用 Lua 脚本原子校验 token 后删除,避免 A 锁过期、B 获锁后被 A 误删;
  3. 租约与续期:租约根据业务 P99 耗时设置;任务可能超时可采用成熟客户端续期机制,但续期不能替代超时、幂等和状态机;
  4. 分布式边界与兜底:说明 Redis 在主从切换或网络分区下不能作为绝对强一致锁;对于扣款、审批状态变更等操作,最终以数据库唯一约束、条件更新或状态机兜底。

依据原文 ​

简历列明 Redis、SETNX 分布式锁和 Lua 的实践经验。可用 OA 中防止同一审批任务被重复处理,或财务批处理防重复执行作为案例。


9. MySQL 和 Redis 如何保证数据一致性? ​

属性内容
分类岗位技能 高概率
真实题库近90天被问 2 次 · 累计 23 次
出现公司9377游戏、字节跳动、快手 都问过

为什么会问 ​

候选人的多个项目同时使用 MySQL 和 Redis,能区分只会缓存加速和真正理解一致性边界(最终一致性)的候选人。

作答思路 ​

  1. 一致性目标:明确大多数业务目标是最终一致,而非跨 MySQL 和 Redis 的强一致;
  2. 主流策略 (Cache Aside):读时先查缓存,未命中查库并回填;写时先更新 MySQL,事务提交成功后删除缓存(避免更新缓存导致并发覆盖);
  3. 删除保障与补偿:删除失败时使用可靠消息、本地消息表或重试任务补偿;热点 Key 重建用互斥锁或逻辑过期避免击穿;多级缓存通过 MQ/binlog 广播失效;
  4. 业务分级:结合业务判断短暂旧读的容忍度,不可接受的关键状态应直接读库或采用版本控制。

依据原文 ​

在 OA 系统中使用 Redis 缓存审批人信息优化任务列表;在电力系统中缓存实时监测数据。可分别说明审批人资料和实时数据对“短暂旧值”的容忍度不同。


四、 消息队列(RabbitMQ) ​

10. 如何保证 MQ 消息可靠性? ​

属性内容
分类岗位技能 高概率
真实题库近90天被问 1 次 · 累计 17 次
出现公司TME酷狗、字节跳动、快手 都问过

为什么会问 ​

候选人使用 RabbitMQ 异步推送待办提醒和调度指令,并明确写有死信队列与可靠性,考察是否能从端到端分析完整消息链路。

作答思路 ​

  1. 生产端:消息设置业务唯一 ID,开启 publisher confirm 并处理 confirm 超时或失败重试;必要时采用本地消息表解决“业务落库成功但消息未发出”问题;
  2. Broker 侧:交换机、队列和消息均配置持久化,配合镜像/仲裁队列等高可用部署方案;
  3. 消费端:采用手动 ACK,业务处理和幂等落库成功后再确认;失败区分可重试与不可重试,采用有限重试、退避策略和死信队列(DLX);
  4. 端到端闭环:配置消息积压、消费失败率、死信量监控;强调 MQ 通常是“至少一次投递”,消费端必须保证幂等。

依据原文 ​

OA 平台使用 RabbitMQ 异步推送待办提醒至站内信和企业微信;电力系统使用 RabbitMQ 异步推送调度指令。可重点准备调度指令失败重试、人工补偿和避免重复执行的设计。


11. 如何保证 MQ 消费者幂等性? ​

属性内容
分类岗位技能 高概率
真实题库近90天被问 1 次 · 累计 6 次(或“消息丢失与重复消费”综合追问)
出现公司美团、腾讯、航旅纵横、500强外企、比特鹰 都问过

为什么会问 ​

这是 RabbitMQ 可靠性问题的典型追问,考察对消息重复投递、消费者重启、ACK 丢失和多实例并发消费的处理能力。

作答思路 ​

  1. 幂等定义与键选择:同一业务消息重复执行多次,结果与执行一次一致。幂等键应选稳定的业务唯一标识(如调度指令号、审批任务 ID、账务流水号),而非随机请求参数;
  2. 持久化兜底方案:首选数据库唯一索引或幂等记录表作为最终兜底,在同一事务内插入消费记录与执行业务,唯一冲突即判定已处理;状态变更采用 where status=待处理 的条件更新或乐观锁;
  3. 缓存辅助与重试:Redis SETNX 可用于减轻短期重复请求,但不能替代持久化兜底;消费成功后再 ACK,重复消息直接返回已处理结果;
  4. 外部调用处理:若涉及外部不可逆调用,需传递幂等键并设计对账补偿机制。

依据原文 ​

候选人有 RabbitMQ 异步待办提醒与调度指令推送经验,适合用“指令号/任务 ID + 数据库唯一约束或状态机”的组合说明。


五、 服务端框架与微服务(Spring / MyBatis) ​

12. @Transactional 注解在哪些场景会失效,如何解决? ​

属性内容
分类岗位技能 高概率
真实题库近90天被问 4 次 · 累计 10 次
出现公司山东胜软科技股份有限公司、携程、某互联网公司 都问过

为什么会问 ​

候选人长期使用 Spring Boot、Spring MVC 和 MyBatis,财务、审批、批量处理场景都可能涉及事务边界,考察对 Spring 代理机制和异常回滚规则的理解。

作答思路 ​

  1. 原理解析:声明式事务本质依赖 Spring AOP 动态代理;
  2. 典型失效场景:
  • 同类内部 this 直接调用绕过代理;
  • 方法非 public 或 Bean 未被 Spring 管理;
  • 异常被 catch 后未抛出或未显式标记回滚;
  • 默认只对 RuntimeException/Error 回滚,checked exception 未配置 rollbackFor;
  • 多数据源/事务管理器配置错误,或异步线程脱离原事务上下文;
  1. 解决方案与边界:拆分到独立 Bean 并经代理调用,合理设置 propagation、isolation、rollbackFor;跨服务操作采用可靠消息、状态机或补偿对账,确保数据库事务提交后再异步发送外部通知。

依据原文 ​

候选人使用 Spring Boot、Spring MVC、MyBatis,并承担财务核算与审批状态流转模块;可结合“数据库提交后再异步发送待办提醒”说明事务和消息边界。


13. Spring IoC 和 AOP 的原理与使用场景分别是什么? ​

属性内容
分类岗位技能 高概率
真实题库近90天被问 4 次 · 累计 15 次
出现公司字节跳动、有赞、东软、京东、唯品会 都问过

为什么会问 ​

Spring 后端岗位的基础高频题,考察是否理解容器解耦与横切能力的实现边界,并能正确解释事务、鉴权、审计、监控等工程场景。

作答思路 ​

  1. IoC(控制反转):把对象创建、依赖关系和生命周期交给容器管理,通过构造器或属性注入降低解耦;
  2. AOP(面向切面编程)与代理原理:通过动态代理(目标类有接口用 JDK 动态代理,无接口用 CGLIB)把横切逻辑织入业务方法。适用于日志、审计、权限校验、事务(@Transactional)、缓存和监控;
  3. 代理限制与注意事项:Spring AOP 以方法执行为连接点,final 类/方法、private 方法及同类内部调用会导致代理失效;切面不能替代清晰的领域设计。

依据原文 ​

结合 Spring Security 的角色权限控制、审批流程监听器/审计、事务边界和统一接口耗时日志说明 IoC/AOP 的真实落点。


14. Spring Boot 和 Spring Cloud 有什么区别? ​

属性内容
分类岗位技能 高概率
真实题库近90天被问 3 次 · 累计 9 次
出现公司保融科技、携程、某互联网公司 都问过

为什么会问 ​

候选人简历明确写有 Spring Cloud Gateway、OpenFeign 和 Hystrix,面试官要求说明微服务组件的职责和实际使用边界。

作答思路 ​

  1. 核心区别:Spring Boot 用于快速构建单体或独立微服务应用,提供自动配置、内嵌容器与开箱即用体验;Spring Cloud 是围绕微服务架构治理的集大成者,解决服务间通信、路由、治理与容错;
  2. 组件职责配合:Gateway 负责统一入口路由、鉴权和限流,OpenFeign 提供声明式 HTTP 服务调用,Hystrix 负责超时、隔离、熔断和降级;
  3. 架构思考:微服务拆分需评估部署、调用链、数据一致性和运维成本,避免过度设计。

依据原文 ​

结合电力系统微服务 Docker 部署、Spring Cloud Gateway、OpenFeign 和 Hystrix,说明服务边界、调用超时、降级返回和扩容方式。


六、 JVM、多线程与线上排障 ​

15. 线程池核心参数如何设置,依据是什么? ​

属性内容
分类岗位技能 高概率
真实题库近90天被问 3 次 · 累计 17 次
出现公司京东、快手、携程 都问过

为什么会问 ​

候选人的审批提醒、报表批处理和调度指令都涉及并发异步,考察是否理解线程、队列、下游容量与拒绝策略之间的联动。

作答思路 ​

  1. 核心参数与执行流程:说明 corePoolSize、maximumPoolSize、workQueue、keepAliveTime、threadFactory、RejectedExecutionHandler 的职责。执行顺序为:核心线程 → 阻塞队列 → 最大线程 → 拒绝策略;
  2. 参数设置依据:
  • CPU 密集型:线程数接近 CPU 核数(核数 + 1);
  • I/O 密集型:根据等待时间/计算时间比值及下游连接池容量压测确定;
  1. 生产规避点:队列不能无界(防止 OOM);拒绝策略按业务设计(非核心通知降级,关键任务快速失败并触发重试/补偿);
  2. 监控与隔离:不同业务(如通知与核心指令)进行线程池隔离,监控活跃线程数、队列积压和拒绝次数,配置优雅停机。

依据原文 ​

结合报表生成、批量折旧计提或异步待办推送说明任务类型,说明会按通知与核心指令进行线程池隔离,并依据消费者处理耗时和下游接口承载能力压测定参。


16. 线上 Full GC / OOM 如何排查? ​

属性内容
分类岗位技能 高概率
真实题库近90天被问 2 次 · 累计 6 次(或“排查 OOM”综合追问)
出现公司快手、携程、滴滴、中国平安、北京即时设计有限公司 都问过

为什么会问 ​

考察 JVM 调优与线上排障是否具有真实路径,验证 Arthas、jmap、jstack 等工具的使用经验。

作答思路 ​

  1. 止损与确认现象:先止损并确认 OOM/Full GC 类型。结合监控、GC 日志、jstat 观察频率、停顿时间和老年代使用率,关联流量、发布和错误率;
  2. 工具诊断链路:
  • 用 jstack 排查是否存在线程阻塞、死锁或线程堆积;
  • 用 jmap/jcmd 导出 Heap Dump,借助 MAT 或 VisualVM 分析支配树、大对象及 GC Root 引用链;
  • 用 Arthas 查看热点类、方法和调用链;
  1. 根因归类:区分内存泄漏(ThreadLocal 未清理)、缓存无界增长、大批量数据未分页(如 EasyExcel/报表导出)、连接池/线程池泄漏、或堆参数配置不当;
  2. 修复验证:代码修复后通过压测与灰度验证,保留 GC 日志与告警,不盲目盲目调大 -Xmx。

依据原文 ​

简历中列明 Arthas、jstack、jmap、内存与 GC 调优能力。可结合报表生成、EasyExcel 批量导入导出、流程历史数据处理等场景作答。


七、 项目业务深挖(Flowable / 动态表单 / 状态机) ​

17. 请完整讲一个你在 Flowable 7 OA 审批平台中主导的复杂流程:从流程定义、版本升级,到会签/或签、加签和条件分支,如何保证运行中实例不受升级影响? ​

属性内容
分类简历深挖 高概率

为什么会问 ​

考察候选人是否真正主导过工作流核心设计,能否把业务规则、流程引擎能力、数据模型和上线风险讲成闭环。

作答思路 ​

按“背景 → 难点 → 方案 → 验证 → 结果”作答:

  1. 业务背景:20+ 类审批流程在线化,500+ 员工并发使用;
  2. 解耦与版本控制:将 BPMN 定义与业务表单配置解耦。采用流程定义部署与版本管理:新发起实例绑定最新版本,运行中实例继续绑定原版本执行;流程变量承载金额、申请人、审批链等上下文;
  3. 复杂节点实现:通过 Flowable 引擎原生与扩展实现会签(多实例并行/串行)、或签、加签、委派、驳回和撤回;金额阈值通过监听器注入变量,由排他网关(Exclusive Gateway)自动路由分支;
  4. 验证与成果:上线前用典型实例回归与异常路径演练,成功将审批周期由 2-3 天缩短至 4 小时,审批效率提升 70%。

依据原文 ​

企业级 OA 工作流系统主开发;基于 Flowable 7 集成 BPMN 2.0,支持 20+ 流程、会签/或签/加签/委派等能力,流程定义在线部署和版本管理,流程升级不影响运行中实例。


18. 你设计的动态表单和复杂审批能力,如何保证可配置、可校验、可追踪,并避免配置错误影响线上流程? ​

属性内容
分类简历深挖 高概率

为什么会问 ​

考察候选人在“JSON Schema 动态表单 + 复杂审批”中的架构抽象、数据校验、向下兼容性与防呆机制。

作答思路 ​

  1. 模型定义与发布控制:表单定义包含字段类型、必填规则、枚举、条件校验和业务关联;发布前做 Schema 校验、流程节点引用检查和试运行,发布后生成不可变版本;
  2. 版本隔离与双重校验:运行中的实例保存表单版本和提交快照,避免新配置改变历史数据含义;后端必须再次校验,不能只依赖前端;
  3. 规则结构化与审计:审批规则将金额阈值、角色、组织关系等条件结构化,并记录命中的规则和操作人;
  4. 故障防护:对字段删除、类型变更、流程升级、重复提交等异常路径设立审计日志、灰度发布或一键回滚机制。

依据原文 ​

候选人实现了 JSON Schema 配置字段与校验规则,新增流程配置即可上线;支持金额超阈值进入上级审批,并通过监听器和网关实现会签、或签、加签、委派、驳回和撤回。


19. 状态机是什么,如何设计状态流转? ​

属性内容
分类岗位技能 可能问
真实题库近90天被问 1 次 · 累计 2 次
出现公司ThunderBit、携程 都问过

为什么会问 ​

审批、调度指令、财务凭证都属于有明确生命周期的业务对象,考察候选人能否把业务规则抽象为高可维护的后端模型。

作答思路 ​

  1. 核心要素:状态机由状态集合(State)、事件(Event)、状态转移(Transition)和动作(Action)组成;
  2. 模型设计:明确初始态、终态、合法转移路径、触发条件、操作者权限和非法状态拦截;
  3. 并发与乐观锁:数据库中保留当前状态、版本号,更新时使用乐观锁或条件 update(如 WHERE status = 'PENDING')防止并发覆盖;
  4. 幂等与解耦:事件触发要保证幂等;解耦业务规则与 if-else,采用状态模式、策略模式或轻量级状态机框架管理,外部通知在事务提交后触发。

依据原文 ​

结合 OA 审批的草稿、待审批、审批中、通过、驳回、撤回状态,以及财务单据/调度指令的生命周期说明状态与事件。 Flowable 引擎状态与业务表状态应分别建模并保持同步。


八、 综合能力与反问环节 ​

20. 讲一次你推动技术方案落地时遇到业务、测试或运维团队意见不一致的经历。你如何用事实推动决策,并最终验证结果? ​

属性内容
分类行为面 可能问

为什么会问 ​

5—10 年经验岗位看重候选人在跨角色协作中推动技术决策、管理风险与落地闭环的能力。

作答思路 ​

采用 STAR 结构:

  • S (Situation):说明原问题与影响(如财务报表生成慢、流程升级冲突或历史数据查询瓶颈);
  • T (Task):明确你负责的技术目标与边界;
  • A (Action):重点讲述分歧所在,你如何收集慢查询、耗时、错误率或容量数据,提出备选方案,通过小范围验证或灰度降低风险,与业务/测试/运维达成一致的验收标准;
  • R (Result):用定量数据(如报表生成从 30min 降至 5min)收尾,并补充监控沉淀与回退预案。

依据原文 ​

曾主导 OA Flowable 引擎集成与动态表单开发;财务报表重构后生成时间从 30 分钟缩短至 5 分钟;自评中提到具备跨系统协作和推动技术方案落地能力。


21. 如果进入下一轮,我想了解:团队当前服务端最核心的性能或稳定性挑战是什么?这个岗位入职前 3—6 个月需要交付的结果,会用哪些技术和业务指标衡量? ​

属性内容
分类反问建议 可能问

为什么会问 ​

高质量反问体现候选人对真实业务问题、成功标准和技术决策边界的关注,同时评估岗位匹配度。

作答思路 ​

  1. 提问时机:在面试结尾反问环节提出;
  2. 深入追问:若面试官提到具体挑战,可顺势追问瓶颈位于数据库、缓存、消息链路还是服务治理,以及已有的监控、压测和改造计划;
  3. 原则:避免提问泛泛问题或过多福利问题,重点围绕稳定性、数据规模、服务治理与交付指标展开。

依据原文 ​

候选人有 OA、电力 7×24 系统、财务系统的性能优化与异步化经验,适合围绕稳定性、数据规模、服务治理和交付指标展开。

最后更新于: