可进化架构设计

什么是架构

这是个哲学问题,就像“我是谁”一样,没有一个简单直接的答案。我们可以说那些属于架构的范围,但是不能明确定义什么是架构;我们可以用各种文档和图标描述软件架构,但再全面的文档也只是架构的投影,不是架构的全部。

软件架构不再是一成不变的,而且这种变化也不应是被动的适应型变化,而是主动的进化型的改变。

软件生态一直在发展进化中,新工具、新框架、新技术不断涌现。这给开发人员提供了便利, 提高了开发效率;同时也对现有系统保持其技术先进性带来极大挑战。

从软件的演化到可进化架构

很早就有软件演化的说法, 然而软件最重要的方面架构被“软件”词语掩盖,“进化”比“演化”也更有向上的方向感。
可进化架构的设计方式把现有最佳开发时间全方位的整合到一起,是的开发流程终于有了现代化的雏形。
可进化架构三个主要特色:

  • 有目标: 用软件健康指标监控并引导架构进化的方向
  • 可操作: 已经较为成熟的增量式开发方式,是架构进化的途径
  • 可维护: 综合应用各种开发实践,保持软件后期开发和维护的线性甚至常数成本,从而打破软件维护危机
    • 高度模块化,
    • 领域驱动设计建模,合理化模块边界
    • 实现真正的正交设计,降低系统不同部件的交叉影响

一般软件维护成本在生命周期中随时间呈指数增长,一直到某一个阶段成为“不可维护”。
参看下图设计耐力图中红线部分:


image.png

质量特性(健康指标)

增量开发

正交设计

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。