vlambda博客
学习文章列表

架构师需要知道的康威定律

    Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations. 

                                                                                                      - Melvin Conway

第一定律

    Communication dictates design

    组织的沟通方式决定系统设计,也就是说什么样的组织就会设计开发出什么样的产品。

    架构师需要深知沟通是有成本的,这里我想到了当初我学习项目管理知识的时候,在项目的沟通管理中有一个沟通成本公式:

            沟通成本=n(n-1)/2

架构师需要知道的康威定律

第二定律

    There is never enough time to do something right, but there is always enough time to do it over.

    时间再多一件事情也不可能做的完美,但是总有足够的时间做完。

    在软件开发这个领域中,永远不可能完美。无论你思考的多么严谨,总会有不是那么完美的地方。正如,维纳斯的美也是残缺的一样,任何软件都会存在bug。所以敏捷开发、快速迭代、持续集成、持续交付、立刻验证、持续优化才是王道。文档来不及写,用笔画一下就好;功能不完美,能运行就好;代码不完美,我们后续改进就好。

架构师需要知道的康威定律


第三定律

    There is a homomorphism from the linear graph of a system to the linear graph of its design organization.

    线型系统和线型组织架构间有潜在的异质同态特性。

    尽管系统和组织结构在本质上是不一样的,但是却有很多的相似之处。比如,做过系统开发的人来管理组织的时候会参照系统的架构来组织团队。所以如果你需要前后端分离的系统,那么你至少需要把前端组和后端组分开;而如果你是想开发一个单体系统,那么你可以只需要一个开发组。


第四定律

    The structures of large systems tend to disintegrate during development, qualitatively more so than with small systems.

    大的系统组织总是比小系统更倾向于分解。

    也许系统架构的核心就是在于“”和“合”之间   


从单体架构开始,分层架构、微服务架构、网络服务架构,都是在拆,拆的越来越小。