腐烂设计和粘度

brz*_*zow 12 architecture terminology

Robert C. Martin在他的一本书中提到粘度是腐烂设计的症状.我不完全理解软件开发中粘度的概念.你能举个例子吗?

Ric*_*dle 13

随着代码变得越来越老,它会变得更加充满攻击,并且更加充满依赖性,因此在不破坏某些内容的情况下变得更难以进行更改.

因此它变得更少"流动"并且更"坚固",因此类似于粘度.


Bil*_*ard 12

他有两种用途,设计粘度和环境粘度.

首先,高粘度流体,如牙膏和花生酱,不流动那样平稳的低粘度流体状水.

高粘度设计使得制作黑客比保留设计更容易.黑客攻击使代码更加严格,进一步提高了粘度.

环境粘度是指工作流程.如果编译时间很长,或者构建系统或运行测试很麻烦,程序员将采取捷径来缓解痛苦.


Rob*_*len 5

粘度是液体抵抗外力变化的能力。水是衡量的基础,它的粘度非常低(即它会从一个地方自由地流向另一个给定路径),而比如说,酸奶在冷藏时粘度非常高,几乎是固体和漂亮的很多东西都留在你放的地方(除非你穿着浅色的裤子,在这种情况下它每次都会找到它的路......)。

在软件中,这转化为您的代码抵抗更改的程度。如果您有很多依赖项,那么更改主要类可能会很困难,从而导致不太理想的解决方法,从而增加代码的阻力(增加其粘性)。设计良好的代码(低粘度)可以更新和添加,而不会对依赖它的应用程序或其他类产生重大影响。