Think HY 讀《觀止-微軟》一書有感

依舊伊利丹發表於2009-12-25

8月中旬在豆瓣上有一本書吸引了我,這本書便是< > ,英文名<> 。這本書講述的是微軟在八十年代末九十年代初設計和開發NT核心的過程,所以書名下還有一個冗長的副標題--微軟建立NT和未來的奪命狂奔(The Breakneck Race to Create Windows NT and the Next Generation at Microsoft)。Windows NT完成於93年年中,而這本書的英文版也於94年6月釋出,時隔15年其中文版終於能與我們見面。

與前幾年技術專家李維寫的<> 不同,本書的作者Pascal Zachary是文科出身,這本書寫作風格更像報告文學。這本書面向的讀者還有非技術人員,所以對技術和行業以及軟體本身的分析和描述很少,作者關注的是人,設計、開發、測試Windows NT的工程師。作者不惜筆墨的介紹他們的個人成長史、工作、家庭。所以看過此書感覺軟體開發過程好像就是與人不同溝通的過程,在軟體專案中,這個過程所花的時間可能比與機器交流的時間還多。

書中的主人翁是David Cutler ,加入微軟之前,此公就職於DEC,設計了大名鼎鼎的VMS系統,因為在DEC的"稜鏡"取消了,一怒之下出走DEC,而被蓋茨慧眼識中收入麾下。 David Cutler加入微軟之後一直在考慮著設計一款全面超越那幫博士們設計的Unix,而當時蓋茨剛從Windows作業系統中嚐到了甜頭,雄心勃勃的正準備打造一款為21世界準備的作業系統 ,於是,兩個人為了這個共同的理想開啟了NT專案。

Culter最初為NT核心的設計制定了三個目標: 1 可移植性:創造出一個可以適合每一種硬體的作業系統。2 可靠性:  用“防彈”系統來結束不必要的崩潰。3 個性化:NT應該靈活十足,它將擁有不止一種使用者介面。面對可移植性的問題,Cutler決定用高階語言來實現NT系統,這意味著NT會很大,是的,最終釋出的NT版本是很大,但硬體行業的飛速發展幫了NT的忙。而對於可靠性和個性化的問題,Cutler大膽的在NT中採用了微核心設計方式,可這要付出速度的代價,Cutler和他的團隊最終用高超的程式設計技巧彌補了速度的不充。

90年,微軟與IBM在OS/2專案上分道揚鑣,OS/2專案的人馬加入到Cutler的團隊,微軟決定讓支援更美觀的介面和更好的易用性的 Windows與追求可移植性、可靠性的NT核心合流, 這次合流讓微軟能集中精力打造Windows NT這款改變世界的作業系統。

本書後面三章寫得比較草率,作者囉嗦著BUG的更改過程和團隊成員心理狀態,沒有站在更高的角度分析軟體工程的得與失,也沒有全面的介紹Windows NT對軟體業的影響,這樣的內容可能只能在布魯克斯 的< >找到,對文科背景的作 者勉為其難。

總的來說,這是本不錯的書,NT系統釋出一年,作者能將這項複雜的工程活動描述得如此傳神,實屬不易。感謝Pascal和中文版的譯者將本書帶給我們,讓我們能重歷那無比艱辛而又激昂的NT建立過程。

微軟的張亞勤博士評價此書:

“合上這本書的時候你會發現,軟體不僅是智慧的結晶,也是信仰、尊嚴和魅力的代名詞。“

而我,作為一個剛進入軟體行業的新人,從此書中看到的是軟體開發過程的複雜、艱辛和瘋狂,正如書中所述,研發軟體的過程是世界上最複雜的智力活動,而正是那些複雜才成就了Cutler們的偉大,我們應該向偉大的程式設計師致敬。

在軟體開發方面的,這本書帶給我以下幾點思考:

1. 吃你自己的狗糧 eating your own dog food,只有通過吃狗糧,創作者才能發現由軟體系統各個部分相互作用產生的問題。這一點與Unix的成功原因相似,The UNIX Time- Sharing System一文中曾提到Unix的開發者同是也是Unix系統的使用者,所以他們會不斷的改進系統。


2.  構建與測試的重要性,Cutler甚至親自駐紮在構建實驗室,這兩個環節決定了系統的最終質量。

3.  編碼質量、可讀性的重要性。 Cutler的程式碼風格,一行程式碼一行註釋,在Google Code上搜尋David Culter的大名可以欣賞到他寫的程式碼(發現他老人家60歲時還在編碼)。

4. 團隊的重要性。 Cutler在DEC組建了他的核心團隊,這些團隊成員性格各異,有著不同的專長。 NT每每到最關鍵的時候,Cutler的團隊總能有人挺身而出。

5. 市場因素是軟體專案成功的內因,技術頂天,市場立地。NT的經理穆格利亞反覆強調的是

“計算機軟體儘管一定是由程式設計師構思和創造出來的,但一定要反映當前的市場狀況和客戶需求“。

6. 偉大的工程作品總是來自偉大的公司,一來大公司牛人多,二來大工程專案要耗費大量人力、財力,非一般機構所能承受。
-------------------------

 

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/hzbooks/archive/2009/10/16/4679722.aspx

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15783504/viewspace-623583/,如需轉載,請註明出處,否則將追究法律責任。

相關文章