天天看點

什麼是靈活設計

一.設計臭味

1.僵化性

  僵化性是指難以對軟體進行改動,即使是簡單的改動。如果單一的改動會導緻有依賴關系的子產品中的連鎖改動,那麼設計就是僵化的。改動時,必須要改動的子產品越多,設計就越僵化。

2.脆弱性

  脆弱性是指,在進行一個改動時,可能會導緻程式的許多地方出現問題。常常是,出現新問題的地方與改動的地方沒有概念上的關聯。

3.頑固性

  頑固性是指,設計中包含了對其他系統有用的部分,但是要把這些部分從系統中分離出來所需要的代價很巨大的。

4.粘滞性

  軟體粘滞性

  當面臨一個改動時,開發人員常常發現會有多種改動的方法。其中,一些方法會保持設計;而另一些方法會破壞方法(也就是拼湊的方法)。當可以保持系統設計的方法比拼湊手法更難應用時,就表明設計具有很高的粘滞性。

  環境粘滞性

  當開發環境遲鈍。低效時,就會産生環境的粘滞性。

5.不必要的複雜性

  如果設計中包含了目前沒有用到的組成部分,他就包含不必要的複雜性。為過多的可能性做準備,緻使設計中含有絕對用不到的結構,進而變得混亂。這些準備工作也許會帶來回報,但更多的不會有什麼好的回報。同時,設計時背負着這些用不到的部分,是軟體變得複雜,并且難以了解。

6.不必要的重複性

  剪切和粘貼也許是有用的文本編輯器操作,但卻是災難性的代碼罪魁禍首。

7.晦澀性

  晦澀性是指子產品難以了解。代碼随着時間而演化,往往會變得越來越灰色,讓開發人員越來越難了解子產品的工作方式。為了使代碼的晦澀性保持最低,就需要持續地保持代碼清晰和富有表達力。

二、軟體為何會腐朽

  在非靈活的環境中,由于需求沒有按照初始預期的方式進行變化,進而導緻設計的退化。通常,改動都非常很急迫,并且進行改動的開發人員對于原始的設計思路并不熟悉。因而,雖然是可以對設計進行改動,但是卻在某種程度上違反了原始的設計。随着改動的不斷進行,這些诟病将漸漸的積累起來,直到惡性惡性良性腫瘤的出現。

三、什麼是靈活

  靈活設計是一個過程,不是一個事件。它是一個持續的應用原則、模式以及實踐來改進軟體的結構和可讀性的過程。它緻力于保持系統設計在任何時間都盡可能的簡單、幹淨和富有表達力。