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

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

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

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

    軟件架構淺談:問題域及其解決方法

    發布: 2008-10-08 10:16 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 44次 | 進入軟件測試論壇討論

    領測軟件測試網

    內容是指內容熱點,比如對于search來說,就按體育,數碼,音樂等劃分,不同內容有不同熱點數據,以及不同搜索關鍵匹配.

    時間, 時間是一個非常重要的因素,在一些特點是時間段呢,性能的要求會非常高.比如下半夜的訪問點擊量和白天的就有不同.對于一些batch來說, 月末或者年末處理的單量就有明顯的提高,比如分紅險的記息,平時每天只有7000單,而年末會有12w單.

    地點劃分,不太常見,不過也有助于分配計算資源.

    業務層面的分析不僅是確定問題所在,還是確定優化的策略.比如有一個batch計算,執行時間比較長,而通過業務分析,發現該計算只針對特定的業務, 系統全部有效單量是12w單,而符合計算要求的只有3000單,只要加上一個前置判斷就可以免除無謂的計算,運行時間減少數個小時(大約0.2秒一單).

    2. 技術層面

    系統建立時技術結構,通常一個系統結構如下:接入網絡,Web服務器,應用服務器,以及數據庫服務器.

    在這樣結構下,要小心的分析和驗證系統性能的瓶頸,需要優化Web服務器,或者提高數據庫并發能力等等。這部分網上的資料非常多。

    三、架構的開發成本以及品質問題解決討論

    架構一個重大關注點在于控制開發成本,這點很重要,因為通常講維護成本是開發成本的3倍。降低開發成本核心,在于提高效率,這也意味著提高了開發對需求的響應時間,而時間對公司來說是重要的。

    提高開發效率和品質的基本手段是分解——即充分的分離系統中不同的關注點,好處不用說了,可以并發的工作,每個人面對的問題都簡單而容易操作。而與分解對應的集成,只有提供了好的集成能力,分解才成為現實,而只有分解了,才能清晰的提供業務更多適應性。

    分解和集成的手段分為編程語言和技術框架兩個層面。所謂語言就是強框架,而框架就是弱語言。

    現代面向對象的語言提供如下能力:抽象和派生能力,以及接口隔離能力。實際提供兩種分解和集成能力:

    1. 把邏輯分解在兩個層次中,而通過繼承的方式把兩個部分集成在一起。

    2. 把邏輯的外觀和實現分解在兩個地方,而通過接口實現的方式把兩部分集成在一起。

    另一種語言AspectJ或者C#語言2.0之后提供的特性:把流程邏輯,分解在不同的地方,而通過簽名匹配,利用代碼生成的方式來把幾部分集成在一起。

    然而語言提供的集成能力,畢竟底層,而且有限,擴展起來也格外小心。因而技術框架提供另外的集成能力就格外重要:

    1. 對象關聯關系的分解和集成,如Spring提供容器管理能力

    文章來源于領測軟件測試網 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>