軟件設計
一些想法吧
[初探Xerces系列]DTD
摘要: 由于DTD不支持數據類型,所以必然會被能表達更豐富含義的Schema代替。
但是DTD語法簡單,在多數場合夠用,Schema看起來貌似不太友好,呵呵。
還是根據需要自行選擇。
閱讀全文
posted @
2009-06-18 18:22 創建更好的解決方案 閱讀(1123) |
評論 (0) 編輯
[初探Xerces系列]DOM Lev3 Core的關鍵特性整理
摘要: 總結了DOM Lev3 Core的新特性,給人印象深刻的是重命名,自舉,驗證內存中的文檔和文檔標準化。
文末對使用Xerces API驗證內存中的文檔進行了示例。
閱讀全文
posted @
2009-06-12 18:28 創建更好的解決方案 閱讀(1503) |
評論 (0) 編輯
[初探Xerces系列]對外提供CLI
摘要: 應用程序的接口不外乎三種,CLI——命令行接口,API——應用編程接口和GUI。
因為現在有大把集成快速開發功能的IDE可供選擇,因此GUI的實現變得非常的順手。工具水平提高了,這看起來是理所當然的事情。其實呢?
閱讀全文
posted @
2009-05-20 10:12 創建更好的解決方案 閱讀(1423) |
評論 (0) 編輯
[初探Xerces系列]目錄結構也可以輔助提高代碼可讀性
摘要: 項目組曾經一度有過爭論,認為目錄層次過深,跨度過大(我們通常設置在3層以內),會降低編譯效率。
閱讀全文
posted @
2009-05-19 17:23 創建更好的解決方案 閱讀(1547) |
評論 (0) 編輯
重構故事——Chapter03
摘要: A計劃1:平臺版本在v2.1版本基礎上進行遷移,逐個模塊改造,平臺1.0版本,在業務分支3.0版本之前發布,在3.x版本與其他業務版本結合;
B計劃1:平臺版本不再單獨演進,將現在的平臺技術應用到即將發布的3.0版本中。包括插件結構、動態加載、動態激活,3.0版本中的業務模塊一律按照插件規范開發。
// ---------------------------------------------------------------
A計劃2:CCB管理配置文件,規范插件對主界面的配置。
B計劃2:必須為界面配置文件準備替代方案,防止因為配置文件損壞造成的程序加載失敗。
閱讀全文
posted @
2008-08-25 16:14 創建更好的解決方案 閱讀(1206) |
評論 (0) 編輯
重構故事——Chapter02
摘要: 很多模塊都需要在工程打開之時,獲取一定的信息,比如工程是新建的還是打開的,臨時目錄在哪里,工程目錄又在哪里。
工程管理模塊就像個奶媽,把一系列的信息從XML文件或者從用戶剛剛輸入的信息都進來,然后再一個個的去NotifyProjectOpen。工程關閉之時在挨個通知他們要關燈了,NotifyProjectClose。怪不得耦合度高啊,全是被動式初始化,能不高嗎?
閱讀全文
posted @
2008-08-14 17:47 創建更好的解決方案 閱讀(1151) |
評論 (0) 編輯
重構故事——Chapter01
摘要: 比較頭痛的是:原來在工程管理器中一系列的通知機制的修改,神秘的GIS模塊,還有混亂不堪的數據庫抽象層。按照Eclipse中對插件式的描述,這些插件不但作為插頭插在別的插口上,還對外提供插口。
閱讀全文
posted @
2008-08-07 20:17 創建更好的解決方案 閱讀(1396) |
評論 (3) 編輯
C++ Builder實現可配置界面中遇到的問題【2、問題解決】
摘要: 類數量不變,因為經過分析,是因為在exe和dll之間傳遞VCL特有數據類型所致。
閱讀全文
posted @
2008-07-16 15:19 創建更好的解決方案 閱讀(1086) |
評論 (0) 編輯
C++ Builder實現可配置界面中遇到的問題【1、問題出現】
摘要: 提供一個可配置的界面,供DLL們來注冊菜單、按鈕這些界面元素,界面元素所需的資源由DLL提供。DLL們需要外顯的方法,綁定到自己注冊的界面元素上。
閱讀全文
posted @
2008-07-15 12:11 創建更好的解決方案 閱讀(1193) |
評論 (0) 編輯
溫度計的寓言
摘要: 故事是這樣的:有一個由5個年輕人合伙建立的小軟件公司YoungSoft co. ltd,成立不久,業務不多,剛剛實現收支平衡。
一場突發的流行性感冒,使得市面上體溫計奇缺,價格也是水漲船高。一個農民企業家投資50w創建的溫度計公司Good Metor,一直慘淡經營,這么好的機會,自然不會放過。市場上價格最高的是一種能記錄一段時間內人體溫度變化曲線,并判斷使用者是否患上這種可怕的流感的智能體溫計Smart Thermometer。
閱讀全文
posted @
2008-03-14 20:49 創建更好的解決方案 閱讀(562) |
評論 (0) 編輯
好文如風,拂去數朵疑云——Designing Qt-Style C++ APIs by Matthias Ettrich
摘要: 評價一片文章是否爛的標準是:你是否看過之后感覺不痛不癢。
一片爛文章的來由通常有兩條,一是文章的爛是客觀存在的,另一個就是看文章的人太麻木,以至于針尖戳背亦難覺痛癢。
這篇文章,釋開了我心頭的數朵疑云,漂浮如下。
閱讀全文
posted @
2008-03-03 07:59 創建更好的解決方案 閱讀(1995) |
評論 (6) 編輯
我是笨人——讀Rob Pike的《Notes on C Programming 》(附全文鏈接)
摘要: Ken Thompson —— Unix 最初版本的設計者和實現者,禪宗偈語般地對 Pike 的原則4 作了強調:拿不準就窮舉
花哨的算法比簡單算法更容易出 bug 、更難實現。盡量使用簡單的算法配合簡單的數據結構。
只要掌握了數據結構中的四大法寶,就可以包打天下,他們是:array 、linked list 、hash table、binary tree 。這四大法寶可不是各自為戰的,靈活結合才能游刃有余。比如,一個用hash table組織的symbol table,其中是一個個由字符型array構成的linked list。
閱讀全文
posted @
2008-02-29 08:39 創建更好的解決方案 閱讀(4472) |
評論 (4) 編輯
我和充斥臭味代碼的戰爭
摘要: 從去年8月份到現在,我一直在從事一個261k行代碼的項目(不含空行和注釋)。
其中由我本人編寫的代碼10.9k行(不含空行和注釋,我本人所寫的注釋大約1/8有效代碼行,屬于比較少的)。
TDD的老爹Kent說如果已經有可以運行的代碼,這時候是不適合引入TDD的。對已經可以運行的261k行代碼重新寫測試用例,怕是要出人命的。我想Kent老爹說的是老代碼從新TDD,言之有理,對于一個成年人你來T他的小DD,當然就要踢出大事情來。但是對于一些新模塊,或者說是老模塊需要徹底修改(幾乎全部拋棄)的時候,年輕人嗎,從小開始T他的小DD,慢慢培養,說不定能T出一個會鐵襠功的模塊來,到時候豈不是天下無敵了。
閱讀全文
posted @
2008-01-12 13:00 創建更好的解決方案 閱讀(2226) |
評論 (26) 編輯