設計文件的心得 每天進步一點點

2021-08-03 08:52:37 字數 1402 閱讀 4237

設計的思考步驟:

1、每個機能的啟動與終了要優先考慮,確定啟動與終了的觸發條件;

2、每條函式呼叫與事件的傳送都要考慮系統狀態以及競合的處理

3、未慮勝先慮敗,每次函式呼叫和事件的傳遞要優先考慮不成功的情況,如果不成功,需要做什麼樣的failsafe

4,、函式呼叫與事件的傳送會有時間的延遲,兩個模組的通訊,傳送與接收之間會有時間差,如果這段時間差內又有新的呼叫或時間傳送需要怎麼處理(函式呼叫的處理方式還不太一致,事件的處理可以將新傳送或接受的事件寫進waitqueue,等系統完成上一action的完成,退出busy後,再從waitqueue中讀取事件進行處理);

5、系統設計的時候要考慮模組間的通訊方式,即程序間通訊採取哪一種,目前socket是c/s模式中最常用的程序間通訊,優點在於有唯一的標識,資料傳輸可靠;

6、基本設計要有狀態機與狀態遷移表:

①要列出所有的狀態與觸發事件;

②寫狀態遷移時用十字交叉法,即當前狀態收到某一事件的action與遷移,至於根據欄,我目前接觸到的都是用 - 代替,沒有具體寫些什麼

7、如果是新規設計,模組構成圖要在第一步做,而且一定要讓客戶認可後再畫時序(我就吃過一次這個虧,基本設計完成後,客戶說模組設定的太細緻,要求再簡單些,然後就重做了時序,雖然重做很簡單,但畢竟浪費了工數);

8、v字模型開發時,做的任何文件都要符合上位文書的要求

9、時序中如果有ref,要避免迴圈參考(即a參考了b,b又參考了a);

10、完成某一機能時,要先有申請資源的操作,對相關函式、操作handle、分配到的記憶體空間等進行初始化;

11、沒完成一次函式呼叫或事件操作後,要考慮下一步是否有不同的場景,如果有,要加alt分別處理;

12、每次操作完成後,要考慮系統狀態的更新;

13、所有操作完成後,要將系統設為idle狀態,並將資源釋放(按照初始化時的順序,反著進行);

14、failsafe : 當需要確保兩模組間通訊成功時,可使用callback機制,timer的時間設定要符合有式樣依據;

15、模組通訊完成後,要保證狀態保持一致;

設計修改的思考步驟:

1、為什麼要修改,目的是什麼;

2、增加或刪除的流程是做什麼用的,為什麼這麼做,修改後會不會因其他流程發生改變;

3、如果增加請求事件或函式呼叫,確定傳入的引數數量和引數值是否正確,是否需要返回的事件或返回值;

4、事件與狀態要分清楚,事件觸發狀態的改變;當系統處於busy狀態時,要將新接收到的事件寫進waitqueue,系統解除busy後,再將待處理事件讀出,處理。

持續更新……

每天進步一點點

很多朋友總喜歡問 成功靠什麼?其實,成功很難單一的歸納為靠什麼條件,如果一定要回答,只能從某種意義上說 很多人的成功就是靠他們每天比別人 多做一點點 正如古人有云 業精於勤,荒於嬉。這裡所說的勤,也就是比別人多做一點點,即付出多一點的勞動和努力。不要小看這一點點,又如古語說 集腋成裘,積沙成丘。如果...

每天進步一點點

在模組化程式設計時,在子模組中宣告變數 例如unsigned char aa 不需要在標頭檔案中宣告 要在主函式中呼叫,要寫成 extern unsigned char aa 而不能寫成 extern aa 寫成extern aa 則無法改變aa的值。2014年9月22日 21 12 00 品質因數...

每天進步一點點(一)

最近接了第乙個商業專案,一人獨立完成從前台到後台,做了有幾天的時間,每天進步一點點,把每天看到的學到的記錄下來,以後也堅持。後台繼續用自己的extjs老本行,因為相比其他js庫,extjs用的比較熟,現成的 也有所以開發起來也比較容易,今天學到了兩個ext的新東西。一 ext和後台進行互動大部分用的...