關於NASA的10條編程規則,他們曾表示:這些規則的做用就像汽車上的安全帶:最初,它們可能有點不舒服,但過了一下子,它們的使用就變成了次日性,而沒有使用它們就變得不可想象。
Gerard J. Holzmann編程
10條規則的力量是由NASA / JPL可靠軟件實驗室的Gerard J. Holzmann於2006年建立的。這些規則旨在消除某些使代碼難以查看或靜態分析的C語言編程實踐。c#
這些規則是對MISRA C規則的補充,並已合併到更大的JPL編碼標準集中。安全
一、避免使用複雜的流程構造,例如goto
和recursion
網絡
二、全部循環都必須有固定的邊界(這能夠防止代碼錯亂)函數
三、避免堆內存分配工具
四、將函數限制爲單個打印頁面編碼
五、每一個函數至少使用兩個運行時斷言spa
六、將數據的範圍限制在儘量小的範圍內3d
七、檢查全部非void函數的返回值,或將其強制轉換爲void以指示該返回值無用指針
八、謹慎使用預處理器
九、將指針使用限制爲單引用,而且不使用函數指針
十、編譯全部可能的警告活動;全部的警告都應該在軟件發佈以前解決
這些規則是爲C語言定義的,可是其中一些規則也能夠在現代Web或移動項目中使用。如下是個人挑選的部分適用規則,供你們參考。
recursion
若是不須要執行簡單任務for
能夠完成的任務,我將不會使用遞歸的方式。在你沒法直接訪問機器的地方,例如在火星,月球或海底,進行遞歸是很是危險的行爲!
與第一個規則相似,我將使用固定範圍的循環來防止無限循環或代碼錯亂。
將函數的長度減小到一頁,能夠更輕鬆地掌握程序特定例程的全部功能。
若是超過此長度,則代表你在代碼中添加了太多冗餘的內容。
另外一個問題多是你沒有將函數分割爲更小的函數防止代碼重複。
若是你正在使用JavaScript那就永遠不要使用var
-老是喜歡使用let
來防止變量泄漏或覆蓋,甚至重影。
其餘語言也應該這樣作,好比c#。對變量使用最受保護和最小的做用域,例如private或protected。
對於其餘語言也應該遵循這樣的規則,例如C#。對變量使用最大保護和最小做用域,例如private
或protected
。
使用JavaScript,你將沒法編譯代碼,但能夠輕鬆使用ESLint或相似工具從代碼中獲取警告。
而後,即便你認爲它們沒有用,但也應刪除並修復它們。如今咱們已經準備好將咱們的代碼發射到火星了!
原文連接: https://medium.com/better-programming/the-power-of-10-nasas-rules-for-coding-43ae1764f73d h
歡迎點擊「京東雲」瞭解更多精彩內容
以上信息來源於網絡,由「京東雲開發者社區」公衆號編輯整理,不表明京東雲立場。