软件散发的臭味

1)僵化性( Rigidity)
很难对软件进行改动,因为每个改动都会迫使许多对系统其他部分的改动
2)脆弱性( Fragility)
对系统的改动会导致系统中和改动的地方在概念上无关的许多地方出现问    题
3)牢固性( Immobility)
很难解开系统中某部分与其它部分之间的纠结,从而难以使其中的任何部分可以被分离出来被其它系统复用
4)粘滞性( Viscosity)
做正确的事情要比做错误的事情困难。表现为两种形式:

 软件粘滞性
需要对软件进行修改时,可能存在多种方法。有的方法可以保持原有的设计质量,另一些方法则会破坏原有的设计质量。如果,破坏软件质量的修改比保持原有设计质量的修改更容易实施时,我们就称该软件具有“软件粘滞性”。
 环境粘滞性
当开发环境迟钝、低效时,就会产生环境粘滞性。
例如:如果编译时间很长,那么开发人员可能会放弃那些能保持设计质量,但是却需要导致大规模重新编译的改动。

5)不必要的复杂性( Needless Complexity)
设计中包含不具有任何好处的基础结构。
6)不必要的重复( Needless Repitition)
设计中包含一些重复的结构,这些结构本来可以通过单一的抽象进行统一
 使用Cut/Copy/Paste实施源代码级的软件复用容易导致这一问题
 这种代码级别的冗余,将带来修改上的问题
7)晦涩性( Opacity)

很难阅读和理解
不要相信你永远都会如此清楚的了解你的每一行代码“时间会冲淡一切”
要站在阅读者的角度进行设计

你可能感兴趣的:(软件散发的臭味)