设计的臭味-腐化软件的气味

来源:百度文库 编辑:神马文学网 时间:2024/04/30 03:01:45
设计的臭味-腐化软件的气味- -
l        僵化性(Rigidity):设计难以改变
难以对软件进行改动,即使是简单的改动。如果单一的改动会导致有依赖关系的模块中的连锁改动,那么设计就是僵化的。
l        脆弱性(Fragility):设计易于遭到破坏
在进行一个改动时,程序的许多地方就可能出现问题。常常是,出现新问题的地方往往和改动的地方没有概念性的关联。要修正这些问题就会引出更多的问题。从而使开发团队象一只不停追逐自己尾巴的狗一样忙的团团转。
l        牢固行(Immobility):设计难以重用
设计中包含了对其它系统有用的部分,但是要把这部分从系统中分离出来所需要的努力和风险是巨大的。
l        粘滞性(Viscosity):难以做正确的事情
两种表现形式:软件的粘滞性和环境的粘滞性。
当面临一个改动时,开发人员常常会发现有多种改动的方法。其中一些方法会保持设计,另外一些方法会破坏设计(也就是生硬的方法)。当那些保持设计的方法比那些生硬手法更难以使用时,就表明设计具有高粘滞性。
当开发环境迟钝、底效时,就会产生环境的粘滞性。
l        不必要的复杂性(Needless Complexity):过分设计
如果设计中包含有当前没有用的组成部分,它就含有不必要的复杂性。当开发人员预测需求大额变化,并在软件中防止了处理哪些潜在变化的代码时,常常会出现这种情况。起初,这样做看起来象是一件好事。糟糕的是结果常常相反。为过多的可能性做准备,致使设计中包含绝对不可能用到的结构,从而变得混乱。一些准备会带来回报,但是更多的是不会。期间,设计背负着这些用不到的部分使软件变得复杂,并且难以理解。
l        不必要的重复(Needless Repetition):滥用鼠标(乱拷贝)
剪贴和粘贴常常使软件系统都是构建于众多的重复代码片断之上。当系统中有重复的代码时,对系统改动会变得困难。
l        晦涩性(Opacity):混乱的表达
是指模块难以理解。代码可以用清晰、富有表现力的方式编写。或者可以用晦涩、费解的方式编写。代码随着时间而眼花,往往会变得越来越晦涩。