成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

世界上最完美的兩個軟件,太厲害了!

開發 前端
在航天飛機軟件開發小組,軟件開發周期中有三分之一的時間不寫代碼,而是和NASA一起用來討論需求:軟件應該做什么事情。即使是最微小的細節也要達成一致。不是口頭達成一致,而是寫下來,文檔化,形成規范,非常專業和精確。

今天給大家介紹兩個軟件,一個體現了人類在軟件開發流程上的極致,另外一個則體現了程序員個體能力的巔峰。

一、航天飛機飛控軟件

先來說第一個,航天飛機飛行控制軟件,就是下圖這個大家伙。

圖片圖片

航天飛機重達120噸,還攜帶著2000噸的燃料。

它有四臺硬件相同,軟件也相同的計算機對發射過程進行精準控制,從幾千個傳感器中提取信息,每秒做出幾百個決定,并且對每個決定進行投票。

第五臺計算機,則運行著不同的軟件,隨時待命,準備替換其他發生故障的計算機。

這些計算機要確定什么時候對主發動機點火,什么時候下令固體火箭助推器點火,火箭姿態控制....

每次發射,軟件都控制著價值40億美元的設備,六名航天員的生命,以及國家的夢想。

這個軟件不能崩潰,不能重啟,最小的誤差都不允許:一個三分之二秒的計時錯誤就會使航天飛機偏離航線近5公里。

洛克希德馬丁公司的航天飛機小組實現了目標:軟件幾乎沒有錯誤,接近完美。

軟件的最后三個版本,每個版本(42萬行代碼)只有一個Bug。

最后的11個版本一共有17個錯誤,同等復雜度的商業程序有5000個。

這樣的軟件是如何煉成的呢?

答案是極為苛刻軟件流程。

洛克希德馬丁公司的航天飛機軟件小組有260名員工,這些人創造了一種完全不同的開發文化。

沒有超級明星程序員,開發軟件的整個流程都是有意設計的,不依賴任何特定的人。

這個流程使得他們過上正常的生活,滿足最后期限,交付完全符合其承諾的軟件。

這個流程包含幾個要點:

1. 軟件的質量取決于軟件的計劃

在航天飛機軟件開發小組,軟件開發周期中有三分之一的時間不寫代碼,而是和NASA一起用來討論需求:軟件應該做什么事情。

即使是最微小的細節也要達成一致。不是口頭達成一致,而是寫下來,文檔化,形成規范,非常專業和精確。

未經雙方的同意,規范中的任何內容都不會更改。

沒有良好定義的規范,程序員不會改任何一行代碼。

例如讓航天飛機使用GPS導航,這一變化僅涉及6366行代碼,占程序總量的1.5%, 但是相關的文檔長達2500頁,涵蓋了各種各樣的條件,分支,幾乎就是偽代碼了。

而航天飛機系統的軟件,總文檔足足有30卷,40000頁!

2. 兩個百科全書式的數據庫

一個是代碼歷史的數據庫,每一行代碼都有注釋,顯示每次的更改時間,更改原因,更改目的,有哪些文檔詳細說明了更改。

對于代碼發生的一切都記錄在這里,每一行代碼的“祖譜”都可以立刻提供給每個人。

第二個是錯誤數據庫,記錄了軟件在編寫和運行時發生的每一個錯誤,可以追溯到近20年前。

每個錯誤都會記錄下它被發現的時間,是誰發現了它,當時正在發生什么活動(測試,訓練,飛行),錯誤是如何引入的,為什么逃過了設計階段,開發階段,測試階段的嚴格審查.....

由于積累了如此多的數據,以至于他們開發了一個代碼模型,能預測某個版本中可能有多少錯誤。

如果開發人員和測試人員發現的Bug太少,大家會重復流程,努力使得現實和預測相匹配。

3.不止要修復錯誤,要修復任何引入錯誤的東西

如果軟件存在缺陷,那么編寫它的方式一定存在問題。

在計劃階段沒有發現的Bug,是如何逃過檢查的?檢查流程是否出了問題,是不是要在checklist上增加一項檢查?

重要的是,不要將錯誤歸咎于個人。流程要承擔責任---啟動一個分析的流程來發現Bug的原因。

航天飛機軟件開發小組的流程是如此強大,不僅僅通過了SEI CMM5的認證,而且SEI的不少標準就來自于這個小組的各種實踐。

洛克希德馬丁開發了近乎完美的軟件,大家肯定會想到一個問題:這種開發方式會不會扼殺創造力?

他們的回答是:會,因為大家必須按照手冊上規定的流程去做,并且時時刻刻都有人在背后監督。

人們必須將創造力用于改變流程,而不是改變軟件。

二、排版軟件TEX

經典巨著《計算機程序設計的藝術》在程序員界可謂是無人不知,無人不曉了。

圖片圖片

1973年,這部剛出到第三卷的書(計劃寫七卷)已被計算機界視為“神作”, 1974年美國計算機學會就“迫不及待”的把計算機界的最高獎圖靈獎授予高德納。

此時高德納僅僅36歲 !只靠一套還沒有完成的書就獲得ACM圖靈獎,不但是前無古人,估計也后無來者了。

然而令人大跌眼鏡的是, 拿到圖靈獎以后, 高德納宣布暫停寫作, 理由竟然是現有的計算機排版系統太差,破壞了書的美感 !然后單槍匹馬開發出了革命性的排版系統TEX , TEX至今仍是全球學術排版的不二之選。

TEX功能強大,幾乎無懈可擊,其版本號也很有意思,不是數字(3.0, 3.1, 3.2....) 也不是年份(Windows 95, 98, 2000...),而是不斷逼近的圓周率 (3.1415926...) ,這從側面反映了軟件幾近完美,不需要做改進了。

高德納曾表示“最后一次升級是(于我過世后)將版本數改為 π,那時任何余下的漏洞將被看作程序的功能!

有趣的是高納德為此還設置了獎金,誰能從TEX 發現第一個Bug ,獎勵2.56美元,然后每年翻一倍,5.12,10.24......

作為算法的大師,不可能不知道指數增長的可怕性,但高德納對自己的代碼質量非常有信心,事實上,當獎金達到327.68美元以后,基本上就沒什么Bug報出來了。 

那些找到Bug 的人收到高德納簽名的支票以后也不去兌換, 而是作為珍品收藏了 :-)

高德納編程能力之強可以說是碾壓硅谷的所有程序員,面向對象的發明人Alan Kay(2003年圖靈獎)這么說過:

60年代末,當我在斯坦福從事AI項目時,每個感恩節我們都會和硅谷的編程高手們舉行編程競賽,McCarthy(人工智能之父,1971年獲圖靈獎)出題, 獎品是好像是一只火雞。

高德納參與的那一年,把我們都給虐了, 他的代碼無論是程序執行和算法執行都是最快的,并且他用的是一臺最慢的批處理機器!

我們問高德納:“你是怎么做到的?”

他說:“當我學習編程時,如果每天有五分鐘的時間使用機器,就高興得不得了, 所以必須要讓程序一次運行成功,沒有錯誤,算法設計達到最佳。”

責任編輯:武曉燕 來源: 碼農翻身
相關推薦

2023-03-03 09:11:55

軟件開發NASA

2024-10-14 10:58:13

2024-07-10 10:25:15

2023-07-31 08:59:46

軟件FossilSQLite

2013-04-24 09:57:08

Excel微軟

2025-03-27 00:45:00

2021-11-01 07:50:44

TomcatWeb應用

2022-04-08 08:11:28

Python代碼

2018-11-06 12:22:18

排序算法代碼

2023-03-16 09:57:34

Linux發行版Arch Linux

2013-06-09 08:52:50

哈希表

2010-09-02 13:21:46

2014-09-05 09:08:58

2025-03-13 00:35:00

2013-07-09 10:11:41

程序設計大賽程序員

2020-10-23 10:36:08

Dropbox

2015-11-25 09:41:05

數據中心

2014-02-11 09:58:19

環保數據中心泰坦

2024-02-26 12:42:40

2019-07-21 07:37:20

APT惡意軟件網絡安全
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产成人精品久久 | 亚洲成人精品久久 | 麻豆久久久9性大片 | 欧美日韩精品久久久免费观看 | 欧美一区免费 | 视频二区国产 | 国产 欧美 日韩 一区 | 欧美久久久久久 | 免费性视频 | 91av视频在线免费观看 | 草草网| 精彩视频一区二区三区 | 蜜桃av鲁一鲁一鲁一鲁 | 日本午夜视频 | 午夜精品久久久久久久久久久久 | 欧美xxxx性| 日韩成人在线视频 | 不卡视频一区二区三区 | 天天干干 | 欧美日韩一区二区三区视频 | 日韩高清一区 | 国产精品久久久久久福利一牛影视 | a免费观看 | 久久亚洲天堂 | 国产精品久久久久久久久 | www.日韩系列 | 一级a爱片性色毛片免费 | 一区二区精品电影 | 亚洲一区二区 | 狠狠久| 国产精品一区二区免费看 | 国产精品久久久精品 | 欧美精品一区二区三区在线播放 | 91免费视频观看 | 国产999精品久久久久久 | 在线观看国产精品视频 | 2020亚洲天堂 | 国产小视频自拍 | 亚洲欧美日韩网站 | 欧美成人免费在线 | 午夜视频在线播放 |