怎樣寫大型應用程序?
01-24
羅馬不是一天建成的,
大型應用程序也不是一步到位的.國外在寫大型應用程序之前,往往從小程序開始起步,逐漸變大的.
建議看看&<計算機程序的構造與解釋&>,簡稱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天之內完成一個選戶系統?