為期兩周的軟件工程個人項目已經結束了,簡單寫一篇小文章總結一下吧。
這次的題目是統計文章單詞個數,統計算法很簡單,關鍵在於如何控制時間復雜度。經過簡單的思考,我決定使用26叉樹來操作,這樣可以實現線性的操作。最后得到的測試結果還是不錯的。在老師給的測試集下的運行時間為12秒,雖然不是最快的,但我也很滿意了。這次小工程也有幾個值得總結的地方。
工作量預測
這項工作室以前很少做的。以前只關注如何把任務完成,而沒有考慮在完成之前進行期限預期。這點在求學的時候可能作用不是很明顯。但對於公司中的產品開發過程來說還是很重要的,一個准確的時間預測能夠給管理者及合作者一個參照,從而使得他們合理的安排其他的工作。尤其是在公司中,一個產品的開發一般都是有眾多開發人員合作完成的,然后還有產品包裝及產品宣傳銷售等各個環節。所以給出一個相對准確的時間表對別人的工作也會帶來很多的方便。一個項目組的各項工作在時間上應該盡量做到統一協調。在個人項目中,我的預測比實際所用相比偏長。主要是對代碼量估計錯誤。以前在編程時對代碼量注意不夠,以致於現在對其沒有一個直觀的概念,所以導致預測困難。以后在編程中會注意這一點。
代碼組織
這一次暴露的另外一個問題是代碼組織不好。尤其是文件的組織。因為在大學中只專門學過C語言,所以C語言的風格對我影響比較深。雖有后來多數寫的是C++,但只是用了C++的瓶,裝的大部分還是C語言的老酒。所以養成了一個不好的習慣,不太重視組織代碼。因為這次是用的是C#,所以我使用了類,應該說這是我第一次正式的使用類。因為以前寫程序更多注重的是實現算法,對代碼的組織不太重視,所以也不太常使用類結構基本上就是一堆函數加一個主函數組成的程序。包括這一次,類結構只是披在外邊的一層外衣。整個程序並沒有利用類的特性對代碼進行封裝組織。這一點秋風也提出了批評,以后會重視起來。
接下來馬上就要進入結對編程的環節了。我相信我能做的更好。