架构设计的几点思考
软件架构的意义
软件架构的意义是什么,有很多不同的理解和争议,这里不想就软件架构的意义给出完整的定义,而是想聊聊其中的一点:软件架构是沟通 (Architecture is communication),关于软件架构的更多意义,建议参考这篇别人的旧文。
为什么软件架构意味着沟通呢?因为软件工程本身是一个组织一群人为了一个问题进行创造性劳动的过程,因为软件工程本身的特点,所以沟通的重要性是软件工程区别于传统工程的一个显著特点。关于这一点,我之前的帖子已经解释过,这里不再展开。
什么样的架构有利于沟通呢?
在回答这个问题之前,我们先来看一张图。
如果汽车设计师通过这张图来向其他人解释汽车是什么的时候,我想除了相关的专家不会有人能够轻易理解每个部件在整个汽车中的用途,以及他们是如何在一起工作的。
为什么呢?在《金字塔原理》这本书里提到,人一次能够理
