關鍵字:開發效率
通過幾年的實際工作,也參與了規模不一的多個項目,但是項目組的開發效率一直不高,一直都在思考這個問題的癥結。最近換了一個公司,由于剛剛去,也不能修改比較核心的代碼,就給他們修改bug,在修改其中一個比較有共性的問題時接觸了很多他們原來寫的代碼,發現代碼中充斥著很多完全相同或者幾乎完全相同的代碼,最典型的就是獲得數據庫連接以及關閉數據庫連接的代碼,有的類會封裝一個自己用的方法,有的就是干脆每次重復,有的更是有相關的方法但是代碼的其它地方卻沒有用,這個現象給了我比較大的觸動。 現在仔細想想,其實影響一個項目組的開發效率的很大的因素就是代碼共享和知識共享太缺乏了。
但是,代碼共享和知識共享又確實是比較困難的事情,共通的功能如何使用,需要什么約束條件,能夠完成什么功能等等都需要有比較完善的文檔,而一旦這樣的功能多起來以后你要從這些功能中找到需要的功能有時候確實是比較困難的,特別是有些功能去查是否有現成的代碼所花費的時間可能比自己寫一個還多。
根據我的經驗,有幾個地方注意一下就可以比較好的解決:
共通的內容要易于使用和理解,例如定義的方法名要比較貼切。
要寫比較詳細的說明文檔,例如給大家發郵件或者發布到內部使用的論壇系統中。
在公布之前經過充分的測試,否則使用的時候總是有各種問題會導致大家不敢再用共通的代碼。
對于類似的功能有其共通的代碼,例如使用struts的系統有自己的系統的頂層的BaseAction,在這個BaseAction中定義系統中的子類需要實現的業務邏輯方法入口,而BaseAction要實現structs要求的execute方法,并完成所有的共通任務,例如是否登錄的檢查,session是否超時等
業務功能要比較少的關心雜項共通功能,例如定義logger,獲取數據庫連接,關閉數據庫連接,異常處理等,這些功能都可以定義在BaseAction或者是系統的頂層基類中。
而且通過使用共通功能也可以很大程度提高系統的質量,因為通過這些年的實踐發現,很多新人由于開始不理解系統的要求,很多地方就是先抄襲別人甚至完全拷貝別人的代碼,如果別人的代碼是有問題的,那么在沒有出問題之前是很難被自己發現的,而到了發現的時候已經積重難返了,而通過頂層類的封裝,底層的類的空間就狹窄了,犯錯誤的可能性就小多了,因為很多系統的共通要求在頂層類中已經實現了。
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/