新的方法 (New Approach)¶
第一章:簡介 — ANSI Common Lisp 中文版
新的方法 (New Approach)?
本書的目標之一是不僅是教授 Lisp 語言,而是教授一種新的編程方法,這種方法因為有了 Lisp 而有可能實現。這是一種你在未來會見得更多的方法。隨著開發環境變得更強大,程序語言變得更抽象, Lisp 的編程風格正逐漸取代舊的規劃-然后-實現 (plan-and-implement)的模式。
在舊的模式中,錯誤永遠不應該出現。事前辛苦訂出縝密的規格說明,確保程序完美的運行。理論上聽起來不錯。不幸地,規格說明是人寫的,也是人來實現的。實際上結果是, 規劃-然后-實現 模型不太有效。
身為 OS/360 的項目經理, Frederick Brooks 非常熟悉這種傳統的模式。他也非常熟悉它的后果:
任何 OS/360 的用戶很快的意識到它應該做得更好...再者,產品推遲,用了更多的內存,成本是估計的好幾倍,效能一直不好,直到第一版后的好幾個版本更新,效能才算還可以。而這卻描述了那個時代最成功系統之一。
舊模式的問題是它忽略了人的局限性。在舊模式中,你打賭規格說明不會有嚴重的缺失,實現它們不過是把規格轉成代碼的簡單事情。經驗顯示這實在是非常壞的賭注。打賭規格說明是誤導的,程序到處都是臭蟲 (bug) 會更保險一點。
這其實就是新的編程模式所假設的。設法盡量降低錯誤的成本,而不是希望人們不犯錯。錯誤的成本是修補它所花費的時間。使用強大的語言跟好的開發環境,這種成本會大幅地降低。編程風格可以更多地依靠探索,較少地依靠事前規劃。
規劃是一種必要之惡。它是評估風險的指標:越是危險,預先規劃就顯得更重要。強大的工具降低了風險,也降低了規劃的需求。程序的設計可以從最有用的信息來源中受益:過去實作程序的經驗。
總結
以上是生活随笔為你收集整理的新的方法 (New Approach)¶的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [gist]Android SHA-1
- 下一篇: getOwnPropertyNames(