优秀的架构不需要胡萝卜,也不需要大棒
摘要
这篇博客文章主张,良好的软件架构应当是不言自明且毫无阻力的,倡导采用 Netflix/Spotify 式的“铺平道路”模式,而非依赖强制性的治理委员会或嵌入式架构师。
<p><a href="https://lobste.rs/s/msy3ri/good_architecture_shouldn_t_need_carrot">评论</a></p>
查看缓存全文
缓存时间: 2026/04/21 11:16
# 好架构不需要胡萝卜,也不需要大棒
原文:https://frederickvanbrabant.com/blog/2026-04-17-good-architecture-shouldnt-need-a-carrot-or-a-stick/
上一篇我写了如何为架构争取支持([《这对我有什么好处?》](https://frederickvanbrabant.com/blog/2026-04-04-whats-in-it-for-me-architecture/))。这个话题我越想越觉得值得深挖。
两周前的文章我依然完全认同,但越想越觉得理想状态是:根本不用去“争取”支持。
## 胡萝卜与大棒
我见过的架构部门几乎都在“执法”。想让软件、工具或方案落地,必须先过架构委员会(或类似组织)。
会上,架构师们审阅一堆必需文档(工件),然后盖章或打回。我称之为“大棒”模式。没人愿意走这套流程:准备成堆材料、遵循各种规范,忙活两周,却被一个素未谋面的委员会一票否决,返工+deadline 模糊。
现实是,大多数人干脆绕开:要么走影子 IT,要么把新项目硬塞进已有“合法”项目里。
另一种做法是“胡萝卜”模式,效果通常好得多:每个项目配一名专属架构师,全程辅导,确保对齐组织规范。可想而知,架构组工作量暴涨,项目方也要额外盯一堆事。
即便架构师包办所有治理和合规,会议依旧少不了。虽然不用直面委员会,但你收获了一位专职“Yes, but”成员。
## 内部客户
架构师的客户其实是内部同事,不妨换位思考。
你(非架构师)想提个自动化流程的项目,却被告知要先填 N 份文档,再向一群从未谋面的委员会汇报。直属领导都已点头,凭啥还要花两周准备材料,让陌生人拍板?不干。
或者给你塞一个“项目合伙人”,对架构有绝对话语权。会议更多、事项更杂,最关键的是:我的业务流程最后到底长啥样?
有没有第三条路?
“听说你想做工作流自动化?我们有现成标准,已全网合规,能给你**这些**好处……顺便把安全、日志、法务全包了,再也不用去那些委员会。”
做梦都会笑醒。客户不仅拿到部分现成方案,还直接甩掉安全+法务两座大山,项目周期立即缩短。下个项目我主动找这帮人。
如果现成工作流不完全匹配?那就改,但地基已搭好,只需谈差异,无需从零撕流程。
这叫“铺好的路(paved road)”架构,Netflix 和 Spotify 都在用。
```
flowchart TD
A[项目想法]
A -->|大棒模式| B[写文档/补材料]
B --> C[架构委员会]
C --> D{通过?}
D -->|返工| B
D -->|通过| F[继续]
A -->|胡萝卜模式| H[指派架构师]
H --> I[会议+监督]
I --> Q[架构师包办治理]
Q --> F
A -->|铺好的路| K[直接选标准]
K --> F
```
## 最小阻力路径
项目永远走阻力最小的路,这是项目管理本能:降风险、保范围、保工期。
铺好的路正利用这一点:把“正确”做成“最容易”,大家自然默认选它,全员共赢。
更妙的是,不选这条路反而变成“自找麻烦”——自己开路,花时间、背风险。
有人担心这会扼杀创新,因为事事统一。解决方法是设立“创新项目”,专门迭代升级这些铺好的路。
我甚至认为这是首选方式:战略集中在一处制定,再自动落地。
## 架构à la carte(按需点餐)
再往前一步,做成完全模块化:把架构拆成可插拔的积木,用户按需勾选,就像点菜。
只要做成“人话”界面,就能问:预计多少用户?应用生命周期多长?喜欢方案 A 还是 B?……
最后把配置单(或自动生成单)扔给架构组,他们复核一下,项目即可开跑。
治理并未消失,架构仍需全局监控。但如果大部分架构靠事后强制,那你已经解决得太晚了。
相似文章
别让架构宇航员吓到你 (2001)
Joel Spolsky 警告不要在软件设计中过度抽象,以 Napster 为例,强调过度关注架构会忽视用户需求。他批评了那些优先考虑抽象概念而非实用功能的技术趋势炒作。
学习软件架构
一位软件工程师分享了学习软件架构的见解,强调组织架构与激励机制优先于代码本身,并结合 rust-analyzer 与科学计算代码的实例进行了说明。
当代码充裕时(31分钟阅读)
这篇博客文章认为,随着AI使代码生产变得充裕,软件开发中的主要约束从编写代码转向信任和治理代码,这要求企业进行架构变革。
软件关乎人,而非代码(2020)
一篇论述软件成功更多取决于理解人及其需求,而非编写完美代码的文章,并以被遗弃的、未解决实际问题的代码库为例。
软件架构的模式语言
本文介绍了架构元模式,将软件架构模式概括为适用于本地和分布式系统的更广泛类别,并通过直观图表和陈旧的演示加以说明。