给老代码补解释性注释
编程与调试只补「为什么」不补「做什么」,并列出需要找原作者确认的疑点
这段代码 [代码片段] 没有注释,接手的人不敢改。请只补「为什么」类注释:魔数从哪来、这里为什么要 sleep、为什么不…
AI / 编程与调试
让它指出真问题,而不是复述常识
12 / 17
只补「为什么」不补「做什么」,并列出需要找原作者确认的疑点
这段代码 [代码片段] 没有注释,接手的人不敢改。请只补「为什么」类注释:魔数从哪来、这里为什么要 sleep、为什么不…
把又算又写又发的函数拆成纯计算与副作用薄壳,说明丢了什么保证
这个函数既算价格、又写数据库、还发消息。请把它拆成 [纯计算部分] 与 [副作用执行部分]:纯函数只收参数只返结果,副作…
位置参数改配置对象,并给一份不破坏调用方的渐进迁移路径
这个函数有 [参数个数] 个位置参数,调用处经常传错顺序。请改成配置对象或具名参数,给出新签名、默认值、必填校验,以及全…
用键到处理函数的映射替代长分支,并指出哪些分支不该合并
这个 switch 有 [分支数] 个分支,每个分支在做类似的事。请重构成「键 → 处理函数」的映射表,输出映射定义、默…
按调用方和变化原因给杂乱的工具函数分组,并给出可独立提交的迁移顺序
这个 utils 文件里有 [方法数] 个互不相关的函数,谁都在 import。请按「调用方 + 变化原因」分组,给出新…
逐个还原含糊变量名的真实含义,判断不出来的列进待确认清单
这段代码里出现了 [含糊命名清单] 这类名字。请逐个给改名建议:新名字要说清它装的是什么、单位或量纲、能不能为空;每个旧…
统一布尔命名并揪出双重否定、名实相反和三种状态的假布尔
这个模块 [模块名] 里布尔变量和返回布尔的函数命名混乱,有 is_、有 has_、还有直接叫 status 的。请统一…
同一概念三种叫法时确定唯一术语,并输出改名清单与兼容方案
同一个概念在代码里被叫成 [同义叫法一]、[同义叫法二]、[同义叫法三]。请先确定唯一术语并说明理由(和业务方口径、和数…
按必须改、建议改、可保留三档评审字段与索引命名并提示下游影响
请审查这份建表语句 [DDL] 的命名:缩写是否可读、布尔字段是否带 is_ 前缀、created_at 与 updat…
把 test1、test_ok 重命名成场景加期望,并找出名实不符的测试
这些测试 [测试文件] 的名字是 test1、test_ok、test_error2,失败时完全看不出坏了什么。请重命名…
为环境变量与配置键定一套前缀、层级和单位约定,避免同名不同义
项目里的配置键 [混乱示例] 谁也说不清谁在用。请定一套命名约定:统一前缀(服务名或模块)、层级用分隔符表达归属、带单位…
判断该改名还是该拆行为,并列出所有需要同步调整的调用点
这个叫 [函数名] 的函数实际做了三件名字里没写的事。请判断:是改名让名字配得上行为,还是把多余的事挪走让行为配得上名字…
扫描空的 catch 和只打日志的分支,按业务后果排风险并给出处理建议
请扫描 [待审查的代码] 里所有 catch 之后什么都不做、或只打一行日志就继续的地方,逐处判断:这里失败会导致什么业…
改成显式结果类型,并特别照顾那些把 null 当正常值用的调用点
这个函数 [函数名] 用返回 null 表示失败,调用方十个有八个没判空。请改成显式的成功/失败结果类型(Result、…
补齐超时、退避重试、幂等键与降级约定,并画出失败场景表
这段代码调用 [外部服务],没有超时、失败就抛、重试还会重复下单。请补齐:连接与读取超时(给出建议值及依据)、只对可重试…
把异常分成重试会好、重试没用、重试有副作用三类分别处理
现在的重试逻辑对所有异常一视同仁。请按 [调用场景] 把错误分成三类:重试就会好(网络抖动、限流)、重试也没用(参数错、…
把「操作失败」改写成分层信息,用户看的和开发看的分开输出
现在 [接口或函数] 报错只说「操作失败」。请改写成可排查的格式:发生了什么、卡在哪个步骤、关键输入是什么(脱敏)、请求…
让文件、连接、锁在正常和异常路径都释放一次,且不掩盖原始异常
这段代码打开 [文件/连接/锁] 之后,中间任何一步抛异常都会泄漏。请改成异常安全的写法(try-with-resour…
按错误类型设计重试、跳转登录、字段定位与上报的差异化表现
这个页面 [页面名] 里所有接口错误都被 catch 后弹一句 toast,用户不知道下一步做什么。请按类型处理:可重试…
用一张表说清函数何时抛错、抛什么、调用方必须处理哪些
请为 [函数/接口] 写一份错误契约:它在什么条件下抛错、抛什么类型、调用方必须处理哪些、哪些可以直接冒泡。用一张表列出…
覆盖 null、空串、空数组、单元素与全默认值的预期行为与风险
请为 [函数名] 列出必须覆盖的空值边界:参数为 null、空字符串、只有空白的字符串、空数组、只有一个元素,以及「有值…
把导出超时、内存暴涨、部分行失败与并发导出这些边界一次列清
这个导出功能一次导出 [数据范围],现在偶尔超时或把内存打满。请列出边界并给出处理:超时(同步改异步任务)、内存(流式写…
检查月末加月、闰年、跨年、夏令时与「今天」归属时区的偏差
这段代码做日期加减和「本月」统计。请检查这些边界:月末加一个月、闰年 2 月 29、跨年、夏令时切换的那一小时、服务器用…
指出浮点算钱会错的场景,并给出整数分或 Decimal 的改法
这段代码 [金额计算逻辑] 用浮点数算钱并直接四舍五入。请指出会出错的场景:0.1 加 0.2、多次累加后的误差、除以…
排查单位混用造成的十倍百倍偏差,并给出把单位写进名字的改法
这段代码里 [超时/间隔参数] 有的按秒、有的按毫秒传,出过十倍偏差。请逐处标出每个数值的单位依据(来自哪份文档或哪个库…
梳理 emoji、全角、零宽字符与长度按码点还是字节算的差异
这段代码按 [长度规则] 校验用户名,并把内容拼进 SQL 和页面。请列出边界:超长输入、纯 emoji(一个字符占多个…
从改 id 能否读到别人的数据入手,把归属过滤加到查询条件里
这个接口从 URL 拿 [资源 id] 就直接查库返回。请找出越权风险:改 id 能否读到别人的数据、列表接口是否漏了归…
从空文件、超大文件、伪装扩展名到解压炸弹,逐项给防护写法
请审查上传接口 [接口地址] 的边界:空文件、超大文件、扩展名与实际内容不符、文件名带路径穿越、压缩包解压炸弹、并发上传…
先判断真重复还是碰巧相似,再决定抽象成公共实现还是保持分开
这三段代码看起来很像,但分别属于 [模块 A]、[模块 B]、[模块 C]。请先判断它们是「真重复」还是「碰巧长得像」:…
手机号、金额上限这类规则收敛到单一来源,并安排发布顺序
手机号、身份证、金额上限这些规则 [涉及的表单] 在前端、后端各写了一遍,改一处就漏一处。请给出收敛方案:规则定义放哪(…
用工厂函数替掉每个用例里重复的造数,并指出哪些重复不该抽
这个测试文件里每个用例都重复了 [行数] 行准备数据。请抽出 fixture 或工厂函数,要求默认值合理、每个用例只显式…
用中间件或装饰器统一记录进入退出,分支里只留业务特有字段
每个分支 [分支清单] 里都手写了同样的埋点和日志,新加分支时经常漏。请改成在一处统一处理:用装饰器、中间件或切面在进入…
把重复出现且已不一致的字面量收敛成带单位与业务含义的常量
这段代码里到处是 [魔法数字示例] 这样的字面量,同一个值出现在五个地方,而且已经不一致了。请收敛成常量或枚举:命名带单…
比较视图、CTE 与仓储方法三种收敛方式,并提防语义不同的假重复
这三个查询 [SQL 片段] 有八成 WHERE 条件相同。请给出收敛方案:抽成视图、CTE,还是仓储层的一个方法;比较…
改成基础配置加环境覆盖,并列出三份配置里已经不一致的危险键
开发、测试、生产三份配置 [配置文件路径] 有大量重复,只有少数值不同。请改成「基础配置 + 环境覆盖」的结构:哪些必须…
找出重抛时只留一句话、把原始原因丢掉的写法,并给出保留链路的方式
这段代码 [异常处理片段] 捕获异常后重新抛了一个新异常,只带了句「处理失败」。请找出所有丢失原因的地方:新异常有没有挂…
排查时钟漂移与时区混用导致的日志时序错乱,并给出统一口径
这几台机器上的日志 [时间段] 对不上,同一请求在两台上的先后顺序是反的。请给出排查与规范:是时钟漂移、时区没统一,还是…
区分必须移除与保留前后几位的字段,并在框架层统一脱敏
这些日志 [日志样例] 里打了手机号、身份证、完整卡号和请求头里的 token。请给出脱敏方案:哪些字段必须完全移除、哪…
给脚本补 logger、分级别、改惰性参数,并保证上线后能检索能关闭
这份脚本里用了 [处数] 个 print 来排查问题,上线后既关不掉也没法检索。请替换成日志:定义 logger、按用途…
排查异步写日志与缓冲导致的丢日志,确保崩溃前最后几条能落盘
这个服务 [服务名] 崩溃后,日志停在了出事前几十秒,最后几条关键信息没了。请排查:日志是否走了异步 appender…
用最小改动定位一条链路慢在哪一段,而不是加满日志再人肉比对
这条 [链路名] 变慢了,但不知道慢在哪一步。请给出打点方案:每步开始与结束各记一次时间戳,算出本步耗时与累计耗时,标明…
审查轮转、保留期与压缩配置,避免磁盘写满导致整个服务不可用
这台机器上的日志 [目录] 占了大部分磁盘。请审查轮转配置:按大小还是按天切、单文件上限、保留几个历史文件、是否压缩、以…
全量查询改成流式或分批处理,并给出内存上限的验证方法
这段代码一次查出 [表] 的全部记录,再在内存里过滤。请改成流式或分批处理:游标与分页的选法(避免 offset 越翻越…
从 SELECT 星号与大字段入手,减少传输、内存和无效的字段回写
这段查询用了 SELECT 星号,表里还有 [大字段,如 描述/JSON]。请指出代价:多传的列带来的网络与内存开销、大…
按代价从低到高给出分页、虚拟化、memo 化的方案与收益判断
这个页面一次渲染 [条数] 条数据,滚动明显掉帧。请按代价从低到高给出方案:分页或无限滚动、列表虚拟化、行组件 memo…
设计 key 版本、过期依据与穿透雪崩防护,并摊开一致性风险
这段代码给 [数据] 加了缓存,但没有失效策略。请设计:key 怎么带版本或租户、过期时间依据什么定、更新时是删缓存还是…
逐处判断数据拷贝是为了防篡改还是历史遗留,并估算省下的开销
这段代码 [数据处理逻辑] 在大对象上来回拷贝(切片、深拷贝、序列化再反序列化)。请逐处判断是否必要:哪些是为了防止外部…
依据并发量、单次耗时和实例数推算池参数,并给出验证指标
这个服务的数据库连接池用了默认值,高峰期报等待超时。请根据 [并发量/单次查询耗时/实例数] 推算合理参数:最大连接、最…
判断是否存在灾难性回溯,给出最坏输入与线性匹配的改写方案
这条正则用在用户输入上 [正则表达式]。请判断是否存在灾难性回溯(嵌套量词、相邻的通配与量词),给出会触发它的最坏输入示…
按体积列模块、查整包引入与重复依赖,区分首屏必需和可延迟加载
构建产物有 [体积] MB,首屏加载慢。请给一套排查顺序:按体积列出模块、找出被整包引入的库(能否按需引入)、检查重复依…
按分支列用例清单再写测试,并标出需要先问清预期才能写的分支
这个函数 [函数名] 没有测试,谁都不敢改。请先按分支列出用例清单(正常、边界、异常各几条),再写出测试代码:每个用例只…
识别只调用不断言、断言过宽、抄实现和 mock 到空壳的无效测试
请审查测试文件 [文件路径] 的有效性:有没有只调用不断言、断言过宽(只判非空)、把被测代码的算法抄一遍再比对、mock…
用最小输入把 bug 钉住,确认修复后转绿且不误伤其他用例
这个 bug 的复现步骤是 [复现步骤]。请先写一条当前必然失败的测试把它钉住(最小输入、明确断言),再给出修复思路,最…
设计外部依赖的打桩层,覆盖超时与错误,并防桩数据漂移
这批测试会真的请求 [外部服务],又慢又不稳定。请给出打桩方案:在哪一层拦截(HTTP 客户端、接口封装还是依赖注入)、…
用分支覆盖找出从没执行过的错误路径,并判断哪些值得补测
这个模块行覆盖率 [百分比],但线上仍然出问题。请指出覆盖率看不出的盲区:从未执行过的错误分支、只走了一条的 switc…
判断哪些地方适合快照、哪些会变成一改就红的负担,并给出维护方式
这个项目里 [快照数量] 个快照测试动不动就整片失败。请判断哪些适合快照(稳定的结构化输出、序列化格式),哪些不适合(含…
用最小路径覆盖登录到落库,作为每次发布前的最后一道闸门
这个项目发布前靠人工点一遍。请设计一条冒烟测试:覆盖 [核心路径,如 登录 → 下单 → 支付回调 → 订单落库],说明…
把执行计划输出翻译成具体改写动作和预期收益
这段 PostgreSQL 的 EXPLAIN 输出和表结构如下。请:1)指出耗时最高的节点及原因(扫行数、回表、排序、…
把越翻越慢的 OFFSET 分页改成游标分页并说明取舍
这段分页 SQL 在 [页码/数据量] 之后明显变慢。请:1)说明 OFFSET 为什么随页码线性变慢;2)给出用「上一…
给一批高频查询定联合索引列序,并说明谁用不上
下面有 [N] 条高频查询和表的字段说明。请设计联合索引:1)按等值、范围、排序三类条件排出列顺序,逐条说明理由;2)标…