什么是架构
这是个哲学问题,就像“我是谁”一样,没有一个简单直接的答案。我们可以说那些属于架构的范围,但是不能明确定义什么是架构;我们可以用各种文档和图标描述软件架构,但再全面的文档也只是架构的投影,不是架构的全部。
软件架构不再是一成不变的,而且这种变化也不应是被动的适应型变化,而是主动的进化型的改变。
软件生态一直在发展进化中,新工具、新框架、新技术不断涌现。这给开发人员提供了便利, 提高了开发效率;同时也对现有系统保持其技术先进性带来极大挑战。
从软件的演化到可进化架构
很早就有软件演化的说法, 然而软件最重要的方面架构被“软件”词语掩盖,“进化”比“演化”也更有向上的方向感。
可进化架构的设计方式把现有最佳开发时间全方位的整合到一起,是的开发流程终于有了现代化的雏形。
可进化架构三个主要特色:
- 有目标: 用软件健康指标监控并引导架构进化的方向
- 可操作: 已经较为成熟的增量式开发方式,是架构进化的途径
- 可维护: 综合应用各种开发实践,保持软件后期开发和维护的线性甚至常数成本,从而打破软件维护危机
- 高度模块化,
- 领域驱动设计建模,合理化模块边界
- 实现真正的正交设计,降低系统不同部件的交叉影响
一般软件维护成本在生命周期中随时间呈指数增长,一直到某一个阶段成为“不可维护”。
参看下图设计耐力图中红线部分:
image.png
网友评论