1. 程式人生 > >讀後感:自底向上的編程

讀後感:自底向上的編程

讀後感 多個 函數 團隊 發的 isp 程序包 一個 paul

這是一篇93年的文章,作者是保羅·格雷厄姆(Paul Graham),他的主要著作有:《黑客與畫家》。

這篇文章的主要內容:

主流的觀點認為一個程序的功能單元不能太大,否則會提高代碼的復雜度,導致軟件很難理解。

所以在設計軟件時會采用至頂向下的設計策略,把系統持續分解為子函數,直到生成大量的可理解的子函數單元。

但是Lisp的開發者采用的是自底向上的設計策略:修改語言來適應問題。即基於基礎的語言創建出新的運算符,從而簡化程序的設計,隨著語言越來越接近問題,最後語言變得好像就是為該問題所定制的一樣。

自底向上的設計並不是簡單地按不同的順序重新組織程序,而是先將抽象出大量的運算符,而通過一個很精簡的代碼來實現程序。而且抽象程度越高,你的程序代碼就越簡單。

自底向上的設計有以下幾個好處:

1、程序包含了更少的組件,這樣組件間的聯系和依賴也大大減少,從而減低代碼的復雜度和出錯率;

2、可以提高代碼的復用度,為第一個程序開發的工具也可以被後續的代碼所利用;

3、代碼提高了可讀性,讀者只需要理解抽象運算符的功能;

4、讓設計的思路更清晰,只需要對組件進行優化;

自底向上的設計不僅只適用於Lisp,其實函數庫即自底向上的設計。但是Lisp提供了更廣泛的能力,從這點來說,Lisp不僅是一種新的語言,更是一種新的開發模式。

自底向上的開發風格適於多個小組的團隊,因為小組間的交流溝通成本會降低很多。

讀後感:

自底向上的設計更多的還是一種思維方式,把跟業務流程無關的基礎的組件抽象出來,從而使得業務流程的代碼盡量精簡。

讀後感:自底向上的編程