前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一文一点 | 康威定律和单一职责原则的关系

一文一点 | 康威定律和单一职责原则的关系

作者头像
王新栋
发布2020-09-08 15:30:50
1.2K0
发布2020-09-08 15:30:50
举报
文章被收录于专栏:程序架道程序架道程序架道

你好,这是【一文一点】的第4篇文章,不拘泥于篇幅字数,用一篇文章说清一个知识点。

康威定律,也有反康威定律,我们结合这两个一起来说说。

我曾经有段时间都理解成,反康威定律就是反对康威定律的意思了,那么,显然不是这样。

这里的反,是反过来说的意思。

康威定律是在1968年由Melvin Conway提出来的,并且以他的名字命名,基本意思呢,是这样的。

“公司的沟通方式和组织结构决定了系统的架构”

反过来说呢,是这样的。

“产品或系统的架构决定了公司的组织结构”

康威定律和反康威定律都是成立的。

根据已知的资料,如果把各大知名公司的组织结构画出来,他们看起来跟产品的架构很像。

图来自网络

我们在学习SOLID设计原则的时候,有一个原则可以称得上是首要原则,那就是单一职责原则(SRP),也就是SOLID五个原则的第一个字母所对应的原则。

这个原则跟康威定律有什么关系呢,Robert C.Martin 说过,单一职责原则是康威定律的一个演化,这个该如何理解呢。

那我们要先看SRP的定义,SRP的定义几经迭代,最终被Robert C.Martin在《架构整洁之道》中定义为:任何一个软件模块都应该只对某一类行为者负责。

这里面的一类行为者,就是指一个或多个有共同需求的人。

这样不就跟康威定律所描述的,“公司的沟通方式和组织结构决定了系统的架构”里面的组织对应上了么,这里面的组织就是指的“某一类行为者”

如果我们所设计出来的系统架构不能够跟组织结构对应上,就可能会带来不利的地方。

比如,你设计了一个类,这个类的行为包含了两拨“一类行为者”,那么他们分别来提需求的时候,不就是都要在这个类里面去改变了么。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序架道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档