設計一個類的過程包含一些特有的設計任務——定義類的特定職責,定義類全部隱藏的「祕密」,以及精確地定義了類的接口所表明的抽象概念;決定這個類是否要從其餘類派生而來,以及是否容許其餘類再從它派生;指出這個類中關鍵的公用方法,標識並設計出類所需用到的重要數據成員。上述這些設計任務可能須要反覆迭代屢次,直到直接了當地設計出了程序爲止。程序員
你在前面第一個步驟中標識出類的主要子程序以後,還須要建立這些子程序。在編寫各個程序時一般還會引出更多的獲重要、或次要的子程序,建立這些新加入的子程序的過程每每還會反過來波及類的整體設計。算法
一般狀況下,子程序在建立的同時也通過了測試。在整個類能夠工做以後,應該再對其總體進行復查和測試,以便發現那些在子程序的獨立測試層次上沒法測出的問題。編程
在建立子程序的過程當中涉及到的主要活動——也就是設計子程序、檢查設計、編寫子程序的代碼、檢查代碼。編程語言
「僞代碼」這個術語是指某種用來描述算法、子程序、類或完整程序的工做邏輯的、非形式的、相似於英語的記法。僞代碼編程過程則是一種經過書寫僞代碼而更高效地建立程序代碼的專門方法。工具
用相似英語的語句來精確描述特定的操做測試
避免使用目標編程語言中的語法元素。僞代碼能讓你咋一個比代碼自己略高的層次上進行設計。當用編程語言來構建時,你就又降到了更低的層次上,這不但失去了在更高層次上設計時所能獲得的主要好處,並且也會受限與沒必要要的語法上的約束。編碼
在本意的層面上編寫僞代碼。用僞代碼去描述解決問題的方法的意圖,而不是去寫如何在目標語言中實現這個方法。設計
在一個足夠低的層次上編寫僞代碼。以即可以近乎自動的從它生成代碼。若是僞代碼的層次過高,就會掩蓋代碼中的問題細節。你應該不斷的精化僞代碼,加入愈來愈多的細節,直到看起來已經很容易直接寫出僞代碼爲止。接口
僞代碼一經寫好,你就能夠依照它去生成代碼了,同時還把僞代碼變成編程語言中的註釋。這樣就節省了大部分註釋的工做。若是僞代碼是按照上述各原則寫成的,那麼這些註釋就會很完整也頗有意義了。文檔
僞代碼使得評審更容易。你無須檢查源代碼就能夠評審細節設計。僞代碼使的底層設計的評審工做更容易,同時減小了對代碼自己進行評審的須要。
僞代碼支持反覆迭代精化的思想。從一個高層設計開始,把這一設計精化爲僞代碼,而後再把僞代碼精化爲源代碼。這樣持續不斷地小步精化,使你能夠在把它推向更低的層次的同時,不斷檢查已造成的設計。這樣作的結果,使你可能在最高的層次上發現最高層次的錯誤,在中間的層次上發現中間層次的錯誤,而在最低的層次上發現最低層次的錯誤——避免其中的任何錯誤變成真正的問題或者危害到更細節層次的工做。
僞代碼使變動更加容易。短短几行僞代碼要比整頁的代碼更容易修改。
僞代碼能使給代碼作註釋的工做量減到最少。在典型的編碼過程當中,人們都是先寫出代碼,而後再添加註釋。而在僞代碼編程過程當中,僞代碼中的語句將會變爲代碼中的註釋,因此實際上更多的工做是刪除註釋,而不是把它加進來。
僞代碼比其餘形式的設計文檔更容易維護。使用其其餘方法時,設計和代碼是分離的,當其中之一變更的時候,二者就再也不一致。而使用僞代碼編程過程時,僞代碼中的語句將會轉變爲代碼中的註釋。所以只要維護代碼間的這些註釋,那麼這些僞代碼所造成的設計文檔就仍然是準確的。
做爲進行詳細設計的工具,很難有其餘方法能與使用僞代碼相媲美。一項調查代表,程序員們更使用僞代碼,由於它簡化了用編程語言進行構建的工做,且有助於發現細節設計中的不足之處,還能簡化文檔的編制以及修改的工做。誠然,僞代碼不是進行詳細設計的惟一工具,可是僞代碼和僞代碼編程過程卻都會是你很是有用的工具。