02 2009 檔案
摘要: “是啊,無論怎么樣,統一和標準是我們的需求,只有用統一的標準的符號我們才可以更好的交流。一個反面的例子是我們上數字電路里面的與門、非門、與非門和或門等等的邏輯符號,國家標準與業界流行的國際標準就不一樣,導致學生在畢業的時候可能看不懂行業內的電路圖——就事實而論,我們大部分的電路模塊產品和芯片的說明手冊還是歐美的居多——這樣即加重了企業負擔,可能需要再花一部分精力來培訓新人,也增加了學生的負擔——為了在畢業的時候增加些許競爭力,不得不學習兩套符號系統。總之我覺得這個事情還是比較腦殘的,讓我想到窄軌鐵路……”老C借機發泄了一下從畢業就開始累積的郁悶。。。。。。
“UML是建模工具,不是編程工具。模型需要對實際的事物進行合理的剪裁和取舍,注意模型的清晰性比信息的完備性更重要,如果不論青紅皂白的將所有信息一股腦全部放在模型上,那樣圖形看起來會很恐怖的。”老C接著解釋,“所以不要要求模型完全反應細節信息,只要在大方向上對就可以了。同時你還要了解模型所要描述的問題規模,如果是一個大型的交易系統,按照我繪出的sequence diagram的詳細程度,那是根本不可能的。在描述這樣的系統時,
閱讀全文
摘要: “你體會的挺深刻的啊,”老C點點頭,“你說的沒有錯,如果照這種方式寫代碼的確有些繁雜,因為這個工作不應當直接在編碼過程中進行,而應當在設計過程中進行。要解決這個問題,需要引入新的工具——UML……等會再給你解釋什么是UML……”制止住小P的發問,老C接著說,“確實,將 index放在list內部會造成種種不便,但是也有解決之道,比較經典的做法是將index從list中拿出來單獨成為一個模塊或class,這就是 iterator設計模式,我們以后再慢慢說……”他停頓了一下,“至于怎么良好的設計list,也有一些經驗可以總結,同時也有一些業內的慣用法,這個我們接下來會更早討論這個問題。”
“噢?那么我應當先學習什么呢?”小P問。
“嗯,先接觸一下UML,”老C想想說道,“然后我給你講講一些關于線性表的慣用法或者習語。最后我們再來討論如何將index與它的操作從list中拿出來。”
閱讀全文
摘要: “哦?這樣有什么好處呢?”小P問道。
“最大的好處是在語言層面對基于對象的編程方法給予了更多的支持,這樣在開發的時候開發人員的智力負擔會小很多……”老C停了一下,加重了語氣,“我們做事情的目的是簡化問題,任何新工具和新方法被發明的目的都是為了使問題看起來更簡單一些,而不是使問題看起來更復雜。”老C想了想,“如果你了解了某種語言特性所針對的需求,你就可以更準確的使用這種語言特性而不會出現誤解,同時也會說,啊,這樣多好,不得不如此。”
閱讀全文
摘要: 老 C接過彩筆,在白板中間從上到下畫了一道線,左邊寫上思想,右邊寫上方法。“你先寫寫思想上的東西吧,”他喝了一口水,“思想是最重要的,我們需要通過學習語言來學習思想——只要學會了編程的思想,那么你再學習其他任何語言都會很快——要深入語言去學習,而不是只是使用語言。首先我們的第一個經驗是,以數據為中心思考問題,而不是以活動為中心思考問題。”
“嗯,好像沒有什么問題,如果我們以數據為中心思考問題,那么總會抽象出一些變化較少的,相對穩定的數據,將對數據的操作與數據捆綁到一個代碼單元中,這樣就可以有限度的復用已經開發的代碼……”小P若有所思。
“呵呵,這只是一個好處,還有一些其他的好處,需要你在以后的編程中體會。”老C笑笑。這樣白板的左邊出現了第一個和第二個經驗的總結。
閱讀全文
摘要: “編譯……運行……ok,我們的V1.01版本也好了。”老C又將所有文件拷貝到AppleGame_V1.01目錄下。
“等等,”小P問道,“我看不出有什么實質性的變化啊,無非就是用一些static函數替換了原來的內容,換湯不換藥啊。”
“呵呵,你看不出區別是因為你熟悉,如果你第一次看代碼,你會覺得是在代碼中看到QueMoveToNextChild(&(game->childrenQueue_))感覺好些,還是看到一堆鬼畫符似的結構體點點點的感覺好?”老C解釋道,“意圖,這里強調意圖,因為使用了函數你一眼就可以看出程序執行的意圖,而如果是一堆代碼的話,你還要反應半天;如果明白了意圖,再去看代碼,感覺會好很多——而且你可以根據代碼意圖提出更好的實現方法;同時這樣也減少了代碼中注釋的工作量——一般在維護代碼的時候人們很少去修改注釋的;最后,如果你的具體實現需要被維護,這樣也給維護代碼的人提供了線索,無需他在源代碼程序中找來找去……如果不小心還有可能將你的代碼進行錯誤的修改……”他找到水杯,喝了一大口,“總之不要害怕小而短的函數,有時它們對閱讀代碼的人來說是很
閱讀全文
摘要: “很遺憾,一般概念都伴隨一些晦澀的術語,而一般人則視術語如猛虎,認為術語只屬于學術,在一般的實際開發中沒有什么用處——然而我們組織邏輯的最基本單位就是詞匯,如果我們在思考、交流的時候連基本的詞匯也無法理解,那么就根本談不上什么思考和交流了——畢竟大多數人類還是靠語言進行思考的,除了少數天才使用圖形和符號進行思考;同時術語也簡化了我們交流的復雜度,比如我說PID,只要你理解了什么是PID這個概念,那么我就不用畫出框圖并解釋這個帶有比例、積分和微分環節的反饋系統,這樣在行業內工作的人們可以方便的使用術語進行交流……羅嗦了這么多,只是希望你不要對這些晦澀的術語帶有排斥的心理,而是要慢慢習慣它們,接受它們……雖然有些術語名字起得的確有些腦殘……”老C喋喋不休的說道。
閱讀全文