ThoughtWorks刘尚奇:架构耦合是毒性,不谈计量是耍流氓
软件耦合一定是件糟糕的事吗?
大多数人对这个问题的回答都是“是”。任何一个软件中都会涉及不同程度的耦合,混乱或是错误的耦合会给软件的理解、维护、修改带来许多麻烦,低耦合常常能降低一些错误对软件架构的伤害。因此“高内聚低耦合”是软件开发领域为数不多的“银弹”之一。
不过,全球软件及咨询公司 ThoughtWorks 区块链业务负责人刘尚奇近日提出新的看法:在合适的上下文里,软件耦合是可以存在的。5 月 15 日,ThoughtWorks 举办“2021年技术雷达峰会”上,刘尚奇围绕耦合设计发表演讲。在不久前 ThoughtWorks 发布的第24期技术雷达报告中,“识别架构耦合上下文”也是主题之一。
那么,究竟什么是耦合上下文?我们该如何理解耦合在架构设计中的作用?本次峰会结束之后,我们采访了刘尚奇,聊了聊耦合,以及 ThoughtWorks 在提供技术决策咨询时的一些理念。
受访人物简介:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(11)
333333
所有的在查数据库的时候用到 left join 的代码, 都是高耦合的, 因为第一,数据库一旦拆分了,left join的左右表如果位于不同的数据库,那就执行不了了,第二,某一天如果换成No SQL方案了,所有的left join都用不了了。
如果不能耦合,那大多数的代码都不能写,包括left join也不能写。
我能评论了?
赞
大量快节奏小项目,谁关心是否耦合?一周内弄出来上线交付就完了
内聚和耦合是一个意思, 当你把一件事物当成一个整体,你就可以说,它是高内聚的。 当你不认为一件事物是一个整体,但他强凑到一起的时候,你就可以说,它是高耦合的。
请问各位大神,内聚与耦合的区别是什么?
文章里两个观点挺认同的:1、低耦合架构是有代价和成本的。2、如果长期维护一个系统,并且想要不断演进、灵活应对变化,还是要低耦合高内聚
你是不是疯了,0耦合的系统是不存在的。 耦合也可分为七级,从低至高为:非直接耦合(Nondirect coupling)、数据耦合(Data coupling)、标记耦合(Stamp coupling)、控制耦合(Control coupling)、外部耦合(External coupling)、公共耦合(Common coupling)、内容耦合(Content coupling)。
这我不太赞同,耦合在软件架构方面从来都是贬义词,木匠那个例子不加耦合,或者说那个耦合和软件架构中的讴歌,代表完全不同的意义,耦合的软件它就是不行的。
人们要的不是耦不耦合,要的是快速代码合成。如果,能快速形成有用代码。谁会关心是否耦合。谈耦合,说白了,就是不能快速形成有用代码时,扯扯哲学。