原创 迭代的概念

Christopher Diggins在他的blog文章introducing the Iterable Concept中提到了迭代的概念,且看他的定義的實例:In pseudo-C++ this translates to roughl

原创 C#中的語句塊內的不變性

C#語言規範規定,對於表達式中一個簡單命名的標識符,在同一個即刻閉合控制塊內或者switch塊內(the immediately enclosing block or switch-block)的語義是恆定不變的。這條規則確保了在一個表達

原创 維護你的測試代碼

維護你的測試代碼Christopher Diggins在artima自己的blog中有兩片文章:Post TDD和QA and TDD,都是關於TDD的,核心的意思是在滿足要求的情況下,測試代碼應該儘量的減少。一般我的經驗是,releas

原创 對象的完整性

對象的完整性  對象是OOP的基本單元,由於維護一個對象需要很大的代價,所以設計一個對象也需要謹慎。按照中國教科書的習慣,一般要把這個問題分解爲對象的合理性、正確性和完整性。在這裏我不想把人搞糊塗也不想把我搞糊塗,我只是提對象的完整性。當

原创 需求分析不暢更多的是程序員的責任

作爲一個程序員,當你和用戶溝通作需求分析的時候,由於溝通不暢你的不愉快心情有多大?平息你的心情,繼續向下看可能給你帶來好的心情。聽一聽下面一些人的感覺:他們來自於另一個世界(這是比較客氣的說法);那些提需求的傢伙根本不懂怎麼說話(這個說法

原创 Windows Data Alignment on IPF, x86, and x86-64

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vstechart/html/vcconwindowsdataalignmentonipfx86x86

原创 TDD規則

Michael Feathers在Artima自己的Blog中2005-9-9發表了一篇A Set of Unit Testing Rules的文章,提出瞭如下的代碼不是單元測試:1.        訪問數據庫It talks to th

原创 編寫更快的託管代碼

編寫更快的託管代碼:瞭解開銷情況Jan GrayMicrosoft CLR Performance Team2003 年 6 月適用於:   Microsoft® .NET Framework摘要:本文介紹託管代碼執行時間的低級操作開銷模

原创 關於set元素的不可直接更改

set的元素類型和比較函數(或者函數對象)是可以配置的,但是一旦配置就不能更改。set的元素類型不可更改是很自然的,這本就是模板的天然含義。set的比較函數雖然可以得到,但是得到的是copy,不是引用或者指針,所以不能修改(修改比較函數對

原创 模板特化,全特化,偏特化,全部特化,部分特化的含義

這幾個名詞真是把人搞混了(是因爲有的著作,甚至名著以訛傳訛),我最近整理了以下,看看大家的意見如何。模板特化:任何針對模板參數進一步進行條件限制設計的特化版本。《泛型思維》全特化就是全部特化,即針對所有的模板參數進行特化。《c++ pri

原创 在 Microsoft Visual Studio Team System 和 Microsoft Visual SourceSafe 之間選擇

在 Microsoft Visual Studio Team System 和 Microsoft Visual SourceSafe 之間選擇發佈日期: 11/18/2005 | 更新日期: 11/18/2005Microsoft Co

原创 浪漫和回車

 我記得在大學上英語課的時候,我們的老師是一位漂亮的女老師。在一篇英文課的教學中,我們遇到了英文單詞“romantic”,這位漂亮的女老師對這個詞被翻譯爲“浪漫”大發感慨,認爲這個翻譯惟妙惟肖,美輪美奐,簡直是妙不可言。多年以來我對老師的

原创 正反饋算法

正反饋算法  我最近設計了一個這樣的算法:有一個算法的總體框架,抽象了共同的部分;把各個差異的部分放在具體的類裏面實現。具體的子類要實現好多的特殊情況,有的情況很罕見,有的情況很常見;但是爲了正確,必須涵蓋所有的情況。具體的代碼類似下面:

原创 Bjarne Stroustrup大師談

artima網站對在Bjarne Stroustrup在2003進行了專訪,摘錄了一些有感觸的內容。1.        有責任維護類的不變性的函數應該成爲類的接口The functions that are taking any resp

原创 C#語言和類庫

就象微軟一貫的風格,C#語言非常的方便。當你想快速的構造一個應用程序的時候,C#語言的效率非常的高。很顯然,微軟的類庫和默認的處理機制在發揮着作用。作爲一個程序員,你可以不用關係這些;因爲在大多數的情況下,微軟的這些默認的處理機制正好是你