代码评审与协作流程:完整实践与解答
需能阅读 Python 的列表、条件和除法。空列表评审案例同时提供原实现、候选修复和输入表:先追踪 average([]),再检查 [0] 是否仍返回 0.0,最后把触发条件、修改与复核写成意见。无需评审平台账号。 示例未在本轮执行;本页完整源码与README列出输入、阅读顺序和预期。
代码审查 完整补丁包
代码审查完整补丁包包含原实现、候选修复、输入案例和审查意见。示例未执行;零第三方依赖,阅读者可以静态追踪空列表时两份函数的行为差异。
代码审查 空列表练习
题目:average([])除以零如何写可执行的反馈?
参考答案
给出空列表输入、ZeroDivisionError及约定应返回None;指出候选修复只能处理空输入,不能据此声称支持字符串或非有限数字。
代码审查 反馈闭环
代码审查反馈闭环记录问题、作者回应、修复位置和复核结果。撤销一条错误意见应说明新证据;清理练习目录不修改真实PR,不把本地Markdown意见自动发布到外部系统。
完整源码、配置与输入
下列文件与仓库同源,包含完整实现和输入;不是运行证明。部分练习只需人工阅读配置,不强制构造模拟器。
before.py
python
def average(values):
return sum(values) / len(values)after.py
python
def average(values):
if not values:
return None
return sum(values) / len(values)cases.json
json
[{"input": [], "expected": null}, {"input": [2, 4], "expected": 3.0}, {"input": [0], "expected": 0.0}]review.md
markdown
# Review of a local candidate (not an external PR)
Contract: list of finite numbers; return arithmetic mean, or None for an empty list.
Finding: before.py divides by len([]), causing ZeroDivisionError for empty input.
Fix: after.py handles empty list before division. [0] is a nonempty list, so
its mean remains 0.0; the guard must not inspect sum(values) for truthiness.
Static trace: [] -> None; [2,4] -> 6/2; [0] -> 0/1.
Not executed. Neither implementation validates element types or finiteness.
Review status: candidate addresses the defined empty-list case only.requirements.txt
text
# Python 3.11+ standard library only. No review service or account.项目README与完整依赖
README提供前置、完整自跑或阅读方式、预期、失败案例与恢复清理。本轮没有执行任何示例、产品CLI、模型或外部API。
markdown
# 代码评审与协作流程:完整教学包
示例未执行。全部输入为教学虚构资料,不能用于真实账号、生产数据或外部系统。
## 前置与依赖
Python3.11以上语法阅读即可,不需要GitHub或Jira账号。
## 文件与输入
- `before.py`:本包完整文件。
- `after.py`:本包完整文件。
- `cases.json`:本包完整文件。
- `review.md`:本包完整文件。
- `requirements.txt`:本包完整文件。
## 读者将来自跑或阅读
复制本包所有文件到独立目录,在该目录作为当前工作目录。以下是读者自用资料,本轮禁止执行。
```text
只阅读before.py、after.py、cases.json与review.md,不执行函数。
```
## 正常预期
静态推导[]在before产生ZeroDivisionError而after返回None;[2,4]平均数3.0;[0]平均数0.0。
## 失败案例与恢复
把空列表判断改成if not sum(values)会错误处理[0];非数字和非有限值仍在本契约之外。
## 清理及能力边界
意见是本地Markdown,不外发;清理复制目录不会影响真实PR。
## 来源
- [官方依据](https://google.github.io/eng-practices/review/reviewer/looking-for.html)(2026-10-17资料核对;不是运行证明)依据与适用范围
- 本课官方依据,资料核对日2026-10-17。
本课完成的是列明任务的理论与静态资料,不代表产品全部能力或三平台运行通过。历史文档保留旧URL;涉及账号、版本、价格与界面位置时,以对应官方资料及实际授权环境为准。
继续阅读
- 代码评审与协作流程上手与对象