怎樣寫大型應用程序?


羅馬不是一天建成的,

大型應用程序也不是一步到位的.

國外在寫大型應用程序之前,往往從小程序開始起步,逐漸變大的.

建議看看&<計算機程序的構造與解釋&>,簡稱SICP.

一般而言,掌握Lisp,應付大型程序就不難了.

在&<實用common lisp&>中,保羅說,lisp語言很適合開發大型程序,

因為lisp能夠調整問題空間和解空間的邊界.

我們之所以對大型程序手足無措,主要是因為沒有經驗,沒有積累.

lisp有最高級的抽象機制--宏機制,

這種機制,一方面使人有很高的抽象能力,

為什麼會有盲人摸象,就是因為盲人的抽象能力弱.

另一方面,宏機制就以減少代碼長度,lisp語言的代碼長度是C/C++語言的1/20.

因此,別人用五年開發的程序,lisp只用三個月就能實現,

國外的頂級黑客都會lisp,

因為lisp的生產效率高,使得黑客能白手起家,一個人完成所有的庫開發.

但是軟體企業不喜歡黑客,因為他們希望程序員是可以替代的.

是哪種可以在市場召之即來的打工者.

為什麼Java程序員那麼多,因為培訓java程序員只需要幾個月.

對軟體企業而言,他們需要的不是創新,而是執行.

java是一種工業語言,也最不容易出錯的語言.

在印度,經過培訓的程序員,一百個人寫的代碼是一樣的.

當然中國人很難做到這一點,中國人想法千差萬別.

而C++程序員要精通至少十年以上.

大型程序的設計者一般都是黑客出身,他們不過是將以前的框架用C++,java實現.

以前一個人做的事,現在需要幾十人甚至幾百人干.

從而形成大型程序.

對於大型程序,

第一要定位準確,知道要開發什麼類型的.

第二要模仿,

網上有許多開源的程序,慢慢讀.

但是中國人太浮了,沒幾人人願意學習,

人們都希望速成.

希望象武俠片中主人公一樣,一夜之間練成神功.

國內的軟體工程教材對開發大型程序而言沒有任何意義.

沒有一個高手是從軟體工程學起的.那是給那些想混學位的人的.

軟體工程適合ERP,電子商務等項目,對應用程序效果有限.

事實上,世界上銷售的程序85%為大型程序,但這些大程序的開發成功率低於30%.

如果軟體工程真管用,就不是那種情況了.

軟體工程有點象馬列理論,實踐起來滿不是那麼回事.


推薦閱讀:

滑塊驗證碼(滑動驗證碼)相比圖形驗證碼,破解難度如何?
如何看待從Django 2.0開始不再提供對Python2的支持?
JS的基本數據類型的臨時包裝類型對象的觸發條件和生命周期是多久?下面代碼為何結果迥異?
0基礎如何在5天之內完成一個選戶系統?

TAG:Web開發 | 編程 | 架構 |