30年老将:为什么AI无法取代软件架构师
为什么在AI时代亲手做架构依然胜出
Dennis Doma是拥有30年经验的软件工程老将、Microsoft MVP,也是Fluent Assertions的创建者——这是.NET生态中最受欢迎的开源测试库之一。作为Aviva Solutions的编程架构师,他数十年来一直在与摧毁企业软件的复杂性作斗争。在这次与Beyond Coding的对话中,他分享了AI工具如何重塑他的工作流,以及这些工具的局限所在。
关于停止编码的架构师: “If you stop coding, if you actually stop building production systems, you lose that experience. If I had stopped coding for the last 3 years, I would have probably missed the whole AI scene.”(如果你停止编码,停止构建生产系统,你就会失去那种经验。如果我过去三年停止了编码,我很可能会错过整个AI浪潮。) Doma认为,退守到高层图表的软件架构师会失去判断解决方案是否真正可行的能力。那种亲手构建、交付、修复bug的反馈循环是无可替代的。
关于AI生成代码的归属权: “I treat all AI-generated code as mine.”(我把所有AI生成的代码都视为我自己的。) 当GitHub Copilot仅凭一个issue就构建出他新开源模拟库的大部分代码时,Doma印象深刻——但他立刻接手了所有权。他逐行审查AI生成的测试,对不符合标准的代码进行重构,并持续更新指令文件以让后续生成效果更好。这些代码不是”AI的代码”——它是他的责任。
关于意外复杂性: 团队盲目复制架构模式——洋葱架构、整洁架构——却不理解它们存在的原因。有着10到15年经验的开发者变得”过于狂热”地依附于SOLID原则,把它们当作抵御实用主义的盾牌。“Yeah, but you don’t need this abstraction. Yeah, but it’s ready for the future. You don’t need this abstraction. That’s a smell.”(是的,但你不需要这层抽象。是的,它为未来做好了准备。但你根本不需要这层抽象,这本身就是一种坏味道。)
关于初级开发者与AI: 两种典型出现了——一种为了保留学习能力而刻意回避AI,另一种则在不理解输出内容的情况下到处使用AI。Doma遇到过一位开发者,其pull request能跑通(测试通过),但他无法解释代码做了什么。Doma的回应是:“I don’t care if you don’t practice TDD properly, but make sure the code is designed the way we want it and we can maintain it.”(我不在乎你是否严格实践TDD,但请确保代码是按我们期望的方式设计的,并且是可维护的。)
关于开源可持续性: Tailwind团队因为AI能够复制他们的付费组件而裁员75%。Doma的反驳是:人们长期低估成熟库背后的复杂性。“我花了15年打磨Fluent Assertions。有人说’我几天就能做出来。‘随便。“开源代码可能会成为你需要维护的代码——要做好相应规划。
编程架构师关于AI辅助开发的5条经验
- 测试是你的安全网 — 无论代码是人写的还是AI生成的,健壮的测试是终极验证器。“如果你把软件当作黑箱,而安全网是你的测试,那么你应该在这上面投入格外多的注意力。”
- 文档与AI相互增强 — ADR、提交信息和决策记录在AI工具能够遍历它们时会变得极为宝贵。那些投资于丰富上下文的公司将会”遥遥领先”。
- 让团队自己选择AI工具 — 不要强制统一使用一种工具。“让大家用他们想用的AI工具,因为这个领域变化太快了。“追踪使用情况、扩展许可,但不要限制探索。
- 上下文就像牛奶 — Doma曾为此付出过惨重代价:他的AI把实验性代码合并并推送到了主分支。功能分支和频繁提交是必不可少的安全护栏。
- 开源依然值得 — “你在付出,但你得到的回报同样丰厚。知识、经验、新工具、新洞见、知名度。“回报不只是代码——而是整个社区的反馈循环。
这对AI驱动的软件团队意味着什么
Doma的观点直击炒作的核心:AI编程工具在执行速度上确实带来了变革,但它们无法取代数十年亲身实践所积累的架构判断力。能够蓬勃发展的开发者,是那些把AI当作强力工具使用、同时保持批判性思维的人——理解模式为何存在,而不仅仅是套用它们。对于组织而言,信息很明确:投资于文档、测试质量和架构辅导。当AI负责敲键盘时,这些才是真正能够持续增值的资产。