每周一天,关掉 AI 写代码:把 No AI Fridays 变成团队工程习惯

2026-09-01 36 预计阅读时间: 1 分钟
来源: oschina.net AI 摘要 Original link

Disclaimer: This article is an AI-assisted summary. Read it together with the original source when precision matters. The summary may omit context, version differences, or edge cases and is not official documentation.

预计阅读时间:8 分钟

AI 编程助手已经进入编辑器、终端和代码审查流程。它能快速生成样板代码,也能帮忙定位错误,但 Carson Gross 提出的 No AI Fridays 把问题换了一个角度:每周选一天,团队成员关闭 AI 编程助手,完全依靠自己写代码。

这并不是停止工作,也不是拒绝搜索引擎、文档或 Stack Overflow。重点是把“代码由谁思考和组织”重新交还给开发者。

这一天究竟在练什么

No AI Fridays 的价值不在于手写代码本身,而在于强制开发者重新经历完整的工程过程:

  • 先理解需求,再决定数据结构和接口。
  • 先阅读现有代码,再修改实现。
  • 遇到错误时,根据日志、文档和实验建立判断。
  • 在提交前自己检查边界条件、异常路径和测试覆盖。

AI 通常擅长把明确的问题快速变成代码,但真实项目里最费脑力的部分往往发生在代码生成之前:问题是否定义正确,改动是否符合系统约束,以及这个方案未来是否容易维护。

对熟悉 AI 辅助开发的人来说,一天不用自动补全,可能会明显变慢。这种不适感本身就是反馈:团队可以借此发现哪些成员已经不熟悉项目结构,哪些模块缺少文档,哪些测试只能依靠工具间接补出来。

不等于回到闭门造车

No AI Fridays 并没有要求开发者拒绝所有外部知识来源。可以继续使用:

  • 官方文档和本地代码注释
  • 搜索引擎与 Stack Overflow
  • 编译器、静态检查器和测试框架
  • 调试器、日志和性能分析工具
  • 团队成员之间的讨论

边界在于:不让 AI 编程助手替你生成、修改或解释当前任务中的代码。这样既保留了正常的软件工程工具链,也把关键的设计和推理过程留给人来完成。

这个边界需要团队自行定义。例如,是否允许使用 AI 搜索摘要,是否允许 AI 生成提交信息,是否允许运行已有的自动化代码审查,都可以在活动开始前写清楚。规则越明确,复盘越有价值。

可以这样落地

下面是一个可以改造到团队仓库中的最小实践。它不负责识别每个人使用了什么工具,而是通过环境变量和 CI 约定,让当天的检查结果可见。

假设项目使用 pytest,团队约定在 No AI Friday 设置 NO_AI_FRIDAY=1,并在提交前运行测试:

#!/usr/bin/env bash
set -euo pipefail

if [[ "${NO_AI_FRIDAY:-0}" != "1" ]]; then
  echo "普通开发日:运行标准检查"
else
  echo "No AI Friday:请确认本次代码由人工设计和编写"
fi

python -m pytest -q
python -m compileall -q src

将它保存为 scripts/no-ai-friday-check.sh,赋予执行权限后运行:

chmod +x scripts/no-ai-friday-check.sh
NO_AI_FRIDAY=1 ./scripts/no-ai-friday-check.sh

这段脚本不会也不应该充当“防作弊系统”。它的作用是把团队约定放进工作流,并提醒开发者在提交前完成一次有意识的人工检查。更重要的部分是提交说明和复盘,例如记录:

任务:为订单查询增加分页
我做的设计:使用 cursor 而不是 offset,避免数据变化导致重复结果
查阅的资料:数据库分页文档、项目内已有查询接口
遇到的问题:空 cursor 和非法 cursor 的错误响应不一致
后续改进:补充非法 cursor 的接口测试

如果团队使用 GitHub Actions 或其他 CI,可以把同样的命令放进工作流。不要把“是否使用 AI”当作自动化判定条件;自动化更适合验证测试、格式和构建是否通过。

一天之后要复盘什么

活动结束后,单纯统计“今天少写了多少行代码”没有太大意义。更值得讨论的是:

  1. 哪些任务在没有 AI 的情况下明显变慢?它们是设计复杂,还是项目文档不足?
  2. 哪些错误原本会被 AI 很快修正,但团队成员没有真正理解原因?
  3. 哪些代码自己写出来后更容易解释和维护?
  4. 哪些重复劳动适合继续交给 AI,哪些判断必须由人负责?

No AI Fridays 也有成本。简单任务可能会花更久,团队交付速度可能下降,参与者还可能因为规则模糊而产生争议。因此,它更适合作为定期的工程训练和反思机制,而不是长期禁止 AI 的开发制度。

采用清单

可以从每周半天开始,再决定是否扩展到一天:

  • 提前公布日期和适用范围。
  • 明确允许使用的工具与禁止的 AI 能力。
  • 保持正常的测试、构建、调试和代码审查流程。
  • 不用提交行数衡量活动效果。
  • 记录一个具体的设计决策和一个遇到的困难。
  • 活动后改进文档、测试或开发规范。

AI 不会因为一天不用就失去价值,开发者也不会因为使用 AI 就失去能力。真正值得保留的是切换能力:需要速度时使用合适的工具,需要理解系统时,也能独立完成思考、实现和验证。


相关推荐