John Jiang

          a cup of Java, cheers!
          https://github.com/johnshajiang/blog

             :: 首頁 ::  :: 聯(lián)系 :: 聚合  :: 管理 ::
            131 隨筆 :: 1 文章 :: 530 評(píng)論 :: 0 Trackbacks
          出錯(cuò)時(shí)的軟件開發(fā)
          在開發(fā)的過程中有錯(cuò)誤發(fā)生了,此時(shí)你該如何應(yīng)對(duì)呢?John Ferguson Smart在他的最新博客中提出了一些想法,大家可以參考一下(2008.10.27最后更新)

              現(xiàn)今比以后任何時(shí)候,都需要開發(fā)者更加高效。極度高效。組織需要提高從它們的開發(fā)項(xiàng)目中得到的附加值,并且它們也樂于尋找實(shí)現(xiàn)這一目標(biāo)的方法。
          當(dāng)然,你可以采用傳統(tǒng)的方法--努力工作。為了消除項(xiàng)目中不可預(yù)見的癥狀,每天工作16個(gè)小時(shí),還沒有周末。但做的更聰明一點(diǎn)兒,會(huì)不會(huì)更好些?
          在引進(jìn)新的實(shí)踐方法及改進(jìn)現(xiàn)有方法方面投入的相對(duì)多一些,以使組織能努力獲得更多回報(bào),這就是開發(fā)的過程。一般而言,事物中有許多方面都可以被改進(jìn),但此處有一些小竅門能使你的開發(fā)流程更加合理,只是為你開個(gè)頭罷了。

          持續(xù)集成(CI)通知策略的再思考
              到目前為止,最通用的CI通知機(jī)制就是陳舊的郵件服務(wù)器。然而,你能肯定在你手邊能完成這項(xiàng)任務(wù)的最合適系統(tǒng)就是電子郵件嗎?嘗試不使用電子郵件,而使用即時(shí)消息去完成你的CI通知。記住,電子郵件易成為一種干擾--如果你僅僅大約每?jī)尚r(shí)才查閱一次郵件,你就會(huì)變得十分高效。電子郵件只是,或至少是,用于構(gòu)建失敗--人們需要快速地知曉失敗任務(wù)。

          積極地優(yōu)化構(gòu)建過程
              構(gòu)建度量(Build Metrics)是一種監(jiān)控構(gòu)建過程健康狀況的極好方法。為什么過去3周中,代碼覆蓋率一直在下降?為什么單元測(cè)試的數(shù)量并未呈有規(guī)律的增長(zhǎng)?為什么要花費(fèi)很長(zhǎng)的時(shí)間去修復(fù)這樣的構(gòu)建?運(yùn)行單元測(cè)試需要多長(zhǎng)時(shí)間--是否有一些測(cè)試需要執(zhí)行過分長(zhǎng)的時(shí)間?這些信息并非華而不實(shí)的東西--在不斷改進(jìn)構(gòu)建過程的工作中,它們都扮演著關(guān)鍵的角色。現(xiàn)代CI工具,如Hudson,Bamboo和TeamCity,能為構(gòu)建展示豐富的統(tǒng)計(jì)。Bamboo在這方面做的尤佳。無論你正使用何種CI工具,都要學(xué)習(xí)如何最大限度地使用它的報(bào)表特性,并使用這些特性去定位及修復(fù)開發(fā)過程中討厭污點(diǎn)。如果你的CI工具不能給你所需要的全部信息,那就找一個(gè)能做到的。

          合理化發(fā)布過程
              在發(fā)布過程中有許多必做的工作,如準(zhǔn)備發(fā)行說明,確定該版本中哪些問題已被解決了,標(biāo)記版本,等等。這些都是軟件生命周期的重要部分,如果你忽略了它們,QA們和最終用戶可能會(huì)很生氣。但要盡量自動(dòng)地去做這些工作。許多CI工具能很好地與問題追蹤系統(tǒng)(如JIRA和Trac)進(jìn)行集成,以便你能基于版本控制日志看到某個(gè)問題是在哪次特定的構(gòu)建中被解決的。如果你在使用Eclipse,Mylyn能幫你將處理過的問題歸總成邏輯變化組,并使用標(biāo)準(zhǔn)的模板列出在某項(xiàng)工作中已被解決的(或僅是影響到的)問題。或者你可使用Subversion的hook腳本去確保每次向Subversion做的提交都能對(duì)應(yīng)到一個(gè)有效的問題編號(hào)。
              這只是一些想法罷了--還有更多。底線就是--你不需要忍耐一個(gè)次理想的開發(fā)過程--相反,要進(jìn)入其中,并做些能改進(jìn)它的事情。祝好運(yùn)!

          posted on 2008-10-27 08:44 John Jiang 閱讀(1329) 評(píng)論(2)  編輯  收藏 所屬分類: Java翻譯 、BuildMethodology

          評(píng)論

          # re: 出錯(cuò)時(shí)的軟件開發(fā)(譯) 2008-10-27 13:27 lin5061
          持續(xù)集成是個(gè)大問題 特別在多人開發(fā) 又版本相錯(cuò)開的情況下
          現(xiàn)在就也遇到了  回復(fù)  更多評(píng)論
            

          # re: 出錯(cuò)時(shí)的軟件開發(fā)(譯) 2008-10-27 16:18 Sha Jiang
          @lin5061
          如果CI報(bào)了錯(cuò)誤,能夠及時(shí)地解決它們嗎?  回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 东明县| 双峰县| 乐安县| 金乡县| 鄢陵县| 都安| 梁山县| 宕昌县| 平舆县| 丹江口市| 红原县| 江北区| 凯里市| 石门县| 上林县| 丹江口市| 全州县| 射洪县| 广州市| 西华县| 图们市| 广西| 合山市| 陈巴尔虎旗| 漳浦县| 开阳县| 山东省| 甘肃省| 万年县| 普定县| 搜索| 乐陵市| 桑日县| 阜宁县| 河南省| 来宾市| 阳春市| 马关县| 甘洛县| 永宁县| 洛浦县|