发布时间:2026/8/25 16:12:09
如何构建自己的“ Harness ” 干货长文预警。很多人让 AI 写代码已经驾轻就熟但让 AI 稳定地产出能上生产的代码是另一回事。这篇文章我拿一个真实例子——RBAC 权限系统用户-角色-权限——把完整工作流拆开每一步为什么这么做、具体怎么做、有什么坑。全流程真实可复用不灌水。先回答为什么你用 AI 越用越乱先别急着看方法先对号入座——你有没有这些感觉AI 写出来的东西不敢合合了怕出问题AI 换个会话就什么都不记得上次定的方案全作废AI 偶尔会把手头代码越改越乱回退都找不到原样大项目让 AI 接手拆不动、接不住。如果你中了两条以上问题不在 AI而在你没有一套流程。先说一个贯穿全文的观点AI 很好用但它的可靠性是挣出来的不是给出来的。AI 有三件事天生做不好验证不了自己写的代码、记不住上次的决策、偶尔会回退或误删。而这篇文章里的每一步本质上都是在补这三个洞。总览我的 AI 开发流水线先记住这张图后面每一步都是它的展开一句话记住它先让 AI 有地可依环境再让它方向不偏设计然后让它每一步可验证TDD最后让代码落袋为安git CI。技术栈很常规你大概率都熟后端Node.js前端Vue3 Vite UnoCSS Naive UIUI 组件由uipro统一规范。选 RBAC 当例子是因为它足够真实——权限做错了是要出事的最考验流程靠不靠谱。第一步搭环境——让 AI 的产出能被验证为什么这是第一步AI 有个致命短板它自己证明不了代码对不对。你让它改一个接口它说改好了但你能不能放心取决于你能不能立刻验证。所以第一步不是写代码而是给 AI 搭一个实验台。怎么做三件套gitAI 敢大胆动手的前提。一切可回退、可对比、可审查coding agent执行器Claude Code、Codex 等负责理解需求、写代码、跑测试test-env用Docker 本地数据构建的开发环境。test-env 有三个硬性要求缺一个都不合格要求含义反例可重建环境坏了删掉一键重建手修了一个下午的数据库确定性每次起来都是同一套初始状态测试数据被人改过测出幻觉 bug隔离AI 在独立环境里随便折腾直连生产库一次误删全完记住这条红线千万不要直连生产库。AI 的一次误操作对生产数据来说是不可逆的——这条写进项目的规矩里比写进人的自觉里更可靠。技术规约也在这里定环境搭好的同时把技术规约定下来它是给 AI 的宪法架构前后端分离apiweb技术栈Node Vue3 Vite UnoCSS Naive UIUI 规范由uipro统一约束组件保证 AI 产出的界面风格一致、组件可复用。目录怎么摆整个示例系统的目录这一步就定死——它决定了 AI 往哪里写代码rbac/├── api/ # 后端Node.js│ ├── src/│ │ ├── routes/ # 接口层用户 / 角色 / 权限 的 HTTP 接口│ │ ├── services/ # 业务层分配角色、权限校验│ │ └── models/ # 数据模型ORM对应 migrations 的表│ ├── migrations/ # SQL 版本管理schema 变更像代码一样走 git│ │ ├── 001_create_user.sql│ │ ├── 002_create_role.sql│ │ ├── 003_create_permission.sql│ │ ├── 004_create_user_role.sql│ │ └── 005_create_role_permission.sql│ └── tests/ # TDD 测试├── web/ # 前端Vue3 Vite UnoCSS Naive UI│ └── src/│ ├── pages/ # 页面│ ├── components/ # 组件由 uipro 统一规范│ └── api/ # 调后端的 HTTP 客户端├── test-env/ # Docker 本地开发环境本地数据│ ├── docker-compose.test.yml│ └── init/ # 按序执行 migrations 灌种子数据└── docs/ # 技术规约、设计文档这一段的关键认知数据模型不只是 ORM 代码还要有migrations/——每处 schema 变更就是一个带序号的 SQL 文件走 git、可回滚、可追溯。schema 也是代码别让它脱离版本控制。api 和 web 怎么衔接很多团队在这里含糊我讲清楚web 永远不直接碰数据库只通过 HTTP 调api的 REST 接口。用户登录后api 签发 JWTweb 之后每个请求都带上 tokenapi 在路由层做权限校验没有权限返回 403。web 侧也有路由守卫、菜单按权限显示这类前端控制但它只是体验优化——真正的安全边界在 api 侧前端可以被绕过api 不能。想通这一点你才知道安全测试该写在哪一层。第二步设计先行——别让 AI 在流沙上盖楼为什么很多人让 AI 上来就写代码这是最大的坑开发完了才发现方向错了前面的投入全白费。AI 每个会话都失忆如果你连设计都靠嘴说它写着写着就偏了。怎么做我坚持先用superpowers把需求和设计确认好再动手用brainstorming把做什么、为什么、边界在哪想清楚产出设计文档架构、数据模型、接口、页面然后才进开发。RBAC 这一步要确认的东西权限点怎么划分、角色能不能叠加、无角色用户怎么办、哪些页面需要哪些权限……这些不确定就开发等于让 AI 在流沙上盖楼。记住这条经验设计阶段多花的时间会在开发阶段成倍省回来。第三步TDD 开发——给 AI 一份需求契约设计确认后进入开发推荐使用TDD做法是按功能点推进一个功能点一套红 → 绿 → 重构。为什么 TDD 对 AI 开发尤其重要因为测试是给 AI 的唯一一份需求契约它不记得开会内容但它能读懂这个函数必须通过这组测试。测试红了它知道要实现测试绿了它知道做完了。RBAC 里最典型的就是权限校验——永远先写测试// 红先写测试此刻实现还不存在describe(requirePermission, () { it(有权限的请求放行, () { withUser({ role: admin }) const handler requirePermission(user:create, () ok) expect(handler()).toBe(ok) }) it(无权限的请求返回 403, () { withUser({ role: viewer }) const handler requirePermission(user:create, () ok) expect(() handler()).toThrowError(/403/) })})测试红了 → 让 agent 实现 → 变绿 → 重构。每完成一个功能点、测试全绿才进下一个。测试不仅是给 AI 的契约也是你后面验收时的依据。第四步代码评审——从三个角度挑刺功能写完不直接验收先过code-review我从三个角度审性能有没有明显的慢操作、N1 查询、无谓的重复计算安全权限校验能不能被绕过、参数校验漏没漏、有没有注入风险功能是否真正满足需求边界场景无权限、重复分配、空角色有没有覆盖。RBAC 的评审重点是安全——权限矩阵是否完备、有没有绕过路径。这个角度错了上线就是事故。一个建议写代码的和审代码的分开。让 AI 审自己的代码等于让运动员兼裁判换一个 agent 来挑刺它没有维护自己产出的包袱能狠得下心。第五步用户验收——需求和代码的唯一对账评审通过后进入用户验收。我把功能点摆给用户看验收通过 → 这个功能点落袋有调整 → 回到开发流程迭代改完再评再验。记住验收是一个循环不是一个终点。它是需求和代码之间唯一的对账动作——评审保证代码写得对验收保证做的东西是想要的两件事不能互相替代。第六步提交 推送——防止 AI回退的最后防线一个很多人在意的细节功能点验收通过就立即提交代码。但这还不够我有个习惯审核通过的功能不仅提交还要推送远程仓库。为什么防止 AI 回退。AI 在后续迭代中可能误改或回退掉已验证的代码——如果只在本地万一丢了就是不可恢复的损失。所以先落袋为安把已验证的代码推上远程作为安全基线。后面 AI 再怎么折腾都有这个基线可以回到原点。hooks 自动推 CI/CD推送之后hooks自动触发 CI/CD 部署push → hook 触发 → 拉代码 → 起 test-env → 跑测试 → 构建 → 部署又一个前后呼应CI 跑的环境就是第一步搭的那套 test-env数据库 schema 是同一套 migrations。验证机制从本地习惯变成了强制流程——这就是生产可部署和原型的分水岭原型靠运气生产靠流水线。第七步上下文管理——给 AI 装持久记忆最后一步也最容易被忽略。AI 会话是失忆的我用wdp-ctx当项目记忆。项目启动建一份profile把会长期不变的东西固化下来至少四类技术规约架构决策、技术栈、UI 规范——AI 照它写才不会越写越偏业务 skills业务规则与方法如权限点怎么命名角色叠加取什么策略——AI 照它判才不会想当然工具 skills项目用哪些技能、各在什么场景调用TDD、评审、画图——AI 照它选才不会用错方法运行方式与已知坑怎么起环境、怎么跑测试、踩过哪些雷——AI 照它执行才不会重蹈覆辙。每个阶段收尾跑一次sum固化进度为快照新开会话用init一键载入无缝接续收工 /wdp-ctx sum# 把今天的进展和决策固化下来开工 /wdp-ctx init # 新会话载入全貌无缝接续记住让决策跨会话存活AI 才真正变成长期的生产力而不是一段用完即弃的对话。推荐阅读原文给 AI 开发找个简单的记忆方案避坑清单这 7 条我踩过坑才总结出来#规则防止什么1验收通过立即提交并推送远程防 AI 回退代码落袋为安2先用 superpowers确认需求和设计再开发防方向错误别开发完才发现做错了3本地数据 Docker开发环境绝不直连生产库防误删、防污染误操作不可逆4上下文当日用品profile 启动建、sum 阶段收尾跑、init 新会话接续防换会话就断片5按复杂度分级选工具简单直接 agent中等走 skill复杂上子代理/工作流防止杀鸡用牛刀 / 拿菜刀砍大树6写和审分开交付前给 AI 戴技术专家/业务专家角色终审防止自说自话堵住盲区7技术图用archify轻量图用Mermaid让图也可验证、可维护你现在就能开始做的 3 件事别想着一步到位从最小闭环开始搭一个最小环境半天一个 Docker test-env 一份技术规约。环境能一键重建这是后面所有步骤的地基挑一个小功能走一遍 TDD一天先写测试 → 让 agent 实现 → 变绿。感受一下每一步有据可依是什么体验项目启动就建一个 wdp-ctx profile每个阶段收尾sum一次。等你要换会话接续时你会感谢这个习惯。最后总结把流程当工作台而不是负担回顾这条完整流水线每一站单独看都不复杂真正的价值在串成一条流水线环境保证能验证设计先行保证方向不偏TDD 保证每一步有据可依评审保证有人挑刺验收保证需求和代码对齐提交推送保证代码落袋为安CI 保证强制验证上下文保证决策不丢。AI 开发不是丢一句话让它写而是用一套流程把 AI 的不可靠性兜住。当你发现 AI 的产出可以被验证、被接续、被审查时它就从玩具变成了真正能部署上生产线的生产力。这套流程用到的工具superpowers设计 TDD、code-reviewer评审、wdp-ctx上下文管理、archify架构图、uiproUI 规范。都是开源或常见的技能/插件你可以按自己的栈替换——方法比工具重要但工具能让方法落地。

相关新闻

2026/8/25 16:07:08

装修还没开工,AI已经替你把坑踩了一遍

装修这件事,大概是成年人世界里最让人头疼的“必修课”之一。 你刚拿到新房钥匙,满心欢喜地开始看效果图、选风格、谈装修公司。设计师给你看的效果图美得让你心动——无主灯设计、满墙收纳柜、开放式厨房、艺术吊顶……每一个细节都像是理想中家的模样…

2026/8/25 16:07:08

Linux 驱动研究 —— SDIO (5)

1. 计算机体系“总线”与 Linux 驱动“总线” 1.1 硬件电路上的“总线”1.2 内核驱动架构中的“总线”1.3 两者的映射关系与本质区别1.4 狭义共享总线与广义 Linux 驱动总线的区别 1.4.1 计算机系统结构中对总线的严格定义1.4.2 物理接口泛化为 bus_type 1.5 物理可枚举总线 与…

2026/8/25 18:23:03

LoadRunner 12.02 性能测试实战:从脚本录制到瓶颈分析全流程指南

1. 项目概述:性能测试的“老将”与新手的“敲门砖”LoadRunner,这个名字在性能测试领域,几乎等同于一个时代的代名词。即便在云原生和微服务架构大行其道的今天,LoadRunner 12.02 作为一款经典的商业性能测试工具,依然…

2026/8/25 18:23:03

期中考试深度复盘:从项目化备考到考后价值榨取的系统策略

1. 项目概述:一次期中考试的深度复盘与策略重构“MID-TERM EXAMINATION 1”,这个标题看起来平平无奇,不就是一次普通的期中考试吗?如果你这么想,那就错过了它背后巨大的价值。作为一名在教育一线摸爬滚打了十多年的“老…

2026/8/25 18:23:03

AGI驱动工业变革:多模态感知与智能体架构实战解析

最近,很多开发者都在讨论一个词:AGI(通用人工智能)。它不再是科幻电影里的遥远概念,而是开始以一种前所未有的方式,冲击我们最熟悉的领域——工业制造。你可能已经习惯了用AI来优化某个算法、识别一张图片&…

2026/8/25 18:23:03

Deepseek Harness本地部署指南:从环境配置到AI编码助手实战

在实际 AI 开发与集成项目中,本地运行一个稳定、可控的代码生成与辅助工具链是提升效率的关键。Deepseek Harness 作为一个集成了先进大语言模型能力的本地开发工具,能够在不依赖外部网络服务的情况下,提供代码补全、解释、重构和调试建议&am…

2026/8/25 18:23:03

期中考试复盘:从分数诊断到学习系统优化的全流程指南

1. 项目概述:一次期中考试的深度复盘与价值挖掘又到了学期中段,相信不少同学刚刚经历了一场或几场“期中考试”(Mid-Term Examination)。这个标题看起来平平无奇,不就是一次常规的阶段性测验吗?但作为一名经…

2026/8/25 18:18:02

计算机基础知识:走近科学(一)

计算机基础知识:走近科学(一) 结合程序员教程,计算机组成原理,计算机应用基础积累和总结的知识点,用来初次学习或复习计算机基础知识,利用休闲时间可以学习一下,适用于计算机一级考试…

2026/8/25 1:04:19

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/25 11:48:27

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/25 16:56:43

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/25 0:04:14

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory Meta Description:GetQzonehistory 是一个QQ空间历史说…

2026/8/25 0:04:14

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

2026/8/24 13:42:17

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/24 18:13:48

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/25 1:08:14

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…