把 Code 上到外太空 - How NASA writes space-proof code
覺得我們的內容實用嗎? MyApollo 電子報讀者募集中!歡迎訂閱電子報!
「別人的 production 是上雲,我的 production 是上到外太空。」
NASA 的任務都是耗費鉅資、時間的競賽,為了減少浪費人民的納稅錢、提高任務成功率等等,因此如何很大程度減少程式碼錯誤、保證程式碼在出錯的情況下也能有機會恢復,也就成為他們開發過程必須重視的一環。
NASA 工程師 Gerard 在 2006 年就提出 10 條準則(The power of ten)來幫助他們減少人為錯誤,進而提升程式碼品質。
其中一些準則在現在的業界也是很常見,包含不要使用 goto, jump 等語法,保持函式單一職責與簡潔等等。
除此之外,也有比較不常見的一些準則,例如不使用遞迴(resursion)以簡化程式流程(也避免 stack overflow 造成錯誤),為迴圈設定執行次數上限,避免非預期的無窮迴圈發生,不使用 Heap 以避免記憶體洩漏(memory leak)等等,都是蠻值得做為參考的準則,如果你是開發車用系統、嵌入式系統的人也能使用類似的準則: