架构制图:工具与方法论( 二 )


与建筑、汽车或者任何其他工程行业一样 , 软件在落地实现(编码)之前也需要先有蓝图;而其中最重要的一份蓝图 , 就是架构设计 。 没有架构 , 仅凭程序员自己脑子里的模糊设想 , 也许你可以像传统手艺人一样独自创造出一些美好有用的小东西(比如 Linux 0.01 版本) , 但不太可能以工程的方式协同一个团队共同建造起一个与摩天大楼规模类似的复杂软件系统(比如现代的 Linux 系统) 。 一方面 , 人类的思维能力终归有限 , 必须依靠架构这种高度抽象和简化的蓝图 , 才能让复杂系统的创造、理解、分析和治理变得可行;另一方面 , 量级达到一定程度的大型系统 , 也只能依靠多人分工合作才能完成 , 而架构也正是多人沟通协作的重要基础 。
2. 架构是沟通协作的基础
架构制图:工具与方法论
本文插图

架构制图:工具与方法论
本文插图
软件项目的最终价值产出就是软件系统 , 而架构作为软件系统的灵魂和骨架 , 可以起到如下作用: