民初思韻網

加入收藏   設為首頁
選擇語言   簡體中文
你好,請 登陸 或 注冊
首頁 人文思韻 傳奇人物 歷史思潮 時代作品 話題討論 國民思韻 民初捐助 賬戶管理
  搜索  
    時代作品 >>> 讀書—連接古今充實信仰
字體    

大教堂與市集 六 花香何曾隨名去?
大教堂與市集 六 花香何曾隨名去?
埃里克.斯蒂芬.雷蒙     阅读简体中文版

六 花香何曾隨名去?
在研究了李納斯的作法,并得到他何以成功的理論之后。我決定在我的新項目中(當然沒有Linux那么復雜和雄心勃勃)有意地嘗試這些理論。
但是我首先要對popclient做大幅的重寫和簡化。卡爾·哈里斯的代碼很扎實,但是卻如同大多C程序設計師一樣,有種不必要的繁瑣。他把代碼置于核心,而數據結構作為其支撐。結果代碼很漂亮,而數據結構就很特別了,甚至可以說很繚亂了。(至少就LISP老手的標準而言是這樣的)
除了改進代碼和數據結構,我的重寫還有另一層目的,就是要把它演進成一個我完全理解的東西。因為要是你不能對程序了如指掌,維護起來可就不好玩了。
在最初的一個月里,我只是遵循卡爾的設計理念。我所作的第一個重要改變是加入了對IMAP的支持。做法是:把原來的協議支持部分改寫成一個通用驅動和三個可調用的方發表(分別針對POP2、POP3和IMAP)。這些變動都闡明了一個程序員需要銘記在心的通用原則(特別是對于像C這樣本身不支持動態類型的語言):
 
9.精巧的數據結構即使搭配笨拙的程序代碼,也比精巧代碼加笨拙結構的組合要強得多。
Smart data structures and dumb code works a lot better than the other way around.
 
布魯克斯在《人月神話》的第九章中寫道:“只給我看你的工作流程卻隱藏表單,我將仍然一頭霧水。但是如果你給我展示表單,或許不需要流程圖,就能柳暗花明了。”[1]哪怕歷經三十年的文化和術語變遷,這個觀點依舊正確。
這時(1996年9月初,開工后大約六周),我開始考慮要給軟件換個名字了。因為畢竟它已經不僅僅是個POP客戶端了。但是我在猶豫,因為設計上沒有什么新突破,我的popclient需要獨具一格。
當popclient學會如何將收取到的郵件再通過本機SMTP端轉發的時候,這一切迅速改變了。這個容后再表。首先,我之前說過要在開發過程中驗證李納斯成功的理論,那么(你也會問)我是怎么做到的呢?
我早發布,常發布(從未低于十天一次,在高強度的開發周期則每天一次)。
我把每個曾和我討論fetchmail的人都列入公測名單。
每當新版本發布,我都會不厭其煩的給公測名單里的每個人寄送一份,并鼓勵其參與。
我聽取公測人員的意見,在設計上征求他們的看法。并且當他們寄回補丁和反饋的時候,給予鼓勵。
這些簡單的方法立竿見影。在項目一開始,我就收到了很多能讓大多數程序員垂涎三尺的高質量錯誤報告,而且經常還附帶不錯的修補方法。我還收到過深刻的評論、支持者的來信,高明的功能建議。這一切都證明:
 
10.如果你把公測參與者作為最寶貴的資源來對待,那么他們就會成為你最寶貴的資源。
If you treat your beta-testers as if they're your most valuable resource, they will respond by becoming your most valuable resource.
 
這個項目龐大的公測名單(我稱之為“fetchmail之友”)成為衡量fetchmail成功的重要標準。在我最后一次修訂本書(2000年11月)的時候,已經有了287個成員,而且每周還要增加兩到三名。
實際上,在1997年5月下旬我改寫本書的時候發現,發現出于一個有趣的原因,當人數逼近300峰值時就會開始流失成員。一些人要求我把他們從名單中去掉,因為fetchmail對他們而言已經近乎完美了,所以他們不再需要收到通訊了。或許對于一個成熟的市集型項目,這是其正常生命周期的一部分吧。
 
 
譯者按:
題解:本章原題為“When Is a Rose Not a Rose?”,化典自莎士比亞名句“A Rose, by any other name, would smell as sweet.”(即使玫瑰不再叫做玫瑰,其依然香醇如故),作者這里的反問是說,即使軟件的名字變了但是其優良的質量不會變。至于其名稱和質量究竟變與沒變,將在下文見分曉。
1.其中原文是:“Show me your flowchart and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won't usually need your flowchart; it'll be obvious.”在計算機領域flowchart指流程、運作機制、發生過程、在此處可以理解為程序代碼。而table則指數據的有序排列,這里可以理解為數據結構。《人月神話》是軟件工程方法概論;而且布魯克斯在寫作的時候,現在的計算機詞匯還沒有產生,比如數據結構(data structures)的說法大致是與其寫作同期(1968年)才開始被廣泛使用的。所以作者說“歷經三十年的文化和術語變遷”。
 

2014-07-01 18:21

歡迎訂閱我們的微信公眾賬號!
春秋茶館訂閱號
微信號 season-tea(春秋茶館)
每天分享一篇科技/遊戲/人文類的資訊,點綴生活,啟迪思想,探討古典韻味。
  清末民初歷史人物  民初人物
孫中山的啟蒙者
近現代的嶺南,湧現出大批引領中國前行的先驅者,近代改良主義者,香港華人領袖何啟便是其中的一位。他不僅是孫中山在香港西醫書院的老師,更是孫中山走向革命道路的思想導師。
為元首清廉不阿至情至性
林森(1868年—1943年8月1日)字子超,號長仁。福建閩侯人。1868年出生于福建省閩侯縣尚干鄉,1884年于臺北電信局工作。1902年到上海海關任職,其間參加反清活....
資助民初精神網
        回頂部     寫評論

 
評論集
暫無評論!
發表評論歡迎你的評論
昵稱:     登陸  註冊
主頁:  
郵箱:  (僅管理員可見)

驗證:   验证码(不區分大小寫)  
© 2011   民初思韻網-清末民初傳奇時代的發現與復興   版權所有   加入收藏    設為首頁    聯繫我們    1616導航