大表在线加字段方案
编程与调试给千万级表加字段或索引,选一条不锁表的路径
要给 [表名](约 [行数] 行)加 [字段/索引],业务不能停机。请对比:1)原生 ALTER 在目标数据库版本下的锁…
AI / 编程与调试
让它指出真问题,而不是复述常识
13 / 17
给千万级表加字段或索引,选一条不锁表的路径
要给 [表名](约 [行数] 行)加 [字段/索引],业务不能停机。请对比:1)原生 ALTER 在目标数据库版本下的锁…
从循环取数的代码定位 N+1,并给出批量改写
这段列表页代码在循环里逐条查关联数据。请:1)指出哪些调用会随列表长度线性放大;2)给出批量查询加内存拼装的改写,写清用…
用 InnoDB 死锁日志还原两条事务的加锁顺序
下面是 SHOW ENGINE INNODB STATUS 的死锁片段和涉及的两条 SQL。请:1)还原两个事务各自的加…
把拖慢主库的统计查询拆成预聚合表加增量刷新
这个报表要扫 [时间范围] 的明细,已经影响线上。请:1)拆出它需要的维度和度量;2)设计按 [粒度] 预聚合的表结构,…
同一条 SQL 昨天快今天慢,按可能性排查计划变化
同一条 SQL 在 [数据库类型] 上没改过,但昨天开始变慢。请给排查顺序:1)先比对执行计划差异,怎么拿到历史计划;2…
把 Nginx 访问日志里的 5xx 分离出来,定位到上游
下面是某时段的 Nginx access log(combined 格式)。请:1)按状态码、上游地址、接口路径统计 5…
为一组服务定字段清单,让日志能查、能聚合、能对账
我们要统一 [服务数量] 个服务的日志格式。请产出字段规范:1)必填字段(时间、级别、服务名、trace_id、请求 I…
在不丢排查线索的前提下,把日志和存储成本降下来
日志量已经到了 [每日 GB/月成本]。请给削减方案:1)按级别、来源、字段估算可压缩空间;2)哪些日志可以采样、比例怎…
只有一个 trace_id,把跨服务的一次请求还原成时间线
用户反馈在 [时间点] 下单失败。请根据 trace_id [trace_id] 和下面的多服务日志:1)按时间排出经过…
找出把 ERROR 当日志记、把 INFO 当调试用的地方
下面是项目的日志调用清单。请:1)逐条判断级别是否恰当,给出应改成什么及理由;2)标出会引发告警风暴的高频 ERROR;…
用 user_id 和时间窗把一次投诉还原成可核对的请求序列
用户投诉 [投诉内容],时间是 [时间窗]。请:1)写出检索语句,按 user_id、设备号、订单号并行查;2)把命中请…
为合规审计设计只追加、可追溯、可导出的操作日志
系统要过 [合规要求/审计场景] 的检查。请设计审计日志:1)必记字段(操作者、角色、对象、动作、前后值、来源 IP、结…
按资源和语义逐条挑出接口设计里的不一致
下面是 [数量] 个接口的路径和返回示例。请:1)指出命名不一致处(单复数、动词混入、层级过深);2)逐条判断状态码是否…
为下单、支付类接口设计幂等,覆盖重试和并发
要给 [接口名] 加幂等保护,调用方可能重试也可能并发。请:1)幂等键由谁生成、放 header 还是 body、怎么防…
定清 offset 与 cursor 两种分页的入参、返回和边界
我们的列表接口分页参数各写各的。请给统一契约:1)两种分页各自的入参、返回结构、字段含义;2)总数为 0、超过末页、参数…
把散落的错误提示收成可判断、可检索、可扩展的错误码
各服务返回的错误格式不统一。请设计错误码体系:1)码段划分规则(按域、按类型)和号段表;2)每个码要携带的字段(码、用户…
规划一次破坏性变更的分期、共存、观测与下线
接口 [接口名] 要做破坏性变更([变更内容]),有 [调用方数量] 个外部调用方。请给演进方案:1)该用 URL 版本…
批量写入接口要能说清哪几条成功、哪几条失败
设计一个批量 [创建/更新] 接口,单次最多 [条数] 条。请明确:1)整体事务还是逐条独立,各自的一致性后果;2)返回…
让回调能验签、能重试、能防重放,对方才敢接
要向第三方推送 [事件类型] 回调。请设计:1)签名算法与参与签名的字段,时间戳如何防重放;2)重试策略(间隔、次数、退…
从现有代码和真实响应反推一份能直接联调的接口文档
下面是一段接口代码和几条真实响应。请产出 OpenAPI 3 片段:1)补全参数类型、必填、取值范围和示例;2)把响应字…
定清 null、空字符串、缺字段三者的语义,减少联调扯皮
前后端在空值语义上反复对不齐。请给一份约定:1)null、空字符串、空数组、字段缺失各自表示什么,能否互换;2)更新接口…
把一次发布拆成可观测、可暂停、可回退的批次
计划发布 [变更内容],影响 [用户范围]。请给灰度计划:1)分批维度(用户、地域、流量比例)与每批比例;2)每批之间观…
发布前先写好怎么退,包括数据部分能不能退
为即将发布的 [变更内容] 写回滚预案:1)触发条件写成具体数值(错误率、延迟、投诉量);2)回滚步骤按顺序列出,含命令…
让改表和发代码分开做,任何一步失败都不会炸
这次发布同时改表结构和代码([变更内容])。请给 expand/contract 分步方案:1)拆成几步,每步只做一件事…
开关从上线到清理,避免永久开关越堆越多
我们用功能开关控制 [功能名] 的放量。请给生命周期方案:1)开关命名、默认值、作用范围怎么定;2)放量阶梯与每级的观察…
发布前用固定问题挑出方案里的隐性风险
下面是一份变更方案。请以评审者身份提问,而不是给结论:1)列 8–10 个必须回答的问题,覆盖失败模式、数据一致性、依赖…
新旧版本并行时,用哪些指标判断该不该继续放量
我们准备用金丝雀发布 [服务名],新版本承接 [比例] 流量。请:1)列出要逐项对比的指标(错误率、延迟分位、资源占用、…
线上急修怎么拉分支、怎么发、怎么并回主干
线上出现 [故障描述],需要当天修复。请给热修复流程:1)从哪个提交拉分支,如何避免带上未发布的其他改动;2)修复的最小…
冻结期哪些改动能进、哪些不能,例外又怎么批
[活动名] 前 [天数] 天进入发布冻结。请制定规则:1)明确允许的改动类型(配置、文案、开关)与禁止的类型;2)例外申…
把「要稳定」变成可计算的 SLI、目标和预算消耗
为 [服务名] 定义 SLO。请:1)选 2–3 个真正反映用户感受的 SLI,写清分子分母怎么算;2)给出目标值与统计…
逐条审查告警,去掉抓不到人、天天响的规则
下面是现有的 [数量] 条告警规则和近一个月触发记录。请:1)按触发次数与真实故障数给每条打分,排出该删、该改、该留;2…
让没处理过这个告警的人,也能照着步骤做对
为告警 [告警名] 写 Runbook:1)这条告警代表什么、影响哪些用户;2)前 5 分钟按顺序做什么,含具体命令和查…
找出会把监控系统拖垮的高基数标签并给替代方案
我们的指标出现了 [查询变慢/存储暴涨]。请:1)解释标签基数如何放大存储和查询成本;2)从这批指标里挑出高基数标签(用…
一个服务一屏看全:流量、错误、延迟、饱和度
为 [服务名] 设计一屏看板。请:1)四个黄金信号各放哪几张图,用什么聚合和分位;2)按「总览 → 分接口 → 分实例…
一次故障刷出几百条告警时,怎么让人第一眼看到根因
一次数据库故障导致 [数量] 条告警同时触发。请设计抑制方案:1)识别根因告警与衍生告警,依赖关系表怎么维护;2)抑制规…
除了 CPU 和错误率,还要盯下单成功率这类业务信号
我们的监控只有技术指标,[上次故障] 是靠用户投诉才发现的。请补齐业务监控:1)按核心链路列 5–8 个指标(下单成功率…
一批依赖要同时升级,先排清先后顺序和联动关系
这 [数量] 个依赖需要一起升([依赖清单])。请:1)画出它们之间的版本约束与联动关系;2)给出升级顺序,说明每一步之…
解决锁文件反复冲突,顺便砍掉用不到的传递依赖
我们的 lock 文件每次合并都冲突,安装体积也在涨。请:1)解释冲突成因与正确解决流程(不要手工编辑);2)给出定位重…
收到 CVE 通报后,判断是否真受影响并排出修复顺序
收到通报:[依赖名] [版本] 存在 [漏洞描述]。请:1)判断我们是否真的受影响(调用路径、是否可达、有无缓解配置),…
从旧版 Node、Python 或 JDK 升到新版,先摸清不兼容点
计划把 [运行时] 从 [旧版本] 升到 [新版本]。请给迁移清单:1)语言层不兼容变更(语法、标准库、默认行为)要改哪…
平台发了新 SDK,帮业务方排清改造工作量和顺序
[内部平台] 的 SDK 从 [旧版本] 升到 [新版本],我们是被接入方。请:1)列出必须改造的调用点,按成本排序;2…
上线前确认依赖许可证能不能商用、要不要开源
下面是我们 [产品形态] 的依赖清单。请做许可证初筛:1)按类型分组(宽松、弱 copyleft、强 copyleft、…
把提交信息从 fix 变成能生成变更日志的格式
团队提交信息格式混乱,无法生成变更日志。请:1)给出规范(类型、范围、主题、正文、脚注)与类型表;2)给 8 条示例,覆…
按分支用途定清该用哪个,别每次临场再吵一遍
团队在 rebase 和 merge 之间反复摇摆。请给选择规则:1)按场景(同步主干、合并 PR、热修复回并、多人共享…
让评审者五分钟看懂改了什么、为什么、怎么验
为团队定一份 PR 模板。请包含:1)必填区块(背景、改动、影响面、验证方式、回滚方式、关联 issue);2)作者自检…
一个两千行的改动,拆成能独立评审、独立回滚的几块
这个 PR 有 [行数] 行改动,涉及 [模块]。请给拆分方案:1)按「先重构后功能」「先底层后上层」「按依赖顺序」给出…
已经推到远端的密钥,怎么彻底移除并做好善后
不慎把 [密钥类型] 提交并推到 [分支]。请给处置步骤:1)立即轮换密钥的顺序与影响面(哪些服务要重启、哪些缓存要清)…
按发布节奏和团队规模,选主干开发还是 Git Flow
我们在 [团队规模]、[发布节奏] 的情况下纠结分支模型。请:1)对比 trunk-based、GitHub Flow、…
把主干上的一个修复挑到发布分支,不带进别的改动
需要把主干上的修复 [提交/PR] 带到发布分支 [分支名]。请:1)确认该提交是否依赖主干上其他改动,怎么验证;2)给…
把「这里不对」写成对方能接受、能执行的评论
请把下面这些评审意见改写成建设性表达:[原始评审意见]。要求:1)区分「必须改」「建议」「个人偏好」并标注;2)每条指出…
从提交到制品,把阶段、并行和缓存安排明白
为 [项目类型] 设计 CI 流水线:1)阶段划分(静态检查、单测、构建、集成测试、制品、部署)与各阶段失败策略;2)哪…
找出随机失败的用例,决定是修、隔离还是删掉
CI 里有 [数量] 个用例偶发失败,重跑就过。请给治理方案:1)如何判定是 flaky 而不是真 bug(重跑统计、失…
让流水线能部署,又不会把凭据泄给任何一次 PR
我们的 CI 需要访问 [云平台/仓库/部署目标]。请设计凭据方案:1)不同触发来源(主分支、PR、fork PR、定时…
把二十分钟的流水线压到可接受范围,先找瓶颈
我们的 CI 从提交到可部署要 [时长]。请:1)给定位瓶颈的方法(各阶段耗时、缓存命中率、排队时间);2)按收益排序的…
多版本、多平台都要测,怎么排队列才不浪费机器
需要在 [平台/版本组合] 上跑测试。请设计矩阵:1)哪些维度必须全测、哪些可以抽样,依据是风险而不是覆盖欲;2)分片策…
让线上跑的每个包都能追回确切的提交和构建
我们的制品版本号混乱,出问题找不到对应代码。请设计:1)版本号规则(语义化版本 + 构建号 + 提交短哈希)与自动生成方…
覆盖率、扫描、评审这些卡点,哪些该硬性阻断
我们想在 CI 里加质量门禁([候选门禁项])。请:1)逐项评估该硬阻断、只告警还是不做,说明误报与漏报的代价;2)覆盖…
把六百行、三十个 props 的页面组件按数据流切开,给出安全的拆分顺序
那个改一处就怕碰坏别处的页面组件,有 [行数] 行、[props 数量] 个 props。请按「取数—业务规则—布局—纯…
判断一段代码里哪些属于取数与状态、哪些只负责渲染,并给出两层契约
这里有一段同时做请求、算派生数据和渲染的代码:[代码片段]。请判断哪些部分属于容器(取数、状态、错误处理),哪些属于展示…
把散落在三个页面里的请求与加载状态抽成一个可复用的 Hook
这段请求逻辑在三个页面里各写了一遍,都自带 loading 和错误处理:[代码片段]。请把它抽成一个自定义 Hook:函…