今天到圖書館意外發現了兩本好書:《單元測試之道——nunit》和《敏捷軟體開發》,迅速將其收入囊中,好久沒有借書了,省得買了,特別是後面那本,呵呵。
最近面對**,雖然常常有重構的迫切願望,但剛想動手便忽然覺得這沒有任何測試保證的重構能走多遠?今天拿到《單元測試之道》這本書,很薄,好呀,先不管它翻譯的怎麼樣,看看再說。
15:29:40
這時我想起了那天部落格堂上的一篇關於測試的文章(好像是關心寫的),裡面列舉了n多的帶有「測試」二字的名詞,單元測試只是其中之一。他提到了乙個問題我覺得很對:有時候程式寫多了,寫長了,寫複雜了之後,可能測試**也會相應的變多變長變複雜,那這時候很可能測試**本身就有bug,誰又能保證測試**的正確性呢?還有,也許會常常遇到測試有時成功有時失敗的情況——進度條一會紅,一會綠;或者說在這台機器上紅,換台機器又綠;再或者說現在雖然紅,但重啟一次機器就又綠;颳風時紅,打雷時綠……那又該從哪下手呢?
20:15:06
這裡又想到乙個關於重構和tdd的問題:比如我現在要對我曾經寫過的乙個專案通過重構來改進,但它是用vc6開發的,裡面有乙個神通廣大的全功能class,這個class裡面還有三四個至少300行的大函式,當時寫這個程式的時候還不懂重構、單元測試、模式什麼的,現在了解一點了,就知道了這個專案中「臭味兒**」還是蠻多的。但是,它現在沒有任何的單元測試**,那麼我是應該先給它把這些測試**補上呢?還是先重構?如果先補上測試,那麼經過大刀闊斧的重構之後——雖然也要小步前進——原先的函式們恐怕早已灰飛煙滅,那麼之前補寫的那些以原有函式為測試物件的測試**恐怕也要跟著全部重寫了吧?反過來,如果我不顧沒有單元測試的危險而勇往直前不斷重構的話,誰來保證我重構的正確性呢?抑或採用一種折衷方案——一邊重構一邊把單元測試**補上?
最後,不知道現在有沒有for vc6的自動測試框架可以用,就像是junit、nunit那種東西,再得寸進尺一下,不知道現在有沒有for vc6的重構工具,要能add-in到右鍵選單裡面的那種,哪怕是只能支援extract method和rename也行,就像vs2005一樣。
p.s.剛剛統計了一下,getrastermetadata函式有437行,getrasterdata有319行,writetobmpfile有347行,看來真的是夠「臭」的了.....
20:41:10
《單元測試之道》p.38的示例**中把資料庫的connect動作放在了[setup]中,這不太好吧,如果我也照貓畫虎的把連線sde的**放在[setup]裡面,那執行一套測試恐怕真的要一夜才夠....
今天的學習
size type 無符號整型,足以儲存次容器型別的最大可能容器長度 reference 引用型別 iterator 此容器的迭代器型別 const iterator 元素的制度迭代器型別 reverse iterator按逆序定址元素的迭代器 const reverse iterator元素的制度...
今天學習HTML
在學校小學期其間,我們的實踐專案是搭建乙個安全web介面,我主要負責前端的搭建。但是之前從未接觸過前端,所以有很多東西都是一邊用一邊學,雖然效率高一些,但是沒有系統學習過還是感覺力不從心。所以為了不斷完善自己,我希望開始學習相關知識。可以說html中最重要的結構就是各種標籤。最外層是標籤,然後還有不...
今天,你學習了嗎?
1 對meta的理解 在每個html的頁面中,有這樣一行 charset utf 8 因為每次新建html檔案自動生成這行,一直沒在乎過這個標籤有什麼意義。今天看到這樣的 name viewport content width device width,minimum scale 1.0,maxim...