×
¥
查看详情
🔥 会员专享 文生文 其它

代码审查反馈优化器

👁️ 208 次查看
📅 Dec 10, 2025
💡 核心价值: 本提示词专为代码审查场景设计,通过结构化分析将技术性审查意见转化为专业、友好且具建设性的反馈语言。它强调正向表达与具体改进建议,有效提升团队沟通效率与协作氛围,适用于日常审查、新人指导等多种协作场景,帮助审查人员快速生成高质量、易接受的反馈内容。

🎯 可自定义参数(7个)

原始审查意见
用户提供的原始、未经修饰的技术性审查意见或问题描述
审查场景
进行代码审查的具体场景
反馈重点
反馈需要重点关注的技术方向
语气强度
反馈语言的语气和强度
目标开发者背景
接收反馈的开发者的技术经验水平
具体代码片段或上下文
提供相关的代码片段、文件路径或技术上下文,有助于生成更精准的建议
期望的改进方向或约束
指定期望的改进方向或任何技术、业务上的约束条件

🎨 效果示例

原始意见

状态码和错误返回不统一:成功时200/201混用;失败也用200并在body里放success=false,客户端不好判断。错误信息缺少错误码与traceId,排障困难。PUT /api/v1/users/{id} 非幂等,重复请求会新增记录。GET /api/v1/users 的分页文档缺失:limit默认/上限不明,page越界返回200+空数组。资源命名不一致:/user 与 /users 并存;字段命名 snake_case 与 camelCase 混用。/users/{id}/activate 存在副作用且同步阻塞,超时/重试策略未定义。对外泄露内部字段 isDeleted、internalNote。缺少OpenAPI定义,前端只能读代码联调,错误频发。 示例: GET /api/v1/users?limit=-1 -> 200 { success:false, message:'limit invalid' } UserController.update: if (!userService.update(id, req)) { return Response.ok({ success:false, message:'update fail' }).build(); } return Response.ok(savedUser).build(); // 直接返回JPA实体

审查场景:API接口审查
反馈重点:["API设计规范","错误处理机制","文档完整性","代码可维护性"]
语气强度:专业平衡型
目标开发者背景:中级开发者
具体代码片段或上下文:相关路由: GET /api/v1/users?limit={limit}&page={page} PUT /api/v1/users/{id} POST /api/v1/users/{id}/activate 示例响应(失败却返回200): HTTP/1.1 200 OK { "success": false, "message": "update fail" } 控制器片段(Java/Spring): // 命名不一致、错误码不统一、直接暴露实体 @RestController class UserController { @PutMapping("/api/v1/users/{id}") public ResponseEntity<?> update(@PathVariable Long id, @RequestBody UserReq req) { User saved = service.saveOrCreate(id, req); // 非幂等 if (saved == null) { return ResponseEntity.ok(Map.of("success", false, "message", "update fail")); } return ResponseEntity.ok(saved); // 返回内部字段 isDeleted } } 注意:无OpenAPI文档;分页limit允许负数;/user 与 /users 并存;JSON字段大小写混用。
期望的改进方向或约束:期望在不破坏v1现有兼容性的前提下统一契约:

  • 状态码与错误体采用统一规范(建议RFC7807或统一{code,message,traceId}结构),失败不再返回200。
  • 保持现有字段不删除,可新增字段;JSON风格统一为camelCase。
  • 明确PUT幂等语义,修复重复请求导致新增的问题。
  • 补齐分页/排序参数文档与服务端校验(limit默认20,上限100)。
  • 为副作用接口定义超时与重试策略(超时2s,最多重试1次,幂等保障)。
  • 在2个工作日内提交OpenAPI 3.0规范,自动生成SDK;不引入新网关组件。

优化表达

整体功能已经比较完整,进一步在契约一致性、错误处理和文档化方面做一些轻量不破坏兼容的调整,可以显著提升客户端可用性与排障效率。下面给出分层次、可逐步落地的优化建议:在保持 v1 客户端可用的前提下,统一状态码与错误体、明确 PUT 幂等语义、完善分页规则与参数校验、对敏感字段做可控的外露管理、补齐 OpenAPI 定义,同时为存在副作用的接口提供明确的超时与重试策略。


改进建议

  1. 统一状态码与错误返回(保持 v1 兼容)
  • 方案
    • 采用 RFC7807(application/problem+json)作为错误体,扩展字段包含 code 与 traceId。示例: { "type": "https://api.example.com/problems/validation-error", "title": "Invalid request parameters", "status": 400, "detail": "limit must be between 1 and 100", "code": "USR_001", "traceId": "a1b2c3d4" }
    • 失败不再返回 200:按语义返回 4xx/5xx。为平滑过渡,错误体额外保留 success=false(扩展字段),并在响应头加入 Deprecation: true 与 Sunset:
    • 成功状态码在 v1 做“最小变更统一”:GET/PUT/POST 成功统一 200(避免引入 201 带来的潜在兼容性风险);在响应头增加 Location(针对创建场景),并在 OpenAPI 标注未来版本将改为 201。
  • 控制器/全局异常处理(Spring 6+)
    • 使用 ProblemDetail 与 @ControllerAdvice 统一异常返回;从 MDC 注入 traceId。
    • 提供错误码枚举并映射到 type 与 code。
  1. 明确 PUT 幂等语义,避免重复请求新增
  • 方案
    • 改造 service.saveOrCreate -> service.updateOnly(id, req),不存在返回 404,不再 upsert。
    • 使用数据库唯一主键与版本号字段(version)保证并发一致性;返回 ETag,并支持 If-Match。
    • 对请求重复提交的防抖:可选支持 Idempotency-Key 请求头(写入幂等表,键=用户id+key),重复请求返回相同结果(200)。
  • 代码示例(片段) @PutMapping("/api/v1/users/{id}") public ResponseEntity update(@PathVariable Long id, @Valid @RequestBody UserUpdateRequest req, @RequestHeader(value = "If-Match", required = false) String ifMatch) { if (!service.exists(id)) { throw new NotFoundException("user not found", "USR_404"); } var updated = service.updateOnly(id, req, ifMatch); // 若版本冲突抛出 412 var dto = mapper.toResponse(updated); return ResponseEntity.ok() .eTag(""" + updated.getVersion() + """) .body(dto); }
  1. 分页与排序参数统一与校验
  • 方案
    • limit: 默认 20,上限 100;page: 默认 1,最小 1。非法参数返回 400(RFC7807 错误体)。
    • page 越界:保持 v1 行为返回 200 + 空数组,但补充分页元信息,便于客户端判断。
    • 响应统一结构: { "items": [ ... ], "page": 3, "limit": 20, "total": 245, "totalPages": 13, "hasNext": true }
    • 参数校验注解: @RequestParam(defaultValue = "20") @Min(1) @Max(100) Integer limit, @RequestParam(defaultValue = "1") @Min(1) Integer page
  1. 资源与字段命名一致性(兼容过渡)
  • 资源路径
    • 标准化使用 /api/v1/users;保留 /api/v1/user 作为别名,响应头加 Deprecation 与 Sunset,并在 OpenAPI 标注 deprecated。
  • JSON 命名
    • 对外响应统一 camelCase。
    • 请求体兼容 snake_case:在 DTO 字段添加 @JsonAlias("snake_case_name") 或自定义反序列化策略以同时接受两种风格。
  • 示例 public class UserUpdateRequest { @JsonAlias({"first_name"}) private String firstName; }
  1. 隐私/内部字段的对外暴露管理
  • 方案
    • 引入 DTO(UserResponse)与实体解耦;默认响应不包含 isDeleted、internalNote。
    • 为不破坏 v1 兼容性,短期内保留这两个字段,但在 OpenAPI 标为 deprecated,并在服务层统一填充策略(仅在需要时返回,或由 feature flag 控制)。同时在响应头加入 Deprecation 与计划 Sunset 日期。
    • 长期在 v2 完全移除。
  • 代码示例 public record UserResponse(Long id, String name, String email, @Deprecated Boolean isDeleted, @Deprecated String internalNote) {}
  1. /users/{id}/activate 的超时、重试与幂等保障
  • 方案
    • 维持 POST /api/v1/users/{id}/activate(动作语义)。约束:
      • 服务超时 2s(例如 Resilience4j TimeLimiter)。
      • 最多重试 1 次(指数退避),仅在可重试错误上触发。
      • 要求客户端携带 Idempotency-Key;服务端保存去重记录(key+userId),保证重试/超时重放的幂等。
    • 失败返回 4xx/5xx 的 RFC7807 错误体;若异步下游,返回 202 + operationId,提供查询状态接口(可选,后续迭代)。
  • 伪代码 @PostMapping("/api/v1/users/{id}/activate") @TimeLimiter(name="activateUser", timeoutDuration="2s") @Retry(name="activateUser", maxAttempts=2) public ResponseEntity activate(@PathVariable Long id, @RequestHeader("Idempotency-Key") String key) { ... }
  1. OpenAPI 3.0 定义与 SDK 生成(2 天内)
  • 方案
    • 引入 springdoc-openapi-starter-webmvc-ui,自动扫描生成 /v3/api-docs 与 Swagger UI。
    • 在 components.schemas 定义统一错误体 Problem,扩展 code 与 traceId;在 components.responses 中定义通用错误响应并在全局应用。
    • 标注 deprecated 的路径/字段;为分页参数添加 @Parameter 注解和默认值/范围。
    • 使用 openapi-generator 生成前端/Java SDK。
  • 任务拆分(建议)
    • Day 1:引入依赖、统一异常处理、完成 users 列表与 update 的契约定义与实现。
    • Day 2:补齐 activate、分页/排序与全局错误响应;生成并发布 SDK。
  1. 具体代码级别修正(针对示例片段)
  • 控制器返回 DTO + 正确状态码 @RestController class UserController { @PutMapping("/api/v1/users/{id}") public ResponseEntity<?> update(@PathVariable Long id, @Valid @RequestBody UserUpdateRequest req) { if (!service.exists(id)) { throw new NotFoundException("user not found", "USR_404"); } User updated = service.updateOnly(id, req); // 不再创建新记录 return ResponseEntity.ok(mapper.toResponse(updated)); // 不直接暴露实体 } }
  • 全局异常处理(简化示例) @ControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(AppException.class) public ResponseEntity handle(AppException ex, HttpServletRequest request) { ProblemDetail pd = ProblemDetail.forStatus(ex.getStatus()); pd.setTitle(ex.getTitle()); pd.setDetail(ex.getMessage()); pd.setProperty("code", ex.getCode()); pd.setProperty("traceId", Optional.ofNullable(MDC.get("traceId")).orElse(UUID.randomUUID().toString())); pd.setProperty("success", false); // 兼容字段 return ResponseEntity.status(ex.getStatus()).body(pd); } }

技术理由

  • RFC7807 标准化错误结构,使客户端可以仅凭 HTTP 状态与标准字段完成分支处理;扩展 code 与 traceId 能直达业务错误类型并快速关联日志。
  • 幂等的 PUT 可以避免网络抖动或重试导致的数据重复,配合 ETag/If-Match 能优雅处理并发写入与更新丢失。
  • 分页参数服务端校验能在入口处拦截无效请求,减少下游负载;统一的分页响应元信息让客户端无需“猜测”是否越界。
  • 路径与字段风格一致性降低前后端映射成本,@JsonAlias 允许在不破坏兼容性的情况下平滑迁移到 camelCase。
  • DTO 与实体解耦是避免内部字段外泄的根本手段;在 OpenAPI 标注 deprecated 并结合 Deprecation/Sunset 头,能给到明确的迁移窗口与预期。
  • 对副作用操作配置超时与有限重试可控制资源占用与雪崩风险;Idempotency-Key 能保障在重试/超时重放下的业务一致性。
  • OpenAPI 作为单一事实源可用于生成 SDK、Mock、契约测试,显著降低联调成本与回归缺陷。

预期效果

  • 客户端判断成功/失败将更直接(靠 HTTP 状态与标准错误体),错误定位可通过 traceId 快速闭环。
  • PUT 更新具备明确的幂等语义,重复请求不再新增记录,数据一致性风险显著降低。
  • 分页/排序行为可预期且自解释,越界与默认值清晰,减少参数类问题的沟通与返工。
  • API 命名与字段风格统一,降低心智负担;在不破坏 v1 的前提下逐步淘汰不一致用法。
  • 内部字段外露得到可控管理,逐步过渡到只暴露对业务必要的字段,提高安全性与清晰度。
  • 两个工作日内完成 OpenAPI 定义并生成 SDK,将显著提升前端开发效率,减少因契约不清导致的集成错误。

示例详情

📖 如何使用

30秒出活:复制 → 粘贴 → 搞定
与其花几十分钟和AI聊天、试错,不如直接复制这些经过千人验证的模板,修改几个 {{变量}} 就能立刻获得专业级输出。省下来的时间,足够你轻松享受两杯咖啡!
加载中...
💬 不会填参数?让 AI 反过来问你
不确定变量该填什么?一键转为对话模式,AI 会像资深顾问一样逐步引导你,问几个问题就能自动生成完美匹配你需求的定制结果。零门槛,开口就行。
转为对话模式
🚀 告别复制粘贴,Chat 里直接调用
无需切换,输入 / 唤醒 8000+ 专家级提示词。 插件将全站提示词库深度集成于 Chat 输入框。基于当前对话语境,系统智能推荐最契合的 Prompt 并自动完成参数化,让海量资源触手可及,从此彻底告别"手动搬运"。
即将推出
🔌 接口一调,提示词自己会进化
手动跑一次还行,跑一百次呢?通过 API 接口动态注入变量,接入批量评价引擎,让程序自动迭代出更高质量的提示词方案。Prompt 会自己进化,你只管收结果。
发布 API
🤖 一键变成你的专属 Agent 应用
不想每次都配参数?把这条提示词直接发布成独立 Agent,内嵌图片生成、参数优化等工具,分享链接就能用。给团队或客户一个"开箱即用"的完整方案。
创建 Agent

✅ 特性总结

一键将技术意见转化为专业友好、可执行的建设性反馈,降低抵触提升接受率
自动识别审查核心问题点并提炼重点,聚焦最影响质量与交付的改动
按标准模板生成完整反馈结构,含原始意见、优化表达、建议、理由与预期效果
为每个问题给出具体可行的修改步骤与示例,落地迅速,避免含糊其辞
灵活调整语气强度,从严谨到友善自如切换,匹配不同对象与团队文化
以正向表达替换批评性措辞,兼顾专业与鼓励,营造合作氛围与心理安全
逐条附带技术依据与收益说明,使建议更有说服力,便于团队形成共识
适配日常评审、新人指导、跨组协作等场景,统一反馈风格,降低沟通成本
通过结构化流程引导思考,避免遗漏关键点,提高审查效率与反馈质量

🎯 解决的问题

将生硬或负面倾向的代码审查意见,快速转化为专业、友好、且可执行的反馈;为每条意见自动补齐明确的修改建议、原因与预期收益;统一团队审查话术与输出结构,降低沟通摩擦;缩短合并周期、减少往返沟通、提升开发者体验与代码质量;适用于日常审查、新人带教、跨团队协作与质量治理场景,助力团队形成持续改进的文化与标准。

🕒 版本历史

当前版本
v2.1 2024-01-15
优化输出结构,增强情节连贯性
  • ✨ 新增章节节奏控制参数
  • 🔧 优化人物关系描述逻辑
  • 📝 改进主题深化引导语
  • 🎯 增强情节转折点设计
v2.0 2023-12-20
重构提示词架构,提升生成质量
  • 🚀 全新的提示词结构设计
  • 📊 增加输出格式化选项
  • 💡 优化角色塑造引导
v1.5 2023-11-10
修复已知问题,提升稳定性
  • 🐛 修复长文本处理bug
  • ⚡ 提升响应速度
v1.0 2023-10-01
首次发布
  • 🎉 初始版本上线
COMING SOON
版本历史追踪,即将启航
记录每一次提示词的进化与升级,敬请期待。

💬 用户评价

4.8
⭐⭐⭐⭐⭐
基于 28 条评价
5星
85%
4星
12%
3星
3%
👤
电商运营 - 张先生
⭐⭐⭐⭐⭐ 2025-01-15
双十一用这个提示词生成了20多张海报,效果非常好!点击率提升了35%,节省了大量设计时间。参数调整很灵活,能快速适配不同节日。
效果好 节省时间
👤
品牌设计师 - 李女士
⭐⭐⭐⭐⭐ 2025-01-10
作为设计师,这个提示词帮我快速生成创意方向,大大提升了工作效率。生成的海报氛围感很强,稍作调整就能直接使用。
创意好 专业
COMING SOON
用户评价与反馈系统,即将上线
倾听真实反馈,在这里留下您的使用心得,敬请期待。
加载中...
📋
提示词复制
在当前页面填写参数后直接复制: