• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    提升項目組的開發效率

    發布: 2007-5-25 14:33 | 作者: 未知 | 來源: JR | 查看: 41次 | 進入軟件測試論壇討論

    領測軟件測試網 http://blog.javaresearch.org/page/cherami/20050616#%E6%8F%90%E5%8D%87%E9%A1%B9%E7%9B%AE%E7%BB%84%E7%9A%84%E5%BC%80%E5%8F%91%E6%95%88%E7%8E%87

    通過幾年的實際工作,也參與了規模不一的多個項目,但是項目組的開發效率一直不高,一直都在思考這個問題的癥結,最近換了一個公司,由于剛剛去,也不能修改比較核心的代碼,就給他們修改bug,在修改其中一個比較有共性的問題時接觸了很多他們原來寫的代碼,發現代碼中充斥著很多完全相同或者幾乎完全相同的代碼,最典型的就是獲得數據庫連接以及關閉數據庫連接的代碼,有的類會封裝一個自己用的方法,有的就是干脆每次重復,有的更是有相關的方法但是代碼的其它地方卻沒有用,這個現象給了我比較大的觸動,現在仔細想想,其實影響一個項目組的開發效率的很大的因素就是代碼共享和知識共享太缺乏了。但是代碼共享和知識共享又確實是比較困難的事情,共通的功能如何使用,需要什么約束條件,能夠完成什么功能等等都需要有比較完善的文檔,而一旦這樣的功能多起來以后你要從這些功能中找到需要的功能有時候確實是比較困難的,特別是有些功能去查是否有現成的代碼所花費的時間可能比自己寫一個還多。

    根據我的經驗,有幾個地方注意一下就可以比較好的解決:
    1. 共通的內容要易于使用和理解,例如定義的方法名要比較貼切。
    2. 要寫比較詳細的說明文檔,例如給大家發郵件或者發布到內部使用的論壇系統中。
    3. 在公布之前經過充分的測試,否則使用的時候總是有各種問題會導致大家不敢再用共通的代碼。
    4. 對于類似的功能有其共通的代碼,例如使用struts的系統有自己的系統的頂層的BaseAction,在這個BaseAction中定義系統中的子類需要實現的業務邏輯方法入口,而BaseAction要實現structs要求的execute方法,并完成所有的共通任務,例如是否登錄的檢查,session是否超時等
    5. 業務功能要比較少的關心雜項共通功能,例如定義logger,獲取數據庫連接,關閉數據庫連接,異常處理等,這些功能都可以定義在BaseAction或者是系統的頂層基類中。
    而且通過使用共通功能也可以很大程度提高系統的質量,因為通過這些年的實踐發現,很多新人由于開始不理解系統的要求,很多地方就是先抄襲別人甚至完全拷貝別人的代碼,如果別人的代碼是有問題的,那么在沒有出問題之前是很難被自己發現的,而到了發現的時候已經積重難返了,而通過頂層類的封裝,底層的類的空間就狹窄了,犯錯誤的可能性就小多了,因為很多系統的共通要求在頂層類中已經實現了。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>