人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

VC++學習經驗:談編程本質

VC++學習經驗:談編程本質

更新時間:2022-08-17 文章作者:未知 信息來源:網絡 閱讀次數:

leezy_2000把程序設計歸結為四大要素:問題、概念、邏輯和技巧,并且舉了一個例子加以說明。問題是程序的目的,概念是在解決問題時用到的抽象事物(或者說是術語),邏輯是描述如何解決問題的,技巧等同于實現,使用何種計算機語言或框架等。這四大要素其實是程序設計的四個步驟,分析、抽象、概要設計、實現。從程序開發的過程上來說,的確如此。
  
  但是,作者把程序的本質歸結為概念和邏輯,我并不贊同。我倒是有些贊同cppTrier的觀點,“編程的本質是問題模型到編程語言的映射”。但是這樣描述的話,程序員變成了翻譯員,抹殺了程序員的創造性。所以我覺得編程的本質更應該是以編程語言的思想描述、解決現實問題。Thinking in Programming Language。
  
  關于語言和框架,leezy_2000的描述非常的經典。“語言是邏輯的載體和描述工具,框架是對邏輯和概念的一種封裝”。使用不同的語言解決相同的問題,他們的邏輯是不同的。一個極端的例子是Prolog語言,這是我見到過的最奇怪的一種語言,但是用它來解決一些離散數學的問題卻很方便。如果同樣的問題讓一個Prolog程序員和一個C++程序員來解決,他們的邏輯顯然是不同的。大師說“語言磨礪了我們的思維方式,也決定了我們的思考范圍”,就是這個道理(感謝weihere的引用,有時間我要去讀讀《The C++ Programming Language》)。每一種語言都有它內在的一種描述問題的思想和方法。
  
  作為一個程序員,對于所使用的語言應該有一個全面、深刻的認識,掌握它的思想,學會用它來思考和解決問題。這也是Bruce Eckel在他的系列書籍Thinking in Java,Thinking in C++所提倡的。
  
  那么如何掌握語言的思想呢?看看Bruce的書就行了嗎?那樣只能學到一些皮毛。你必須實踐,寫上幾千,幾萬行代碼。只有在水里才能學會游泳。一本好書只能幫助我們縮短學習的過程,它不能代替實踐。我不能想象一個人如果從來沒有寫過面向對象的程序,他是如何理解UML之類的東西的;更不能想象一個初學C++或是Java的程序員是如何通過讀讀《Design Pattern》就能掌握設計模式的。

  計算機是一門實踐的學科。當我們在討論編程的本質時候,決不能忘記實踐是重要的。本質固然重要,如果少了實踐,就會變得形而上學。即使是微軟的高級副總裁,Rick Rashid,仍然每年堅持編寫大約50 000行代碼。他認為,用最新的技術編程可以使他保持對計算機最前沿的技術的敏感。(摘自李開復《給中國學生的一封信》)。而在我的周圍,一些只帶幾個程序員的小官,就以編程為恥,他認為象他這樣的官(也叫項目經理)寫程序,太丟份。真讓人汗顏!
  
  我們是程序工人(Coder)還是軟件設計師(Designer)?在回答這個問題之前,我們首先要明白,什么是設計?設計是工程上的概念,設計的結果是一組文檔,制造團隊可以依據這份文檔,準確的構建出產品。源代碼是滿足這一要求的惟一的軟件設計文檔。和一般工程不同的是,根據源代碼構建產品的成本非常低廉,它無須什么工人,計算機可以代勞。現在流行的看法,似乎只有畫UML圖才是設計,而使用設計模式編碼的設計倒不算設計。這其實是本末倒置了,UML圖只能算是輔助設計文檔,真正的設計文檔是源代碼。因此,我們都是軟件設計師,我們是在設計軟件,而不是構建軟件。(這一觀點出自于Jack Reeves的《源代碼就是設計》,《敏捷軟件開發-原則、模式與實踐》附錄D)
  
  設計軟件不是憑空的,你總是要以某一種編程語言來設計。和語言無關的設計,只能算是概要設計,只能做到一定的程度。要做詳細設計必須和某一種語言相關。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 缙云县| 万山特区| 青田县| 高安市| 响水县| 汕尾市| 手机| 甘南县| 洛川县| 台中县| 崇明县| 卓资县| 克什克腾旗| 读书| 辽源市| 营山县| 青田县| 登封市| 山阴县| 托克托县| 九龙坡区| 股票| 建平县| 武功县| 庐江县| 花莲县| 黄大仙区| 武邑县| 金秀| 彭阳县| 耒阳市| 手机| 昭觉县| 鄂伦春自治旗| 宁津县| 呼伦贝尔市| 交口县| 邹城市| 四川省| 囊谦县| 奉化市|