知识卡片
决策派兴起的原因与软件架构七十年发展主线
内容
[[组成派与决策派两大定义流派的分歧]]不只是两种平行并存的定义方式,而是有明确的历史先后顺序和兴起动因:软件架构研究兴起初期,研究者给出的定义大都是组成派立场——只关注软件本身,尤其是组件本身的组成结构。但随着架构在实践中被广泛应用,组成派视角的缺陷逐渐暴露:开发者只盯着软件本身、尤其是组件本身,在开发过程中经常出现违背原始设计的现象,导致最终成品不能完全满足需求,架构建成之后的评价和演化也变得困难——这条脉络说明,决策派的兴起不是纯学术层面的观点之争,而是对组成派在工程实践中暴露出的具体问题(架构腐蚀、演化困难)的直接回应。这一点还可以进一步和架构腐蚀问题挂钩:目前软件架构腐蚀现象比较严重,根本原因就是软件架构知识的流失,而这种知识主要就是设计决策——在传统组成派视角下,设计决策是隐含在架构结构里的,缺乏完善的显式描述,一旦人员流动或时间推移,这些决策依据就随之消失;决策派把架构直接定义为”设计决策的集合”,让设计决策本身在架构描述中变得可见,从而降低了架构知识流失的风险——这条逻辑揭示了决策派相对组成派的核心优势不在于”定义得更精确”,而在于它把架构腐蚀问题的病根(决策依据不可见)直接纳入了定义本身。从更长的时间尺度看,架构及相关技术自20世纪40年代编程诞生以来已经历了70余年的发展,发展主线可以归纳为:模块化编程/面向对象编程→构件技术→面向服务开发技术→云架构,这条主线一方面推动了软件开发方法本身的演化,另一方面也带动了领域工程相关技术的广泛应用,而针对架构本身的描述、建模、验证技术,始终在这条主线里扮演着关键角色。这段历史也传递出一条元规律:任何新技术、新方法、新思想的出现,最终都会被融入软件架构自身的发展历程——微服务架构、数据驱动架构、智能架构正是当下这条规律的最新体现,而按照这条规律推演,未来必然还会有更具价值的新型软件架构随着人类认知能力的增强而出现。