NASA 的十大編碼準則

2021-08-10 17:51:50 字數 1325 閱讀 8774

nasa 的十大編碼準則:

1、簡化控制流程:使用盡可能精簡的控制流程構造編寫程式 – 不要使用 setjmp 或 longjmp 構造、goto 語句,以及直接或間接的遞迴呼叫。

2、為迴圈使用固定次數上限:所有的迴圈必須有乙個固定的上限。 必須可以被某個檢測工具靜態證實,該迴圈不能達到預置的迭代上限值。如果該上限值不能被靜態證實,那麼可以認為違背該原則。

3、不要在初始化完成後進行動態記憶體分配

4、不使用冗長的函式:如果標準格式為乙個語句一行、乙個宣告一行,那麼函式的長度應在一張紙的範圍內,即每個函式的**行不能超過 60。

5、低斷言密度:**中斷言的密度平均低至每個函式 2 個斷言。斷言被用於檢測在實際執行中的異常情況。斷言必須沒有***,並應該定義為布林測試。當乙個斷言失敗時,應該執行乙個明確的恢復操作,例如,把錯誤情況返回給執行該斷言失敗的函式呼叫者。對於靜態工具來說,任何能被靜態工具證實其永遠不會失敗或永遠不能觸發的斷言違反了該規則(例如,通過增加無用的 assert(true) 語句是不可能滿足這個規則的)。

6、以最小範圍級別宣告資料物件:該原則同時也是資料隱蔽(data hiding)的基本原則。所有資料物件均必須以盡可能最小的範圍級別進行宣告。

7、檢查引數和返回值:應在每次呼叫函式後檢查非空函式的返回值,並在每個函式內部檢查引數的有效性。

8、限制預處理程式的使用:預處理器的使用僅受包含標頭檔案和簡單的巨集定義的限制。符號拼接、可變引數列表(省略號)和遞迴巨集呼叫不被允許。所有的巨集必須擴充套件為完整的語法單元。通常不建議使用條件編譯指令,但也不總是能夠避免每次在**中這樣做的時候必須有基於工具的檢查器進行標記,並有充足的理由。

9、限制指標的使用:具體來說,不允許有超過一級的解除指標引用。解除指標引用操作不可隱藏在巨集定義或型別宣告中。不允許使用函式指標。

10、編譯所有**:從開發工作第一天開始時,在編譯器開啟最高端別警告選項的條件下對**進行編譯。在此設定之下,**必須零警告編譯通過。**必須通過源**靜態分析工具,每天檢查一次以上,且零警告通過。

關於這些準則,nasa 這樣評價到:

這些準則就像要求你坐車的時候必須系上安全帶一樣,剛開始可能會讓你覺得不舒服,但之後你就會慢慢習慣,並開始無法接受沒有它的日子。

**:

優秀專案經理的十大準則

1 公正 以整體利益為出發點,不偏不倚,一視同仁 2 執著 專注於任務,不達成目標誓不罷休 3 熱情 用充分的熱情和信心影響和感染整個團隊 4 迅速 反應敏捷,快速應變,不拖沓不猶豫 5 勇敢 困難面前不屈不撓 6 熱心 樂於助人,幫助同事和下屬同步前進 7 理性 關注資料和客觀事實,善於進行歸納對...

外媒盤點NASA十大令人敬畏太空成就

據 cnet 報道,1958 年 10 月 1 日,美國宇航局 nasa 開始正式運作。自此之後,這家太空機構實現了許多具有里程碑意義的目標,包括阿波羅登月 天空實驗室 skylab 空間站以及太空梭等。cnet 從中評選出十大最令人敬畏的成就。太空梭專案 1972 年,美國宇航局啟動了太空梭計畫,...

python十大語法 python十大易錯語法

1.for else 不是 if 和 else 才是原配嗎?for 和 else 也是一對,而且是合法的。for i in 1,2,3,4 print i else print i,我是else 結果 4 我是else 如果在 for 和 else 之間 迴圈體內 有第三者 if 插足,也不會影響 ...