尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

AI编码工程化:107页需求文档驱动,让代码生成可控可验

AI编码工程化:107页需求文档驱动,让代码生成可控可验 这次我们来看一个很有意思的项目TMOGWin11 版出自 Windows 任务管理器之父之手。它的核心卖点不是又做了一个 AI 编码 IDE而是用一份 107 页的文档把 AI 编码从“聊天式试错”变成了一套可执行、可验证的工程流程。为什么这件事值得关注因为现在 AI 编码工具已经够多了Cursor、GitHub Copilot、通义灵码、CodeGeeX随便都能列出七八个。但多数人的使用方式还停留在“给一句提示词让 AI 写个函数”。简单任务确实够用一旦涉及完整项目、业务规则、接口约定、验收标准AI 生成的结果就会飘改起来比手写还累。TMOG 换了一个思路先给 AI 一份足够结构化、足够详细的需求描述文档再让它动工。听起来朴素但恰恰是很多人忽略的关键环节。这篇文章会做四件事第一拆解 TMOG 的核心能力和适用边界第二讲清楚在 Win11 环境下怎么准备一套 AI 编码工作流第三给出一个可复用的需求文档模板和调用示例让 AI 编码能按模块产出第四说清楚怎么验证生成结果、排查问题以及如何把这种流程固化到团队里。适合的读者很明确经常用 AI 编码但在复杂项目里反复返工的人做技术管理、方案设计、需要评审 AI 产出的人以及想在公司内部或开源项目里建立“AI 编码规范”的团队。不写代码纯看热闹的可以跳过这篇内容默认你有基本编程基础。1. 核心能力速览先从公开信息角度把这个项目的关键特性列出来。需要提前说明TMOG 不是一个需要“双击启动”的本地服务它的核心资产是一份指导 AI 编码的文档规范实际效果要结合你选用的 AI 编码工具来验证。能力项说明项目类型AI 编码流程与需求描述规范项目作者背景Windows 任务管理器之父系统工具老将核心资产107 页 AI 编码需求描述文档目标平台优先面向 Win11方法论可迁移到其他系统主要解决的问题AI 编码需求不明确、上下文不足、生成结果不可控启动方式不需要传统服务进程文档即指南配合 AI 编码工具使用是否支持 API不直接提供 API可结合 Cursor、Copilot 等工具的 API 或 CLI 使用是否支持批量任务不支持内置队列但可通过脚本、CI 流程将文档拆解成批量任务显存要求不涉及模型推理显存需求取决于你选用云端 AI 服务还是本地大模型适合场景需求分析、代码生成、代码审查、团队 AI 编码规范建设从材料能明确看到的亮点有两个一是作者身份系统级开发者亲自推动 AI 编码规范说明这套东西不是学术空谈而是有工程背景的人在实践中沉淀的方法二是“107 页文档”这个体量意味着它不是在讲“怎么用提示词”而是在建立一套完整的、可评审的 AI 编码描述体系。2. 适用场景与使用边界TMOG 这种文档驱动的方式解决的是 AI 编码中最容易被低估的问题需求描述能力。同样让 AI 写一个订单管理模块说法不同结果完全不同。先说适合谁。个人开发者可以用它来管理自己的项目需求尤其是在做中期项目、工具脚本或开源模块时写一份结构化的需求文档AI 生成代码的连贯性会明显提高。技术团队更适合因为团队协作最怕需求口头化、代码理解成本高如果需求文档足够清晰AI 编码、代码审查、新人交接都会顺畅很多。学生做毕业设计、课程项目也可以参考把系统功能、接口、数据表结构写明白AI 编码的效率会明显高于“帮我做个商城”这种模糊提示。再说不适合什么。如果只是临时生成一个排序函数、转换一个小工具套用 107 页文档的流程是过度设计。完全不懂编程的人也不适合直接用这套流程因为你需要具备判断 AI 代码是否正确、是否安全、是否可维护的能力。文档再详细也替代不了人的工程判断力。使用边界必须强调。AI 编码涉及几个合规问题第一企业代码不要随意粘贴到云端 AI 工具里尤其是涉及核心业务逻辑、用户数据、密钥信息时优先使用私有化部署方案或者至少做脱敏处理。第二开源项目要检查许可证AI 生成的代码也不能默认“无版权风险”。第三不能使用 AI 生成恶意代码、绕过安全限制的代码或用于违法活动的工具。第四face 识别、声音克隆、批量数据处理等场景必须确认素材授权和隐私合规。这些不是套话是实际落地时必须过的关卡。3. Win11 环境准备与前置条件TMOG 的 Win11 版意味着文档和配套流程会针对 Windows 11 环境做适配。不管具体适配了多少我们先从工程实践角度把一套可跑的 AI 编码环境准备好。操作系统层面建议使用 Windows 11 正式版并把系统更新到最新补丁。Win11 的版本迭代比较频繁不同版本在终端、WSL、Docker 支持上有差异。推荐在“设置 - Windows 更新”里检查更新保持系统处于受支持状态。如果遇到任务管理器进程空白、任务管理器已被管理员禁用这类系统问题先修复系统再谈编码流程。工具链层面需要准备四类基础组件组件作用建议终端执行命令、跑脚本Windows Terminal PowerShell 7IDE编写和审查代码VS Code 或 JetBrains 系 IDEAI 编码插件代码生成、补全、解释Cursor、GitHub Copilot、通义灵码、CodeGeeX 任选版本管理管理文档和代码Git语言运行时看项目而定。Python 项目装 Python 3.10Node 项目装 Node.js 18.NET 项目装对应 SDK。如果项目需要在 Linux 环境编译或部署建议启用 WSL2在 Win11 下开 WSL 非常方便。硬件方面如果只用云端 AI 编码工具一台 8 核 CPU、16GB 内存的机器就够了主要开销在 IDE、插件和浏览器。如果要跑本地大模型做编码辅助那就要看模型规模和量化方式了显存占用从 6GB 到 24GB 都有可能必须按实际环境测试不要轻信“4G 显存能跑 7B 模型”这种说法。磁盘空间给代码仓库、依赖缓存、本地模型预留 20GB 以上比较稳妥。还有一个小但重要的设置开启 Windows 开发者模式。Win11 的“设置 - 隐私和安全性 - 开发者选项”里可以打开方便安装未签名应用、使用符号链接等开发功能。另外PowerShell 执行策略如果限制脚本运行会出现命令能手动敲但脚本跑不起来的问题可以按项目需要设置但不建议直接全局绕过安全策略。4. 107 页文档的价值拆解它是怎么让 AI 编码变可控的TMOG 最有辨识度的资产是那份 107 页的文档。虽然我们拿不到原始全文但可以结合 AI 编码的工作原理来分析它为什么有效。AI 编码工具的本质是一个“上下文预测器”。你给的信息越完整、越结构化它生成的代码就越接近预期。一句话提示词的问题在于信息量太少AI 只能靠训练分布里的“平均答案”来生成代码而你的项目大概率不在那个平均分布里。107 页文档的本质是把软件工程中的需求分析、概要设计、接口约定、验收标准全部转换成 AI 可以阅读和处理的结构化文本。从工程实践角度这样一份文档通常会覆盖以下几个模块第一项目背景与目标。AI 需要知道“为什么做这个系统”才能判断代码该在什么层面设计。纯功能列表无法传达业务优先级。第二用户画像与使用场景。包括谁在用、在什么设备上用、使用频率多高。这个信息会影响交互设计和性能目标。第三功能需求列表。每项功能需要有编号、名称、优先级、依赖关系、详细描述。给 AI 一个“功能编号”相当于给它一个需求追踪锚点。第四业务规则与边界条件。比如订单超时怎么处理、权限不足怎么响应、并发冲突怎么解决。边界条件往往是 AI 编码最薄弱的地方文档里写清楚AI 就能在生成代码时主动处理异常。第五系统架构与技术选型。前端用什么框架、后端是什么结构、数据库选型、缓存方案、消息队列。不给架构约束AI 可能用某种很偏门的方式实现或者频繁切换风格。第六接口定义。请求方法、路径、参数类型、返回结构、错误码、鉴权方式。接口定义越精确前后端联调成本越低AI 生成接口代码的准确性也越高。第七数据结构与存储设计。数据表、字段、索引、枚举值、状态流转。这部分直接决定 AI 能不能生成与数据库一致的操作代码。第八非功能需求。性能指标、安全要求、可维护性标准。比如“接口响应时间不超过 500ms”“输入参数必须做合法性校验”这些约束会明显改变 AI 的代码风格。第九验收标准与测试用例。每条功能对应什么测试场景、预期结果是什么。AI 看到验收标准相当于拿到了“生成代码后如何自测”的说明。第十部署与运维要求。运行环境、启动命令、环境变量、日志规范、监控需求。这一块直接影响 AI 生成的代码是否具备可交付性。第十一风险与待定项。把尚未确定的技术点、业务模糊点写清楚避免 AI 在不确定的情况下自作主张。这些模块单独拿出来都不算新概念但集合成 107 页的结构化文档意义就不一样了。它相当于把传统软件工程中的“需求规格说明书 SRS”改造为“AI 可执行的编码上下文”让 AI 从“解题”变成了“按规格施工”。容易踩的坑是有人拿到 107 页文档后直接把全部内容塞给 AI 工具。这会撞上上下文窗口限制生成质量反而下降。更合理的做法是把文档拆成多个模块按模块生成代码每个模块的 prompt 都引用对应的文档章节而不是一次性全给。5. 从文档到代码AI 编码工作流实操示例理解了文档的价值接下来看怎么把它接入真实的 AI 编码工具。这里以通用流程为例不绑定具体产品因为不同工具的文档引用方式不同但思路是通用的。第一步把需求文档放进项目仓库。建立一个docs/目录把 TMOG 风格的需求文档命名为requirements.md并提交到 Git。把文档和代码放在同一个仓库后续改需求、改代码才能同步追溯。第二步让 AI 先读文档再给方案。不管用 Cursor、Copilot 还是其他工具第一步不要让它写代码而是让它“阅读文档并输出实现计划”。这样可以提前发现需求理解偏差避免代码写完再推翻。下面是一段通用的提示词模板可以直接修改使用你是本项目的资深工程师。请先阅读 docs/requirements.md 中“功能需求”和“接口定义”两个章节。 然后按以下顺序输出 1. 技术方案摘要包括模块划分和核心设计思路 2. 需要新增或修改的文件列表 3. 关键接口的伪代码或签名定义 4. 需要编写的测试用例清单。 现在先不要写完整代码等待方案确认后再开工。第三步按模块生成代码。方案确认后把需求文档拆成功能模块逐块让 AI 实现。每块的提示词都应该包含功能编号、所属文档章节、输入输出要求、验收标准。例如请实现功能 REQ-102“用户登录接口”。 要求在 docs/requirements.md 的第 4.2 节“接口定义”中查看: - POST /api/login - 参数username, password - 返回token、用户基本信息 - 错误码1001 参数错误1002 用户不存在1003 密码错误 - 校验规则用户名长度 3-32密码长度 8-64密码需要加密存储 实现语言Python FastAPI 请同时生成 pytest 单元测试覆盖正常登录、密码错误、参数缺失三个场景。第四步人工审查。AI 生成代码后必须做代码审查。重点看边界条件是否处理、错误码是否符合文档定义、数据库操作有无事务处理、密钥和敏感信息是否硬编码、异常路径是否会导致资源泄漏。为了让 AI 生成的代码更方便审查可以在提示词里要求 AI 输出“变更影响说明”例如代码生成后额外输出 - 本次修改涉及的文件 - 对既有接口的兼容性影响 - 潜在的性能风险点 - 需要补充的测试用例。这部分做得好审查成本会明显下降。第六步把验证结果回流到文档。AI 生成代码总会暴露一些需求描述没覆盖到的地方这时不要只改代码要同步更新需求文档。下一次 AI 编码时文档已经包含了这次踩坑得到的约束条件。6. 功能测试与效果验证怎么判断 AI 编码有没有真的变好很多人对 AI 编码的评价停留在“看起来能跑”这不够。TMOG 的文档驱动思路最终要落到验证上。建议用下面这套流程验证 AI 编码效果。先做一个基线实验。选一个你熟悉的中等复杂度功能比如“用户注册 邮件验证”或“文件上传 格式检查”。第一种方式直接用一句话提示词让 AI 实现。第二种方式先写一份 1-2 页的结构化需求描述再让 AI 实现。记录这几项数据生成轮数、代码审查发现的问题数、人工修改耗时、测试通过率。这个实验能直观看到文档描述带来的差异也是你判断 TMOG 模式适不适合自己的依据。再验证生成代码的质量。可以按以下清单逐项检查检查项说明功能完整性是否覆盖需求文档中的所有功能编号边界条件空值、超长输入、并发冲突、超时处理错误处理是否返回约定的错误码而不是直接崩溃安全合规有无 SQL 注入、路径穿越、敏感信息硬编码可测试性是否容易写单元测试和集成测试可维护性命名是否清晰、函数是否过长、结构是否合理接口测试可以用 curl 或 Postman 验证。比如需求文档定义了登录接口的返回结构就用实际请求验证curl -X POST http://127.0.0.1:8000/api/login \ -H Content-Type: application/json \ -d {username:testuser,password:testpass123}判断标准是响应状态码、响应体字段、错误场景下的返回结果是否符合文档定义。除了功能测试还要观察稳定性。同一个功能让 AI 生成三次看代码风格是否一致、方案是否漂移。文档描述越结构化结果越稳定。如果三次生成差别很大说明需求文档里的约束条件还不够具体需要补充技术选型或代码规范约束。7. 把 AI 编码流程工程化接口调用与批量任务TMOG 本身不提供 API但如果要把这套流程推广到团队或自动化流水线里可以结合 AI 编码工具提供的接口或 CLI 来做。这里给出通用设计思路具体接口地址和参数需根据你选用的工具调整。先把需求文档入库。推荐放在 Git 仓库的requirements/目录一个功能模块一个 Markdown 文件。例如requirements/ 01-login.md 02-user-profile.md 03-order-manage.md然后写一个脚本读取这些文件逐个调用 AI 编码接口或 CLI生成代码并运行测试。下面是一个通用 Python 调用示例模板import os import requests # 通用示例从需求文档目录读取内容并调用 AI 编码接口 # 实际接口地址、鉴权方式以你的 AI 编码服务为准本段代码不可直接用于生产 API_URL https://your-ai-codegen-endpoint/api/generate API_KEY os.environ.get(AI_CODE_API_KEY) def generate_code_by_doc(doc_path: str): with open(doc_path, encodingutf-8) as f: doc_text f.read() payload { prompt: ( 你是一名高级软件工程师。请根据以下需求文档生成完整代码\n\n f{doc_text}\n\n 要求\n 1. 输出文件清单和代码\n 2. 包含必要的单元测试\n 3. 代码风格保持一致\n ), max_tokens: 4000, temperature: 0.2 } resp requests.post( API_URL, headers{Authorization: fBearer {API_KEY}}, jsonpayload, timeout120, ) return resp.json() if __name__ __main__: doc_dir ./requirements for filename in os.listdir(doc_dir): if filename.endswith(.md): print(fProcessing {filename}) result generate_code_by_doc(os.path.join(doc_dir, filename)) print(result)如果想用命令行工具批量流程更简单# 伪代码示例遍历需求文档目录并调用 AI 编码 CLI for doc in ./requirements/*.md; do echo Processing $doc # 替换为实际可用的 AI 编码 CLI 命令 # ai-codegen --prompt $(cat $doc) --output ./generated echo Finished $doc done批量任务里最容易出问题的不是代码生成本身而是任务编排。建议做好三件事第一给每个任务加超时时间防止单个请求无限等待第二把失败任务记录到日志文件支持手动重放第三限制并发数避免一次性发太多请求触发服务限流。生成完代码后必须接上自动测试和静态检查比如 Python 项目的pytest和ruff、Node 项目的eslint让机器判断基础质量后再人工介入。8. 资源占用与性能观察AI 编码的资源占用分三种情况云端服务、本地大模型、纯 IDE 补全。TMOG 的文档流程本身几乎不耗资源真正耗资源的是 AI 编码工具链。用云端服务时本机资源占用主要来自 IDE、插件、浏览器和网络请求。观察方式很简单按Ctrl Shift Esc打开任务管理器看 CPU、内存、网络占比。如果长时间高占用但不执行任务可能是插件后台索引或同步可以检查 IDE 的索引任务。用本地大模型时显存占用是核心指标。但必须强调不同模型、不同量化精度、不同上下文长度下显存占用差异极大。以本地编码模型为例同样是 7B 模型FP16 和 INT4 的显存需求可以差一倍以上。建议用nvidia-smi或者任务管理器的 GPU 面板观察。不要盲信别人给的数字要以自己的运行环境为准。影响资源占用和响应速度的主要因素有几个需求文档输入长度、生成代码长度、并行请求数、模型上下文窗口。107 页文档如果直接全文发送可能出现上下文溢出或者响应时间急剧上升。更合理的做法是每次只发送当前功能模块对应的文档片段用一个主 prompt 指向文档路径让 AI 自己按需查询上下文或者由脚本切分后分次发送。优化建议第一按功能模块拆分需求文档一个模块控制在 1-2 页避免单次输入过长第二用temperature低的参数控制代码风格稳定一般 0.2 以下比较合适第三批量任务别开满并发先跑 3-5 个任务观察耗时和资源占用再决定并发数第四本地模型优先选量化版本但要看具体工具兼容性稳定优先于极限省显存。如果任务管理器本身打不开或进程空白先从系统层面排查比如检查系统更新、重置任务管理器组件或者用sfc /scannow修复系统文件。系统环境不稳定时AI 编码的体验也会很不可靠。9. 常见问题与排查方法AI 编码流程涉及多个环节每个环节都可能有坑。下面按实际使用频率列出常见问题。问题现象可能原因排查方式解决方案生成代码和需求文档不一致提示词未引用文档关键章节或文档表述有歧义检查这次 prompt 是否包含了对应需求编号提示词中明确引用功能编号和文档章节按模块生成AI 工具无法处理长文档上下文窗口超限查看工具日志或报错信息将文档拆分为模块分段发送或用工具自带的文档索引能力生成的代码编译失败缺少依赖或技术栈配置不明确查看编译错误日志在需求文档中写明依赖、运行环境、启动命令单元测试不通过需求中的边界条件没有转换为测试用例对比测试用例和需求文档让 AI 先生成测试用例确认覆盖后再生成实现代码API 调用失败接口路径、鉴权、限流问题查看返回码和服务日志确认请求参数和鉴权头增加超时和重试批量任务卡住单个请求无超时重试机制缺失查看日志定位卡住的任务给每个请求加超时记录失败任务并支持重放生成代码风格混乱没有在文档中定义代码规范抽取多个生成结果对比文档中加入编码规范章节并在 prompt 中强调遵循规范Win11 下脚本无法运行PowerShell 执行策略限制查看终端错误提示遵循安全策略目标进程使用正确的执行策略或开发模式最容易忽略的是“文档版本”问题。开发过程中如果文档更新了代码还停留在旧版描述上就会出现“AI 编码越改越乱”的情况。解决方式是文档和代码同步提交、同步 review回到第 5 节的流程改需求文档和改代码不分离。10. 最佳实践与使用建议把 TMOG 的思路落进日常开发建议按以下顺序推进。先从小项目验证。不要一上来就把整个系统到处让 AI 生成选一个中等复杂度的模块跑通全流程写文档、生成代码、测试、审查。重点看两件事生成质量是否达到可用水平以及修改成本是否比手写低。如果小项目效果好再推广到核心模块。保留一套最小可运行配置。把需求文档模板、提示词模板、测试命令、AI 编码工具配置全部放进项目仓库做成团队可复制的模板而不是留在个人记忆里。例如project/ docs/ requirements/ 00-template.md prompts/ generate-code.md review-code.md scripts/ batch-generate.py run-tests.sh给需求文档里的每个功能加编号。这是最便宜、最有效的改进。有编号之后prompt 里的引用、测试用例的追踪、代码里注释的关联都变得可操作。AI 编码最怕的就是“这个需求”这种无法定位的表述。强调人工 review 不可省。AI 编码工具生成代码效率高但它不理解你的业务上下文也不知道哪些代码不能碰。架构设计、安全策略、核心业务规则必须由人来定。可以把 AI 定位成“高速实现的初级工程师”而不是“自动决策的高级架构师”。注意合规。企业内部项目优先评估数据出域风险核心代码可以脱敏后再用云端工具或者使用私有化部署模型。开源项目要保留许可证信息不能因为代码是 AI 生成的就不做版权检查。涉及批量采集、个人信息、人脸、声音等数据时先确认授权链条是否完整再进入生成流程。最后团队推广时不要只发文档。找一个实际需求现场演示“写文档 - AI 生成 - 代码审查 - 测试通过”的完整链路比讲一百页方法论更有效。慢慢把个人习惯沉淀成团队标准。11. 总结与下一步TMOG 最有价值的地方是把“AI 编码需求描述”从玄学变成了可操作的工程规范。它不试图替代 AI 编码工具而是补上了工具之上容易被忽略的一层需求描述层。系统底层的开发者来做这件事本身就说明这个方向值得认真对待。建议你先做三件事第一选一个你熟悉的功能模块按这份文章里的文档模板写一份 1-2 页的需求描述第二用你常用的 AI 编码工具按模块生成代码对比一下过去“一句话提示词”的生成效果第三把测试用例放进 prompt强制 AI 先写测试再写实现这是投入产出比最高的一步。最容易踩的坑不是文档内容不够而是文档太长导致上下文溢出、或文档和代码脱节。先把文档拆小、编号、同步更新比追求一个“完美的大文档”更实际。后续可以继续扩展的方向很多把需求文档接入 CI 流水线生成代码后自动跑测试用本地大模型做私有化编码辅助避免代码出域做一套团队内部的 AI 编码评测集用统一用例评估不同模型的编码能力甚至可以把文档驱动的思路用到代码审查、接口文档生成、自动化测试生成这些相邻环节里。这份文档方法建议收藏备用等需要把 AI 编码从“玩具”变成“生产力工具”的时候拿出来照着做一遍比临时调 prompt 更省心。
返回列表