NASA的10條編碼規則

Alt

關於NASA的10條編程規則,他們曾表示:這些規則的做用就像汽車上的安全帶:最初,它們可能有點不舒服,但過了一下子,它們的使用就變成了次日性,而沒有使用它們就變得不可想象。

Gerard J. Holzmann編程

10條規則的力量是由NASA / JPL可靠軟件實驗室的Gerard J. Holzmann於2006年建立的。這些規則旨在消除某些使代碼難以查看或靜態分析的C語言編程實踐。c#

這些規則是對MISRA C規則的補充,並已合併到更大的JPL編碼標準集中。安全


10條編碼規則

一、避免使用複雜的流程構造,例如gotorecursion網絡

二、全部循環都必須有固定的邊界(這能夠防止代碼錯亂)函數

三、避免堆內存分配工具

四、將函數限制爲單個打印頁面編碼

五、每一個函數至少使用兩個運行時斷言spa

六、將數據的範圍限制在儘量小的範圍內3d

七、檢查全部非void函數的返回值,或將其強制轉換爲void以指示該返回值無用指針

八、謹慎使用預處理器

九、將指針使用限制爲單引用,而且不使用函數指針

十、編譯全部可能的警告活動;全部的警告都應該在軟件發佈以前解決

這些規則是爲C語言定義的,可是其中一些規則也能夠在現代Web或移動項目中使用。如下是個人挑選的部分適用規則,供你們參考。


#1.避免使用複雜的流程構造,例如Goto和遞歸

recursion若是不須要執行簡單任務for能夠完成的任務,我將不會使用遞歸的方式。在你沒法直接訪問機器的地方,例如在火星,月球或海底,進行遞歸是很是危險的行爲!

#2.全部循環必須有固定邊界(這能夠防止代碼錯亂)

與第一個規則相似,我將使用固定範圍的循環來防止無限循環或代碼錯亂。

#4.將函數限制爲單個打印頁面

將函數的長度減小到一頁,能夠更輕鬆地掌握程序特定例程的全部功能。

若是超過此長度,則代表你在代碼中添加了太多冗餘的內容。

另外一個問題多是你沒有將函數分割爲更小的函數防止代碼重複。

#6.將數據範圍限制到最小

若是你正在使用JavaScript那就永遠不要使用var -老是喜歡使用let來防止變量泄漏或覆蓋,甚至重影。

其餘語言也應該這樣作,好比c#。對變量使用最受保護和最小的做用域,例如private或protected。

對於其餘語言也應該遵循這樣的規則,例如C#。對變量使用最大保護和最小做用域,例如privateprotected

#10.編譯全部可能的警告活動;全部的警告都應該在軟件發佈以前解決

使用JavaScript,你將沒法編譯代碼,但能夠輕鬆使用ESLint或相似工具從代碼中獲取警告。

而後,即便你認爲它們沒有用,但也應刪除並修復它們。如今咱們已經準備好將咱們的代碼發射到火星了!

Alt

原文連接: https://medium.com/better-programming/the-power-of-10-nasas-rules-for-coding-43ae1764f73d h

歡迎點擊「京東雲」瞭解更多精彩內容

以上信息來源於網絡,由「京東雲開發者社區」公衆號編輯整理,不表明京東雲立場。

相關文章
相關標籤/搜索