閱讀筆記 受歡迎程式的設計特點

2021-08-03 05:38:11 字數 1977 閱讀 4729

高質量的設計往往有一些共同的特點。如果你能達到這些物件,那麼可以認為你的設計也是非常成功的。有些物件是互相矛盾的。但是這是設計的挑戰所在,在相互矛盾的物件之間做出合理的折衷。某些高質量設計的特點同時也是高質量程式的特點——可靠性。其餘的則是設計所獨有的。

以下是設計所獨有的一些特點:

智力上的可管理性。對於任何系統來說,智力上的可管理性都是其重要目標之一。它對於整個系統的完整性是非常重要的,並且會影響程式設計師們開發和維護系統的難易程度。

低複雜性。低複雜性實際上是智力上的可管理性一部分,由於上述同樣的原因,這點也很重要。

維護的方便性。維護的方便性意味著設計時要為負責維護的程式設計師著想。在設計中,要不停地想象維護程式中將會對你的設計提出的問題。應該把維護程式設計師當作你的聽眾,同時把系統設計成明白易懂的。

最小的聯絡性。最小的聯絡性指的是按照保持子程式之間的聯絡最少的原則來設計,應該利用強內聚,鬆散耦合和資訊隱蔽等作為指導原則來設計系統,使其內部的聯絡性盡可能少。最小的聯絡性可以極大地減小綜合、測試和維護階段的工作量。

可擴充性。可擴充性指的是不必影響系統的內部結構,就可以對系統的功能進行強化,你可以改變系統的某一部分而不影響其餘部分,使得最大可能性變動對系統帶來的影響最小。

可重複使用性。可重複使用性指的是把系統設計成其中許多部分是可以被其它系統借用的。

高扇入。高扇入指的是對於乙個給定的子程式來說,應該有盡可能多的子程式呼叫它。高扇入表明乙個系統在低層次上充分利用了功能子程式。

低或中等程度扇出。低或中等扇出指的是對乙個確定的子程式來說,它所呼叫的子程式應該盡可能地少。高扇出(大約 7 個以上)說明乙個子程式控制了許多其它子程式,因此可能是很難理解的。而中等扇出則表明乙個子程式只把任務交給了數量較少的其它子程式,因此是比較容易理解的。低扇出(少於 4個)看起來像是乙個子程式沒有把足夠的任務交給其餘的子程式去做,但經驗表明並不是這樣。一項研究表明有 42%只呼叫乙個子程式的子程式是沒有錯誤的,有 32%的呼叫 2~7 個子程式是沒有錯誤的, 而在呼叫 7 個以上子程式的情況中,只有 12%是沒有錯誤的(card, church 和 agresi,1986)。由此,card 認為 0~2個扇出是最優的。

可移植性。可移植性指的是把系統設計成很容易轉到另外的環境下執行。

簡練性。簡練性指的是把系統設計得沒有任何多餘部分。voltaire曾說過,當一本書不能刪掉,而不是不能添補任何內容時,才可以認為它已完成了。在軟體中,這也是非常正確的,因為當你對系統進行改進時,你不得不對冗餘的**進行開發、評審、測試和維護等等工作,而且在開發軟體的新版本時,新版本也不得不與這些冗餘的**相容。最有害的觀點是「多加入些又不會有害,怕什麼呢?」

成層設計。成層設計指的是盡量分解的層次是成層的,這樣你可以在每乙個單獨的層次上觀察系統,同時也可以使觀察的層次是連續的。也就是說當你在某一層次上觀察系統時,不會看到在其它層次上看到的東西。你會經常遇到某些子程式和軟體在幾個層次上起作用。這樣會使系統很混亂,應盡力避免。

如果在編寫乙個先進系統時,不得不借用許多舊的、設計得不好的**,那麼你可以在新系統中建立乙個層(layer),與那些舊**相聯接。精心設計這個層使它把舊**的缺點隱含起來,從而使新層表現了一整套連續的功能。然後,讓程式的其餘部分呼叫些子程式而不是直接呼叫舊**。成層設計的好處是:(1 )它可以使你避免與拙劣的舊**直接打交道;(2)一旦你想廢棄那些舊**中的子程式的話,只要修改一下介面層就可以了。

標準化技求。標準化技術是深受歡迎的。乙個系統使用的奇特的、非標準的技術越多,當別人第一次讀它時就會越感到可怕,也越難理解。應該通過採用常用的、標準化的技術使得人們在閱讀它時是一種熟悉的感覺

摘自《**大全》

雲計算為什麼越來越受歡迎?雲計算的9個特點總結

1 資源的可用性很高。此服務旨在為多個客戶提供服務,這是在多租戶模型的幫助下完成的。提供了許多物理和虛擬資源,可以根據客戶的需求進行修改。可以說客戶不知道資料的儲存位置,甚至他們也無法控制資料。2 按需自助服務。它是雲計算的重要且有價值的功能之一,因為使用者可以持續監控伺服器的正常執行時間,功能和分...

程式設計師必學!最受歡迎技能Linux的入門基礎

0.如何入坑 1.入門級書籍 這本書就可以作為入門教學大綱了。這本書只是大綱,細節自己去挖 linux shell指令碼攻略 書很薄,但是內容豐富。主要是教會你如何腦洞bash。unix linux 系統管理技術手冊 字典類書籍,是個不 zhuang 錯 bi 的選擇。鳥哥的linux私房菜 基礎篇...

瘋狂的程式設計師閱讀筆記

匈牙利命名法 把自己修改過的 旁邊打上注釋 changed by yyyy mm dd windows環境下 32 位組合語言程式設計 羅雲彬,電子工業出版社 boundscheck,專門測試記憶體洩漏。加密與解密 看雪編著,電子工業出版社 看雪論壇 反逆向工程 逆向工程 加殼kernel 作業系統...