2008-10-06 42 views
7

換句話說:你寫的代碼是不能失敗。我有興趣聽到那些從事過有關心臟監測,水質檢測,經濟基礎,導彈軌跡或航天飛機上O2濃度項目的人員的消息。你寫的最重要的代碼是什麼,你是如何處理它的?

你是怎麼準備寫這樣的代碼的:在方法上,智力上和情感上?

編輯

我標誌着這個wiki以防代表問題讓人們無法答覆。我認爲在這個問題上會比以往有更多的觀點。

回答

2

現在我正在研究一個系統的基本代碼,該系統從診所和醫院爲醫療帳單辦公室檢索醫療患者信息。我們從一個較小的客戶和一個漫長的入侵期開始,以確保質量,但最終這個代碼需要安全處理來自不同設施的許多客戶的各種報告格式。

它與您的示例的規模並不完全相同,但是一個錯誤的錯誤可能會導致錯誤的人員被收費或正確的人員被收費到一個不存在的地址(篡改信用報告)或者開放人員進行身份盜用,所以它仍然非常重要。噢,這可能意味着醫生得不到如此快的報酬。這一點也很重要,特別是從商業的角度來看,但與數據保護和完整性不在一個班級。

3

我已經寫了一臺MRI機的計算機接口。它不會傷害最終用戶,因爲它只是記錄管理,但它可能會給出不正確的診斷或忽略重要信息。

測試,很多很多的測試。

單元測試,中高級測試。模擬所有可能的輸入組合。還有很多硬件本身的測試。測試必須以完整和有條理的方式完成。測試需要花費更多的時間,而不是寫入。

錯誤報告

所有的錯誤都必須報告並且很明顯。如果這樣做不會損害專利,那就快速失敗。

對於積極保持活力的人來說,情況更糟。它絕不能停止工作。如果失敗,需要重新啓動並繼續嘗試。在硬件出現故障的情況下,冗餘內部部件也是必須的。

對錯的公司來說,這確實是一種困難的情況。但是,如果事情進展順利,你的資金充足,釋放壓力不高,這可能是一個非常有益的工作空間。

5

我寫了一個醫院使用的血壓測量裝置的驅動程序。如果「失敗」,病人將不會在預定的時間檢查他的血壓;如果他的血壓異常,則不會觸發警報(在較大的系統中)。這種事件可能具有臨牀意義。

我的方法是在非工作環境中徹底閱讀規範/文檔(以避免立即開始編碼的誘惑),然後在工作中再次閱讀。之後,我總結了紙上可能的狀態和行爲以及算法的「流程圖」,並註釋了所有潛在的現實世界「不良事件」(電纜拔掉,電池正在死亡等)。最後,我編寫並重寫了驅動程序三次,每次都有不同的機制(例如FSM),並比較了它們的結果。每次迭代都幫助我找出了我尚未發現的弱點。第三次改寫是「官方」結果。我與同事一起檢查了每個迭代。情緒準備包括說服自己,如果不可思議的事情發生,至少我不是故意疏忽 - 只是無能(舊的「我只是人」的藉口)。 ;-)

3

不是一個真正的答案,但:

我有誰寫的嵌入式控制軟件,用於激光眼科手術機器的朋友。當他自己進行激光眼科手術時,他一定要去找一位使用公司系統的眼科醫生。我非常欽佩這個人。我無法想象我寫過的一款軟件,其質量水平足夠高,我相信我自己的視力。

0

儘管沒有像MRI機器或血壓計那麼重要,但我在一家在線賭博服務提供商工作時做了重寫Blackjack的工作。二十一點是迄今爲止最流行的在線遊戲,數百萬美元將通過這個軟件(並且)。

我編寫了與服務器和客戶端分開的遊戲引擎,並使用了測試驅動開發來確保我所假設的結果正在通過。我還有一個包裝器「服務器」,它具有可以讓我玩的控制檯輸出。這實際上僅僅是因爲它模仿真實的服務器界面,因爲玩一個二十一點的文本版本不是很有趣或簡單(「你畫一個10.你現在有10和6,而經銷商有6顯示。[bsd]>「)

遊戲仍在某些網站上運行,據我所知,在多年的遊戲後從未有任何金融bug。

2

我聽說過用於在美國宇航局編寫代碼的過程的瘋狂故事。每行代碼都有大約10-20行的文檔,以及測試,完整的修訂歷史記錄等。每次發現錯誤時,不僅代碼被評估和修復,而且整個編寫代碼的過程,整個命令鏈等,以回答這個問題:「在我們的流程中發生了什麼錯誤,使得這個錯誤被納入第一位?」

+1

您正在考慮洛克希德馬丁軍團太空任務系統部門的這個小組,詳見http://www.fastcompany.com/magazine/06/writestuff。他們贏得了「聯邦政府軟件工程研究院(SEI)令人垂涎的5級排名」,這是一個令人印象深刻的故事。 – DarenW 2008-10-07 01:48:14

1

我的第一個「真正的」軟件工作是編寫一個用於規劃立體定向腦手術的GUI應用程序。測試,測試,測試...絕對沒有正式的方法,工程風格的想法,只是年輕的程序員開始。當他們開始討論使用該軟件來控制機器人手臂並使用激光時,沒有采取任何嚴肅的工程方法,我感到有點擔心,留下更多辦公地。

1

我已經創造了其分別裝在幾個旅遊denstinations當地政府的文化和旅遊部門在巴厘島信息系統的應用,提供有關文化,地圖,住宿等

如果失敗則可能廣泛的信息遊客無法得到他們最需要的正確信息,被盜竊者欺騙,或者失去了某處:)

相關問題