日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
如何像NASA頂級(jí)程序員一樣編程——10條重要原則

引言: 你知道 NASA ***程序員如何編寫(xiě)關(guān)鍵任務(wù)代碼么?為了確保代碼更清楚、更安全、且更容易理解,NASA 的噴氣推進(jìn)實(shí)驗(yàn)室制定了 10 條編碼規(guī)則。

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到滄縣網(wǎng)站設(shè)計(jì)與滄縣網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類(lèi)型包括:成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋滄縣地區(qū)。

NASA 的開(kāi)發(fā)者是編程界最有挑戰(zhàn)性的工作之一。他們編寫(xiě)代碼并將開(kāi)發(fā)安全的關(guān)鍵任務(wù)應(yīng)用程序作為其主要關(guān)注點(diǎn)。

在這種情形下,遵守一些嚴(yán)格的編碼規(guī)則是重要的。這些規(guī)則覆蓋軟件開(kāi)發(fā)的多個(gè)方面,例如軟件應(yīng)該如何編碼、應(yīng)該使用哪些語(yǔ)言特性等。

盡管很難就一個(gè)好的編碼標(biāo)準(zhǔn)達(dá)成共識(shí),NASA 的噴氣推進(jìn)實(shí)驗(yàn)室(JPL)遵守一個(gè)編碼規(guī)則,其名為“十的次方:開(kāi)發(fā)安全的關(guān)鍵代碼的規(guī)則”。

由于 JPL 長(zhǎng)期使用 C 語(yǔ)言,這個(gè)規(guī)則主要是針對(duì)于 C 程序語(yǔ)言編寫(xiě)。但是這些規(guī)則也可以很容地應(yīng)用到其它的程序語(yǔ)言。

該規(guī)則由 JPL 的***科學(xué)家 Gerard J. Holzmann 制定,這些嚴(yán)格的編碼規(guī)則主要是聚焦于安全。

NASA 的 10 條編寫(xiě)關(guān)鍵任務(wù)代碼的規(guī)則:

  1. 限制所有代碼為極為簡(jiǎn)單的控制流結(jié)構(gòu) — 不用 goto 語(yǔ)句、setjmp 或 longjmp 結(jié)構(gòu),不用間接或直接的遞歸調(diào)用。
  2. 所有循環(huán)必須有一個(gè)固定的上限值。必須可以被某個(gè)檢測(cè)工具靜態(tài)證實(shí),該循環(huán)不能達(dá)到預(yù)置的迭代上限值。如果該上限值不能被靜態(tài)證實(shí),那么可以認(rèn)為違背該原則。
  3. 在初始化后不要使用動(dòng)態(tài)內(nèi)存分配。
  4. 如果一個(gè)語(yǔ)句一行、一個(gè)聲明一行的標(biāo)準(zhǔn)格式來(lái)參考,那么函數(shù)的長(zhǎng)度不應(yīng)該比超過(guò)一張紙。通常這意味著每個(gè)函數(shù)的代碼行不能超過(guò) 60。
  5. 代碼中斷言的密度平均低至每個(gè)函數(shù) 2 個(gè)斷言。斷言被用于檢測(cè)那些在實(shí)際執(zhí)行中不可能發(fā)生的情況。斷言必須沒(méi)有副作用,并應(yīng)該定義為布爾測(cè)試。當(dāng)一個(gè)斷言失敗時(shí),應(yīng)該執(zhí)行一個(gè)明確的恢復(fù)動(dòng)作,例如,把錯(cuò)誤情況返回給執(zhí)行該斷言失敗的函數(shù)調(diào)用者。對(duì)于靜態(tài)工具來(lái)說(shuō),任何能被靜態(tài)工具證實(shí)其永遠(yuǎn)不會(huì)失敗或永遠(yuǎn)不能觸發(fā)的斷言違反了該規(guī)則(例如,通過(guò)增加無(wú)用的 assert(true) 語(yǔ)句是不可能滿足這個(gè)規(guī)則的)。
  6. 必須在最小的范圍內(nèi)聲明數(shù)據(jù)對(duì)象。
  7. 非 void 函數(shù)的返回值在每次函數(shù)調(diào)用時(shí)都必須檢查,且在每個(gè)函數(shù)內(nèi)其參數(shù)的有效性必須進(jìn)行檢查。
  8. 預(yù)處理器的使用僅限制于包含頭文件和簡(jiǎn)單的宏定義。符號(hào)拼接、可變參數(shù)列表(省略號(hào))和遞歸宏調(diào)用都是不允許的。所有的宏必須能夠擴(kuò)展為完整的語(yǔ)法單元。條件編譯指令的使用通常是晦澀的,但也不總是能夠避免。這意味著即使在一個(gè)大的軟件開(kāi)發(fā)中超過(guò)一兩個(gè)條件編譯指令也要有充足的理由,這超出了避免多次包含頭文件的標(biāo)準(zhǔn)做法。每次在代碼中這樣做的時(shí)候必須有基于工具的檢查器進(jìn)行標(biāo)記,并有充足的理由。
  9. 應(yīng)該限制指針的使用。特別是不應(yīng)該有超過(guò)一級(jí)的解除指針引用。解除指針引用操作不可以隱含在宏定義或類(lèi)型聲明中。還有,不允許使用函數(shù)指針。
  10. 從開(kāi)發(fā)的***天起,必須在編譯器開(kāi)啟***級(jí)別警告選項(xiàng)的條件下對(duì)代碼進(jìn)行編譯。在此設(shè)置之下,代碼必須零警告編譯通過(guò)。代碼必須利用源代碼靜態(tài)分析工具每天至少檢查一次或更多次,且零警告通過(guò)。

關(guān)于這些規(guī)則,NASA 是這么評(píng)價(jià)的:

這些規(guī)則就像汽車(chē)中的安全帶一樣,剛開(kāi)始你可能感到有一點(diǎn)不適,但是一段時(shí)間后就會(huì)養(yǎng)成習(xí)慣,你會(huì)無(wú)法想象不使用它們的日子。

此文是否對(duì)你有幫助?不要忘了在下面的評(píng)論區(qū)寫(xiě)下你的反饋。


分享文章:如何像NASA頂級(jí)程序員一樣編程——10條重要原則
文章位置:http://www.5511xx.com/article/cdesdsi.html