2月17日的早晨非常寒冷,就算躲在被子里也可以清楚地感覺到,不過到實驗室就不會覺得冷了(嗯,有空調就是好。,所以,我很早就來了。
重新檢查大家的代碼,我有種想重寫的沖動(呵呵),不過這正合我意,因為今天的工作就是清掃戰場,做清掃的人當然是大家。
首先我把需要修改的內容列一下:
在算Prime的時候沒有采用最優化的算法。我們最開始采用的方法是開一個bool類型的大數組,數組下標對應正數,然后不斷用乘積的方法標出所有不是素數的數,最后再遍歷一遍數組收集所有是素數的數。這種方法不是最好,還有優化的余地。
沒有把算過的Prime緩存起來。其實Prime這個東西很乖,不管怎么算,一個數是Prime的那么它的性質永遠都不會變,因此,適當的緩存一些數,可以提高不少效率。
采用vector存儲得到的Prime。出于眾所周知的原因,當vector大小改變時代價是很大的,換一個其他東西作存儲或許會更好。
好,準備好問題當然就可以開工了。
作為一種優化性質的修改,最關鍵的就是保證原來已實現的功能不能消失、接口不能夠改變。這在原來真的挺難做到(嗯,我很討厭那種一波未平、一波又起的解決問題方式,那是一種折磨),不過現在有了單元測試用例做保證,那就沒有任何疑慮了——只要通過了如此充分的單元測試,原有的功能當然沒問題啦。OK,麻煩一個個被解決,無論是簡單問題還是復雜問題,我們始終可以很放心的對原來的代碼動刀子。
不過這種優化只是最初級的重構(哦,這就算是重構。,比較需要勇氣的還在后面——嗯,我這個合格的客戶又要發揮作用了。
文章來源于領測軟件測試網 http://www.kjueaiud.com/