<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我心飛翔

    Java技術交流

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      9 Posts :: 16 Stories :: 4 Comments :: 0 Trackbacks
    寫這篇文章的想法產生在昨天晚上讀《面向對象分析與設計》的時候,我漸漸發現我們這個小組不知不覺地貫徹了很多非常有價值的實踐經驗,這些點點滴滴都對我 們的最終的產品質量產生了或大或小的影響,保證我們的系統不會出現重大的故障。我想有必要將這些“隱性知識”稍微總結一下,以供參考和記錄。

       從過程的連續光譜來看,我們大概處于中間位置偏左的位置,更偏向一個輕量級團隊的敏捷過程,但是也包含計劃驅動過程中的因素。我們的小組是自管理的,沒有 專門的QA和SA,我們自己去想出最好的工作方法,但是在執行中我們的計劃還是相對確定的,每個季度做什么都會有一個比較明確的計劃和里程碑,并且對問題 領域都相對熟悉;我們的過程是迭代式,一般一個季度至少會交付一個穩定可執行的新版本,我們在文檔上做的不是特別好,很多都依賴于團隊成員之間的“隱性知 識”;同時我們對問題的改進基本還是有一個流程和機制,會持續的跟蹤問題并改進。

       下面分階段總結下我們的一些實踐經驗。

    一、分析和設計階段

    1、在這個階段,我們會明確準備做什么,界定問題的邊界,對功能進行一個取舍。一般在一個版本完成之后會馬上開始這個過程。大家都想一想接下來做什么,經過幾輪PK后確定重要緊急的事情優先做,定義下一個版本的功能列表 。

    2、功能列表出來之后,我們會針對每個功能提出各種方案做比較,在此期間,我們會邀請更大團隊范圍內的專家參與方案和設計的評審 ,剔除不切實際以及明顯有缺陷的方案,針對一些風險點提出改進建議和防范措施。

    3、在設計方案出來之后,我們會分配功能的開發任務,根據每個開發人員熟悉的領域,自主領取或者被動分配任務 。這個過程不是一成不變的,考慮到團隊內部知識交流的必要性,也可能讓不熟悉某個領域的人去做他不熟悉的事情。

    二、構造階段

    1、整個系統已經有一個關鍵的抽象機制 ,針對我們的服務器有一個核心的pipeline機制,針對我們的客戶端,有一個核心的發送消息流程。將所有的功能模塊組織在這個關鍵機制周圍,形成一個強有力的整體。

    2、開發完成不僅僅意味著功能代碼的完成,還包括測試代碼 :單元測試和集成測試。如果你沒辦法做到全面的覆蓋,那就要求必須覆蓋運行的關鍵路徑和極端場景。

    3、單元測試我們使用JUnit,適當使用Mock可以簡化測試。但是Mock對象如果太多,也許會失去測試的價值,這里有一個權衡。

    4、在整個構造過程中,我們貫徹每日構建、持續集成的原則。使用hudson做持續集成,時刻關注測試狀況 ,有問題及時反饋給開發者。

    5、有一個功能強大的集成測試框架,模擬實際環境做各種測試,它的目的是盡量在接近真實狀況下去執行系統并盡早暴露問題。

    6、每個功能完成之后,立即發起review,請同事和你一起復審代碼。復審代碼的作用不僅是發現bug,改良設計,也是一個知識交流的最佳途徑。我們經常能通過代碼審查 發現一些設計上的缺陷,以及功能實現上的BUG。我們團隊應該說是非常看重代碼審查的作用。

    7、使用findbugs和clover等工具 ,分析代碼質量并改進。

    8、在發布之前,做一次集中的代碼review ,每個人介紹下自己的功能實現代碼和設計,一般我們會申請一個會議室和投影儀,并邀請團隊之外的人加入review。

    9、在發布之前,有一個系統的壓測流程 ,針對每個版本更新壓測方案,并預留一到兩周的時間做性能壓測。壓測不僅能盡早暴露性能隱患,還可以發現系統在特殊情況下的一些BUG。壓測除了關注系統的吞吐量、GC情況之外,還應該關注硬件的性能指標。

    三、發布和總結
    1、發布之前,最好讓使用我們系統的用戶使用新版本做一個回歸測試 ,一方面是測試兼容性,一方面也可以及早發現BUG。

    2、我們的發布流程:線下、beta、線上。每個階段通常都持續一到兩周,才會進行到下一階段。并且是從相對不重要的系統,到關鍵系統的順序進行發布。

    3、發布之后,通過日志、運行時監控、用戶反饋等方式收集系統運行狀況,發現BUG,修正BUG,補充測試,測試通過,重新發布。

    4、每個版本發布后,需要總結下本次發布過程中遇到的所有BUG以及經驗教訓,并提出可能的改進建議。

    5、需要一個跟蹤線上問題的BUG跟蹤系統,可以用JIRA之類的trace軟件。跟蹤不僅是記錄,最好列出解決的時間點,在哪個版本確定解決,甚至確定交給誰去解決,并持續跟進。

    標簽:Java源碼  軟件工程專業課程  電腦培訓學校  廣州軟件培訓  棋牌室  java就業培訓  it培訓學校 java軟件工程師

    posted on 2011-01-06 15:45 飛翔的JAVA 閱讀(60) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 四虎在线播放免费永久视频| 999久久久免费精品国产| 亚洲色偷偷色噜噜狠狠99网| 97在线视频免费播放| 青青在线久青草免费观看| 四虎影视在线永久免费观看| 亚洲中文字幕久久精品蜜桃| 性色av无码免费一区二区三区| 亚洲а∨天堂久久精品9966| 日本高清免费不卡在线| 美女露100%胸无遮挡免费观看| 亚洲AV无码之日韩精品| 亚洲人成激情在线播放| 最近中文字幕mv免费高清电影| 亚洲精品宾馆在线精品酒店| 九月婷婷亚洲综合在线| 在线观看免费视频一区| 99久久亚洲综合精品成人网| AV片在线观看免费| 特级毛片aaaa级毛片免费| 亚洲日韩中文无码久久| 黄色免费网址在线观看| 日韩亚洲欧洲在线com91tv| 久久国产乱子伦免费精品| 亚洲视频一区二区三区四区| 污视频在线观看免费| 亚洲欧洲日产国码一级毛片| 精品国产免费一区二区三区香蕉| 亚洲宅男天堂a在线| 国产精品成人免费综合| 精品97国产免费人成视频| 亚洲黄色在线观看网站| 成全视频高清免费观看电视剧| 国产成人精品亚洲精品| 青娱乐在线免费观看视频| 久久夜色精品国产亚洲| 成人a免费α片在线视频网站| 一级毛片高清免费播放| 亚洲一级片免费看| 久久国产免费福利永久| 亚洲黄色在线网站|