惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threat Research - Cisco Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
V
Vulnerabilities – Threatpost
GbyAI
GbyAI
P
Proofpoint News Feed
L
LINUX DO - 热门话题
P
Palo Alto Networks Blog
A
About on SuperTechFans
T
Tenable Blog
M
MIT News - Artificial intelligence
IT之家
IT之家
I
Intezer
D
DataBreaches.Net
爱范儿
爱范儿
T
Threatpost
C
CERT Recently Published Vulnerability Notes
云风的 BLOG
云风的 BLOG
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
K
Kaspersky official blog
大猫的无限游戏
大猫的无限游戏
A
Arctic Wolf
Y
Y Combinator Blog
Cyberwarzone
Cyberwarzone
酷 壳 – CoolShell
酷 壳 – CoolShell
D
Darknet – Hacking Tools, Hacker News & Cyber Security
H
Help Net Security
Microsoft Security Blog
Microsoft Security Blog
Spread Privacy
Spread Privacy
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
AWS News Blog
AWS News Blog
博客园 - 聂微东
C
Check Point Blog
S
Securelist
有赞技术团队
有赞技术团队
雷峰网
雷峰网
aimingoo的专栏
aimingoo的专栏
Last Week in AI
Last Week in AI
Stack Overflow Blog
Stack Overflow Blog
MongoDB | Blog
MongoDB | Blog
D
Docker
G
GRAHAM CLULEY
T
The Exploit Database - CXSecurity.com
C
Cybersecurity and Infrastructure Security Agency CISA
T
Tailwind CSS Blog
L
Lohrmann on Cybersecurity
G
Google Developers Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
L
LangChain Blog

祝融说。

共识并不平均,但是基本上均衡。 权力是共识切片的曲率。 存在不是「是什么」,而是一系列极小的,从分歧到共识再到分歧的,连续的构建过程。 分歧实际上是对共识往哪个方向延伸的拉力。 分歧是尚未落实的实在,是可能性基底中尚未被锁定的在共识中相互牵引的可用余量。 权力从来不是中立的,它是带有倾向性的「牵扯力」。 过程即完备,容错即自由。 第10章 逆向投喂:用真实数据让AI做出精准诊断 第11章 测试电网:用刚性指标代替肉眼审查 第12章 定期“垃圾回收”:别让系统背负AI制造的债务 第13章 防退化契约:确保每一次修改都是在进步 第14章 全生命周期演练:从零开始用“有效约束”交付一个项目 第15章 随身工具包:即查即用的约束指令库 第2章 你必须警惕的三个陷阱 第3章 把话说死:用 Markdown 建立 AI 的“单源真相” 第4章 负空间设计:先规定“不准做什么”,再让它写代码 第5章 模块化解耦:让AI每次只面对一个小问题 第6章 上下文断头台:善用 `/clear` 斩断错误蔓延 第7章 剥夺执行权:强制 AI 像资深工程师一样“慢思考” 第8章 角色锁定:用一句话给AI戴上“思考帽” 第9章 遥测驱动:帮AI长出“千里眼”和“顺风耳” 结语:成为系统牧马人,而不是代码搬运工 第八章 金融与科技的“禁手”:现代战争的底层收敛 第二章 认知锚点:心理战中的“强制步” 第九章 历史的单行道:那些被剥夺国运的时刻 第六章 消费主义的迷宫:在货架上剥夺选择 第七章 战略逼压:没有硝烟的“切香肠战术” 第三章 构造绝杀:逻辑闭环的艺术 第十二章 绝对零度下的生机:成为“不可测”的人 第十一章 掀翻棋盘:非对称竞争与正交化打击 第十章 识破隐形控制:第一时间嗅到危险 第四章 标准的暴政:打造“不得不”的生态 第五章 锁死阀门:关系链与供应链的囚笼 第一章 降熵法则:时空维度的隐蔽控制 结语:愿你在这个被设定的世界里,永远握有掀桌的权力。 引言:自由意志的幻觉 项羽 当前的AI工程化本质上是受限于上下文长度而采用的「以提示词约束去置换确定性」的一种妥协。 即时反应是一种不假思索,它是观念通过最简单、轻易、高效的路径寻求表达。 青衫 第九章:估值的坐标:建立“内在记分牌” 第六章:资产重估的艺术:从“硬实在”到“认知折价” 第七章:预期差交易:坍缩“概率波” 第十一章:内在博弈:克服‘评估异化’ 第十章:交易的算法:逆人性的“人之道” 第五章:空间套利:高能耗产业的跨境建构 结语:构建你的“财富多重宇宙” Code-Coder 第八章:效率革命:细分赛道的“降本增效” 第二章:评估权的博弈:商业模式的权力差序 第三章:去伪存真:穿透“符号泡沫” 第四章:能源共识:黑金的物理法则 第一章:宏观观察者:借势“国家共识” 前言:从“市场囚徒”到“清醒的观察者” Code-Ledge-X Code-Lint-X
第1章 这不是结对编程,这是“人机共生”
祝融 · 2026-05-16 · via 祝融说。

你是否也有过这样的经历?

在某个深夜,面对一个复杂的业务需求,你抱着试一试的心态,向大语言模型(LLM)描述了你的问题。几秒钟后,屏幕上涌现出一段结构清晰、看似完美的代码。你心中一阵狂喜,仿佛看到了新纪元的曙光:“编程的未来,真的来了!”你迅速将代码复制粘贴到项目中,稍作修改,功能竟然跑通了。那一刻,你感觉自己拥有了一位全知全能、不知疲倦的“结对编程”伙伴。

然而,蜜月期总是短暂的。

几天后,产品经理提出了一个新的需求变更。你再次向AI求助,它也“聪明”地在原有代码上增加了一个if-else分支。又过了几天,另一个紧急的Bug需要修复,AI又打上了一个补丁。慢慢地,你发现事情开始不对劲。最初那段优雅的代码,像一件被缝满了补丁的衣服,变得臃肿、脆弱、难以理解。更可怕的是,当你试图让AI重构它自己写的“屎山”时,它似乎陷入了混乱,时而忘记最初的架构约束,时而引入不兼容的依赖,甚至在一个看似无关的修复中,悄悄搞坏了三个月前就已经稳定的核心功能。

你开始感到困惑、沮丧,甚至愤怒。这个所谓的“超级伙伴”,怎么变成了一个只会添乱的“猪队友”?你发现自己花费在“纠正AI”、“审查AI代码”、“为AI的错误擦屁股”上的时间,甚至超过了自己从零开始写代码的时间。

如果你对上述场景感同身受,那么恭喜你,你已经走完了大多数开发者在拥抱AI编程时必经的“幻灭之路”。你也即将抵达一个关键的认知拐点——这个拐点,将决定你未来是成为AI的奴隶,还是成为驾驭AI的骑士。

这个拐令的核心在于:我们从一开始就搞错了与AI的关系。这根本不是“结对编程”,而是一种全新的、需要我们重新学习规则的“人机共生”模式。在这套新规则里,放弃不切实际的幻想,重新定义自己的角色,并掌握“约束”这门核心技艺,是我们从失控走向掌控的唯一路径。

1.1 放弃幻想:大模型不是程序员,而是超级实习生

我们之所以会陷入困境,根源在于一个普遍的误解:我们将大模型(LLM)拟人化,把它想象成一位经验丰富的资深程序员。我们期望它能理解上下文、预见风险、权衡利弊、并对最终的代码质量负责。

这是一个致命的错误。

大模型不是程序员,它更像一个“超级实习生”。这个比喻或许有些冒犯,但它能极其精准地揭示AI编程的本质,帮助我们建立正确的心理预期。

让我们来详细解剖一下这位“超级实习生”的特点:

特点一:知识渊博,但毫无经验

这位实习生堪称“行走的维基百科”,他背下了GitHub上几乎所有公开代码、通读了Stack Overflow的全部问答、记住了所有主流框架的API文档。你问他什么是“红黑树”,他能瞬间给你写出最标准的实现;你问他如何用Go语言实现一个gRPC服务,他能立刻给你一套完整的代码骨架。在“知识广度”和“记忆力”上,他秒杀任何人类程序员。

然而,他毫无“经验”。

经验是什么?经验不是“知道”一个东西,而是“踩过”一个坑。经验是知道在那个看似平坦的业务场景下,隐藏着一个巨大的性能陷阱;是知道某个看似无害的第三方库,在特定操作系统下会引发内存泄漏;是知道产品经理口中的“只是一个小改动”,背后可能牵涉到三个微服务的联动重构。

AI不具备这种由真实世界的失败和痛苦换来的“血肉经验”。它会很“天真”地为你推荐一个在技术圈广受好评但与你项目现有技术栈存在致命冲突的库。它会很“自信”地写出一段在理想网络环境下完美运行,但在弱网环境下会频繁超时的异步代码。

【实战场景】 你让AI为一个Web应用添加“记住我”功能。

  • AI的“知识”:它知道实现这个功能最简单的方式是把用户的认证令牌(Token)存在localStorage里。它立刻生成了相关代码。
  • 人类工程师的“经验”:你看到localStorage,警铃大作。你知道它存在跨站脚本攻击(XSS)的风险,一旦网站被注入恶意脚本,存储在其中的Token就会被轻易窃取。一个有经验的开发者会选择安全性更高的HttpOnly Cookie来存储敏感信息。

AI提供了“能用”的方案,而经验让你选择了“安全可用”的方案。这就是知识与经验的鸿沟。

特点二:执行力爆表,但毫无责任心

这位实习生精力无限,从不抱怨996。你让他写100个单元测试,他眼都不眨一下;你让他把项目里所有的var都换成letconst,他瞬间就能完成。他是一个完美的“执行机器”。

然而,他毫无“责任心”。

责任心意味着对“后果”的承担。一个有责任心的程序员,在提交代码前会反复思考:“我的修改是否会影响到其他模块?边界条件是否都考虑到了?日志打得够不够清晰,方便未来排查问题?”

AI没有这种顾虑。它的目标函数是“根据上下文,生成概率最高的下一个Token”。它追求的是“模式上的匹配”,而不是“工程上的可靠”。只要你给的指令它能“听懂”,它就会不计后果地执行。它生成了一段有安全漏洞的代码,它不会感到愧疚;它的一次重构搞崩了整个系统,它也不会感到自责。它只是一个没有感情、没有“职业操守”的概率计算引擎。

【实战场景】 你的项目有一个紧急Bug,原因是某个关键函数在输入为null时会崩溃。你把错误日志和代码片段扔给AI,要求“紧急修复”。

  • AI的“执行力”:它立刻在函数入口处加了一个判断:if (input === null) { return; }。问题“解决”了,程序不再崩溃。
  • 人类工程师的“责任心”:你会进一步思考:为什么input会是null?是上游哪个环节调用出了问题?这个函数提前return了,下游的逻辑是否会因为得不到预期结果而产生更隐蔽的Bug?我应该在这里简单返回,还是应该抛出一个异常,让问题在源头暴露出来?我是否应该在日志里记录下这次异常的输入,方便后续追溯?

AI用一个“补丁”掩盖了症状,而责任心驱使你去寻找“病根”。

特点三:逻辑自洽,但极易产生“确认偏误”

AI的逻辑推理能力在很多时候令人惊叹,它能理解复杂的代码依赖,并在此基础上进行修改。

然而,它极易陷入“确认偏误”的思维陷阱。

一旦AI在一个错误的认知或假设上开始了它的工作,它后续的所有行为都会倾向于去“证实”和“维护”这个最初的错误,而不是推翻它。这在人类身上也很常见,但在AI这里被无限放大了,因为它没有“自我反思”的元认知能力。

这就是为什么,当你让AI修复一个由它自己引入的Bug时,场面往往会演变成一场灾难。它不会想:“哦,我最初的思路可能错了。”它会想:“我最初的思路没错,一定是某个细节没处理好。”于是它在错误的地基上,不断地添砖加瓦,试图把一栋已经倾斜的危楼“扶正”,结果只能是越修越乱,最终轰然倒塌。

【实战场景】 你让AI设计一个用户权限系统。它错误地选择了一个将用户角色硬编码在前端的设计方案。

  • 第一次修改:你要求增加一个“审计员”角色。AI没有质疑原有架构,而是在前端代码里又加了一个if (role === 'auditor')的判断。
  • 第二次修改:你要求实现动态权限配置。AI依然固守阵地,它可能会设计一个极其复杂的逻辑,在前端去模拟后端的动态权限计算,而不是从根本上推翻“前端硬编码”这个错误设计,把权限判断的责任交还给后端。
  • 最终结果:你的前端代码变成了一个充斥着几十个if-else、权限逻辑与UI逻辑高度耦合、牵一发而动全身的“屎山”。

AI的“确认偏误”,使其成了一个糟糕的“修补匠”,而不是一个合格的“重构师”。

综上所述,将AI视为“超级实习生”,意味着我们要从内心深处接受它的不完美。我们要像对待一个真实世界里的实习生那样,充分利用他的优势(速度快、知识广),同时也要用一套行之有效的管理机制,去规避他的劣势(缺经验、无责任、易偏执)。

放弃“AI是完美伙伴”的幻想,是我们迈向有效驾驭的第一步,也是最关键的一步。

1.2 你真正的角色:从“写代码的人”到“做决策的人”

既然AI是“超级实习生”,那么我们——人类开发者——的角色是什么?

答案是:Tech Lead(技术主管)、架构师、产品经理、以及最终的“决策者”。

在AI原生时代,软件开发的价值链正在发生深刻的重构。过去,一个程序员80%的时间可能花在“实现”上——查阅API、编写业务逻辑、调试语法错误。而现在,这些“实现”层面的工作,正在被AI以极高的效率接管。这并不意味着人类程序员要失业了,而是意味着我们的价值核心,正在从“动手敲代码”,向上游的“动脑做决策”迁移。

我们的工作,不再是把砖头一块块砌成墙,而是成为那个“画出图纸、规定材质、验收质量”的人。

具体来说,你作为“决策者”的角色,体现在以下几个关键层面:

决策一:定义边界与约束

这是你最重要的职责。在项目启动之初,甚至在让AI写下第一行“Hello World”之前,你就必须像一位城市规划师一样,为整个项目划定清晰的边界。

  • 技术选型决策:这个项目用React还是Vue?后端用Go还是Node.js?数据库是MySQL还是PostgreSQL?这些决策看似基础,但会深远影响AI后续的代码生成质量。你不能指望AI为你做出最优选择,它只会给你最“流行”或最“常见”的选择。你需要基于团队技术栈、业务场景、性能要求、运维成本做出权衡。
  • 架构模式决策:项目是采用微服务架构还是单体架构?前后端是完全分离还是耦合?状态管理是采用中心化的Redux模式还是分布式的Context模式?这些高阶的架构决策,定义了代码组织的“骨架”,AI将在这个骨架内填充血肉。骨架搭错了,血肉再丰满也是畸形的。
  • 环境与兼容性决策:我们的软件需要支持哪些操作系统(Windows, macOS, Linux)?最低兼容到哪个浏览器版本(IE11还是现代浏览器)?是否有特殊的运行环境(如离线的、内网的、信创系统的)?这些约束,你必须在第一时间以极其明确的语言告诉AI,否则它会默认在最理想、最现代的环境下生成代码,导致交付时出现灾难性的兼容问题。

决策二:拆解需求与任务

AI无法理解模糊的、充满人性的商业需求。你不能直接把产品经理的原话“我想要一个更酷的用户登录体验”扔给AI。你需要扮演翻译官和项目经理的角色,将一个宏大的商业目标,拆解成一系列清晰、明确、无歧义的“技术任务卡”。

  • 从“What”到“How”的翻译:“更酷的登录体验”意味着什么?是增加社交账号登录(微信、GitHub)?是实现无密码登录(手机验证码、邮箱链接)?还是加入一个动态的背景动画?你需要将这些可能性转化为具体的技术需求。
  • 任务的优先级与依赖关系排序:是先做UI界面,还是先写后端API?用户注册功能是否依赖于邮件发送服务?你需要为AI规划出一条逻辑清晰的“工作流”,而不是让它像无头苍蝇一样,想到哪写到哪。

决策三:验证结果与质量

AI提交了它的“作业”,你的工作才刚刚开始。你不再是代码的“生产者”,而是代码的“第一质检员”。

  • 功能性验证:代码是否实现了预期的功能?所有正常的业务流程是否都能跑通?
  • 边界与异常验证:当输入为空、为超长字符串、为恶意脚本时,程序是否会崩溃?当网络断开、服务器500错误时,前端是否给出了友好的提示?这些都是AI极易忽略的“角落”。
  • 非功能性验证:代码的性能如何?是否存在肉眼可见的卡顿?日志打得是否规范,足以支撑未来的问题排查?代码是否遵循了团队的编码规范?是否存在明显的安全漏洞?
  • 代码审查:是的,你依然需要做Code Review,但审查的重点变了。你不再需要逐行检查语法拼写,而是把精力放在更高维度:架构是否合理?模块划分是否清晰?命名是否表达了业务意图?是否存在潜在的逻辑炸弹?

决策四:做出权衡与取舍

软件工程的本质是“权衡的艺术”。在资源有限、时间紧迫的真实商业世界里,不存在“完美”的方案,只有“合适”的方案。

  • “快与脏” vs “慢与美”:这个紧急的线上Bug,是先用一个临时的补丁快速止血,等下个版本再彻底重构?还是宁愿让用户多等一天,也要一步到位做出最优雅的修复?这个决策,AI给不了你答案。
  • 技术债务的取舍:为了赶项目上线,我们引入了一个临时的技术方案,这会形成一笔“技术债务”。这笔债务是否可以接受?我们计划何时、用什么方式来偿还它?你需要像一个精明的财务官一样,管理项目的“技术负债表”。
  • 放弃与砍掉:在开发过程中,你发现某个功能(比如兼容IE8)的实现成本远超其带来的价值。此时,你需要有魄力做出“砍掉这个功能”的决策,说服产品经理和老板,而不是让AI和你一起,在无底洞里浪费生命。

从“写代码的人”到“做决策的人”,这不仅仅是工作内容的变化,更是一次深刻的思维模式升级。它要求我们跳出代码的细节,从系统、商业和工程的全局视角去思考问题。我们的价值,不再由“写了多少行代码”来衡量,而由“做出了多少个高质量的决策”来定义。

这很难,但这也是AI时代,人类程序员不可替代的核心价值所在。

1.3 约束为什么是第一性原理?——用限制换取确定性

现在我们明确了:AI是超级实习生,我们是决策者。那么,我们该如何将自己的“决策”有效地传递给这位实习生,并确保他能准确无误地执行呢?

答案就是“约束”。

在AI编程的实践中,有效约束,是连接人类智慧与AI算力的唯一桥梁,是我们将不确定的概率世界,转化为确定的工程产品的核心法则,是整个方法论的“第一性原理”。

很多人对“约束”有天然的反感,认为它代表着限制、不自由。但在工程领域,尤其是在与一个充满不确定性的系统(如大模型)协作时,约束恰恰是通往自由和创造力的唯一途径。

约束的本质:用“限制”换取“确定性”

想象一下,AI的潜在能力是一个无限广阔的“可能性空间”。当你给它一个模糊的指令,比如“写一个登录页面”,它可以在这个空间里随机选择一个点,给你一个可能是React写的、可能是Vue写的、可能是用最古老的jQuery写的页面。每一次的结果都可能不同,充满了不确定性。

而“约束”的作用,就是在这个无限空间里,画出一个个“围栏”,急剧地缩小AI的选择范围。

  • 你增加一条约束:“使用React 18和TypeScript”。可能性空间被大大缩小。
  • 你再增加一条约束:“UI组件库必须使用Ant Design 5.0”。空间进一步缩小。
  • 你继续增加约束:“状态管理必须用Zustand,不能用Redux”。
  • 你最后增加一条约束:“不允许使用任何useEffect来发起API请求,必须封装在自定义Hook中”。

当你施加了足够多、足够精确的约束后,AI的“可能性空间”被压缩成了一个极小的、甚至是唯一的点。此时,它生成的结果就从一个不确定的、随机的“猜测”,变成了一个高度确定的、符合你预期的“工程制品”。

用限制换取确定性,这就是约束的魔力所在。 你放弃了让AI“自由发挥”的虚幻权力,换来了对最终产出实实在在的掌控力。

约束的价值:降低认知负荷,聚焦高维决策

当没有约束时,你需要审查AI生成的每一行代码,去理解它的实现逻辑、评估它的优劣,这是一个极其耗费心力的过程。

而当有了清晰的约束后,你的审查模式发生了根本性的改变。你不再需要问:“这段代码写得好不好?”你只需要问一个更简单的问题:“这段代码是否遵守了我设定的所有约束?”

  • 它用的是React 18吗?——是。
  • 它用的是Ant Design吗?——是。
  • 它用Zustand了吗?——是。
  • 它有没有在useEffect里写fetch?——没有。

你的认知负荷从“理解一个复杂的开放性问题”降低到了“检查一个封闭性的清单”。这让你能把宝贵的脑力资源,从繁琐的代码细节中解放出来,投入到更重要的“高维决策”中去,比如思考下一步的架构演进,或者评估新方案的技术风险。

约束的类型:构建一个全方位的“护城河”

在本书接下来的章节中,我们将深入探讨如何设计和实施一个多层次、全方位的约束体系。这套体系就像围绕着你的项目挖掘的一条条“护城河”,确保AI这头巨兽,永远在你规划好的安全航道内行进。

  • 架构约束(第二部分):这是最内层的护城河,通过文档和项目结构,定义技术栈、模块边界和设计模式。
  • 流程约束(第三部分):这是控制航行节奏的船闸,通过会话管理和提问技巧,引导AI的思考路径,防止它“狂奔”或“兜圈子”。
  • 环境约束(第四部分):这是应对外部环境的堤坝,当AI面对它看不见的真实运行环境(如特定操作系统、封闭API)时,如何通过日志遥测等手段,为它建立有效的感知。
  • 质量约束(第五部分):这是最终的质量检验关卡,通过自动化测试和持续集成,建立一条不可逾越的“电网”,任何不符合质量标准的代码都无法通过。

掌握“有效约束”的艺术,就是掌握了在AI时代进行复杂软件开发的核心竞争力。它要求我们从一个追求“加法”(不断实现新功能)的开发者,转变为一个精通“减法”(不断排除错误可能)的架构师。

这种转变,是从“让AI为我工作”,到“我与AI共生”的进化之路。现在,就让我们从这张明确分工的角色卡开始,迈出进化的第一步。

【拿来就用】人机协作角色分工卡

请将这张卡片打印出来,或者放在你的桌面背景上。在每一次与AI交互前,快速浏览一遍,提醒自己和“搭档”各自的角色与职责。

开发阶段AI(超级实习生)角色你(技术决策者)角色
需求分析信息检索员 & 方案生成器
- 根据关键词快速查找相关技术资料和实现案例。
- 基于明确指令,生成多个初步技术方案的草案。
翻译官 & 过滤器
- 将模糊的业务需求,翻译成清晰、可执行的技术任务。
- 过滤AI生成的方案,基于经验和项目背景,筛选出可行性高的选项。
架构设计绘图员 & 填充者
- 根据指定的架构模式(如微服务、MVC),生成代码骨架和目录结构。
- 填充你已定义好的模块接口和数据结构。
总设计师 & 决策者
- 做出最终的技术选型、架构模式和核心模块划分决策。
- 定义所有关键的“约束条件”(技术栈、版本、兼容性、安全红线)。
编码实现代码生成器 & 体力劳动者
- 编写具体的业务逻辑、工具函数、UI组件和单元测试。
- 执行重复性、模式化的编码任务(如格式化、重构、类型标注)。
指挥官 & 质检员
- 下达清晰、分步骤的编码指令。
- 审查AI生成的代码,重点关注逻辑、边界、性能和可维护性。确认代码是否遵守了所有既定约束。
调试排错日志分析师 & 猜想提供者
- 根据你提供的错误日志和代码,分析可能的原因。
- 按需生成用于调试的日志打印代码(遥测探针)。
- 提出多种可能的修复方案。
侦探 & 主刀医生
- 复现问题,收集关键证据(日志、截图、操作路径)。
- 从AI的猜想中,结合经验判断出最可能的“根因”。
- 做出最终的修复策略决策,并指挥AI执行。
测试验证测试用例生成器
- 根据函数签名和业务逻辑,生成单元测试和集成测试的样板代码。
- 快速生成各种边界情况和异常输入的测试数据。
质量保证负责人
- 设计整体测试策略(单元、集成、端到端)。
- 编写核心的、最关键的测试用例。
- 建立并维护自动化测试“电网”,设定不可逾越的质量红线(如覆盖率)。
重构优化模式匹配执行者
- 执行明确的、模式化的重构任务(如提取函数、重命名变量、应用设计模式)。
- 扫描并报告潜在的“坏味道”(如重复代码、过长函数)。
系统健康守护者
- 识别系统中的“技术债务”和架构瓶颈。
- 做出重构决策,权衡重构的成本与收益。
- 确保重构过程没有破坏现有功能(依赖测试电网)。