ARTICLE · 1288802
【软件架构系列3】传统经典架构的本质:围绕业务属性与质量属性的决策集合

关于架构的目的,是在给定约束下,围绕业务诉求与质量属性形成的一组关键决策及其落地的系统结构;它定义系统组件(模块)、边界、依赖与协作规则,目标是管控软件复杂度,并支撑系统持续演进。架构活动本身会引入新的结构与协作复杂度,其核心价值是将无序的业务复杂度转化为可控的结构化复杂度,而非消灭复杂度。
约束包含:
业务约束、成本与人力约束、技术遗产约束、合规约束、交付时间约束、团队能力约束。
业务诉求:
承载业务能力、业务流程、业务领域模型,匹配业务诉求与业务变化节奏(企业应用架构模式、整洁架构、架构思维)。对业务型软件系统而言,架构不能脱离业务,领域模型与业务边界是架构的根基;业务的增长、迭代、转型需求决定架构目标。对于网关、数据管道、底层基础设施类系统,领域模型不再是核心根基,架构目标会转向吞吐量、延迟、多租户等质量目标。业务诉求对应功能需求、业务规则与领域语义,是架构回答“系统要解决什么问题” 的输入。
质量属性:
包括性能、可用性、安全性、可修改性、可测试性、可运维性、可观测性、可部署性等非功能指标(面向模式的软件体系结构、架构师修炼之道)。质量属性之间天然存在权衡(Trade-off);我们无法同时最大化全部质量属性,但可以让多个质量属性同时满足预设阈值。权衡不只发生在质量属性内部,也涉及外部质量属性(性能、安全、可靠、易用等)和内部质量属性(可维护、可扩展、代码高内聚低耦合、可测试等),还存在于业务功能与质量属性、质量目标与成本、架构方案与团队交付能力之间。架构师需要识别业务优先级,在多重目标之间取舍质量目标,并识别关键风险。
架构的本质,综合各经典著作的核心思想
架构是带着边界约束,持续演进、自然浮现出的共识
《演进式架构》《持续架构实践》《浮现式设计》共同强调:架构不是前期一次性完整设计完成,而是随业务迭代持续调整。演进不等于无约束自由生长,优秀架构必须预先定义架构护栏(架构原则、组件边界、接口契约、非功能基线),在护栏之内允许增量修改;部分内部结构会在持续开发中自然浮现。持续架构主张架构活动贯穿软件全生命周期,而不只是项目前期的一次性设计。缺少护栏的“浮现”,最终会演变为大泥球(Big Ball of Mud)。
架构通过拆分与解耦,隔离业务与技术,管控复杂度
《整洁架构之道》提出依赖规则:业务领域逻辑(业务内核)在源代码依赖方向上居于内核,外部技术细节向内依赖;需要区分编译期源代码依赖和运行时调用关系—— 领域代码运行时可以调用外部基础设施,但代码包不直接依赖外部技术框架。《企业应用架构模式》提炼领域层、事务、数据映射等模式,用来落地业务模型;《面向模式的软件体系结构》从通用模式层面,提供组件、交互的经典方案,用来平衡业务诉求和质量属性。
架构取舍,需要同时考虑系统、技术与人(康威定律)
《架构师修炼之道》《架构思维:从程序员到CTO》指出:架构设计不只关乎代码和组件,还需要匹配团队组织结构、交付能力。康威定律是双向命题:组织沟通结构决定系统架构形态;反过来,架构边界与组件划分也会重塑团队分工。架构师要识别核心风险,评估成本,在业务需求、质量属性、团队能力之间做权衡。陈皓《左耳听风》进一步强调:架构要坚持简单原则,优先避免不必要的复杂度、过度设计,同时警惕设计不足带来的架构债务,重视容灾、容错等质量属性(容易忽略的部分)。帕累托二八定律的经验启发:系统80%的业务价值往往集中在20%的核心模块,架构资源应当优先投入核心模块,做好资源平衡与取舍。
架构本质是管理复杂度(适用于业务型软件)
许式伟《架构的本质》视角:业务诉求定义架构“要解决什么问题”,质量属性定义 “系统要做到多好”;架构师通过合理拆分、定义边界、管理依赖,在各类约束下完成权衡,让系统既能满足当下业务,又能持续应对未来变化。对于实时敏感、安全关键类系统,架构首要目标可能是满足强制性合规与实时约束,管理复杂度退居次要位置。
架构决策属于风险决策,每一项架构选择都会引入潜在风险;架构需要持续验证,通过原型、架构评审、压测、故障演练、适应度函数等手段验证方案是否满足业务与质量目标;架构决策还需要对齐多方干系人(业务、产品、开发、运维、安全、管理层)。持续演进过程中会不断产生架构债务,架构师需要持续识别、评估、规划偿还架构债。
总结
架构是在多重约束下,围绕业务诉求和质量属性形成的一组关键决策及其落地的系统结构,通过定义组件、边界与依赖关系管控复杂度。业务诉求决定系统需要承载的领域能力与业务变化节奏;质量属性定义可用性、性能、可维护性等非功能目标,二者及成本、团队之间需要持续权衡。架构并非一次性定稿,而是在架构护栏约束下演进式、浮现式生长出来的,贯穿软件全生命周期;架构设计需要兼顾业务逻辑、技术方案、团队组织,既要拒绝过度设计,也要防范前瞻设计不足与架构债务。架构师要能识别架构风险、对齐干系人、持续验证方案,在约束条件下持续迭代,保障系统长期可演化。
九篇分篇规划:
篇次 | 篇名 | 定位 | 核心内容(一句话) |
1 | 入门总起篇 | 六种架构、三层链路:业务定目标、产品转需求、应用搭系统、数据管信息、技术打底座、项目来落地、本体补语义 | |
2 | 定位篇 | AI 让架构师价值分化,真正稀缺的是定义问题、驾驭复杂性的架构师 | |
3 | 架构的本质:围绕业务属性与质量属性的决策集合 | 本质篇 | 架构,是在给定约束下,围绕业务属性与质量属性做出的一组关键决策集合 |
4 | 架构设计的方法论:从定义问题到化虚为实 | 方法论篇 | 讲架构设计的思维过程:四原则、四步思维、模型观与概念分离 |
5 | 架构设计的原则与模式 | 原则篇 | 给出可执行的设计准则和可参考的模式 |
6 | 组织与架构:康威定律与演进式架构 | 组织篇 | 架构是组织问题:康威定律、演进式组织实践与大型敏捷 |
7 | 架构评估:围绕架构的适应度函数,尽早、反复、持续 | 评估篇 | 怎么判断架构好坏:围绕架构的适应度函数,评估金字塔、问题彩虹与评估仪式感 |
8 | 架构设计的十大反模式:看起来正确,实则错误 | 反模式篇 | 架构设计的“四个坑”与十个常见陷阱现象,以及应对的措施及方案 |
9 | 架构师的成长:从方案设计者到AI 系统构建者 | 成长篇 | 回扣开篇:沉淀知识资产、成为让AI 基于自己经验运行的架构师 |
参考书目:
1.演进式架构(Building Evolutionary Architectures)[美] 尼尔·福特(Neal Ford)、[美] 丽贝卡·帕森斯(Rebecca Parsons)、[澳] 帕特里克·柯(Patrick Kua);第2版新增作者普拉莫德·萨达拉奇(Pramod Sadalage)
2.持续架构实践(Continuous Architecture in Practice)[美] 穆拉特·埃尔德(Murat Erder)、[美] 皮埃尔·普约尔(Pierre Pureur)、[英] 伊恩·伍兹(Eoin Woods)
3.架构师修炼之道(Design It! From Programmer to Software Architect)[美] 迈克尔·基林(Michael Keeling)
4.面向模式的软件体系结构(POSA,Pattern-Oriented Software Architecture)[德] Frank Buschmann、Regine Meunier、Hans Rohnert、[瑞士] Peter Sommerlad、[德] Michael Stal(卷1)
5.企业应用架构模式(Patterns of Enterprise Application Architecture,EAA)[英] 马丁·福勒(Martin Fowler)(David Rice、Matthew Foemmel等参与贡献)
6.整洁架构之道(Clean Architecture)[美] 罗伯特·C·马丁(Robert C. Martin,Bob大叔)
7.浮现式设计(Emergent Design:专业软件开发的演进本质)[美] Scott L. Bain(斯科特·贝恩)
8.架构思维:从程序员到CTO郭东白(美籍华人)
9.左耳听风:传奇程序员练级攻略(博文视点出版,陈皓文集)
10.架构的本质(极客时间《许式伟的架构课》)















































































