考試系統總結與下一步重構

2021-05-25 13:47:09 字數 1612 閱讀 7695

考試系統架構經歷了三個階段:

一、大部分都基於

jean-paul s. boodhoo

提供的front controller

實現,主要核心是基本拋棄

web form

,實現了乙個輕量級的

mvc架構。

二、考分查詢實現。

在上面架構的基礎上,加入

repository

層,實現從文字提出資料,在記憶體緩衝。經過幾次實際流量的測試和改進,現在的效能基本達到每個查詢耗時

20ms

。因此,反推理論最高查詢流量可達50次

/秒或18萬次

/小時。因而在相當長的時期內,可以認為考分查詢容量是可以無限新增下去的。

最新資料(

2011/05/26

):最近的公務員查詢,後台查詢耗時僅有

1ms,

網頁瀏覽量達

60萬一天。

三、報考系統幾大功能改進。

1、借助fluent nhibernate

很輕鬆地加入了資料庫功能。

fluent nhibernate

可明顯地分為兩塊功能。

一是,nhibernate

讓我到目前為止,還沒寫什麼

sql語句

; 二是,

fluent (inte***ce)

讓我沒寫任何配置

xml檔案。這些都是非常耗時的工作,因此也就提高了工作效率。

2、加入了很好的分類日誌記錄

, 並分為3類:

trace, information, error

。最後,把這三類合併為乙個

all

,這樣便於檢視各類日誌的時間順序。系統進入產品階段後,基本上都是靠日誌文章找到錯誤,而不是

debug

。這也非常有效。

四、下一步的重構。

目前仍存在的問題。

1、隨著功能的增加,子領域

(subdomain)

已經越來越多,

1、這些子領域之間的界限並不明顯,

2、子領域之間都是直接呼叫、引用內部現象。

3、子領域作未提供

facade

的介面層出來。

因此,改進目標也是很明顯的,一劃分子領域,二對外提供的所有功能,以

façade/api

形式集中到根級別類。

三需要內部引用的內部類以介面對外提供。

4、多使用

extension

來實現服務類(需要多子領域協同工作)

5、解耦

web與

domain

:用web service/rest/soap

……連線

website

與為幾乎每個域物件增加對應

dto會是乙個重複工作,但應值得。

其他:6

、用silvelight

做管理介面7、

asp.net mvc

重做web??8、

ci伺服器改用

teamcity/husdou? 9

、使用fluent build?

10、用

openid

做登入/

賬戶管理功能?

考試系統總結與下一步重構

考試系統架構經歷了三個階段 一 大部分都基於 jean paul s.boodhoo 提供的front controller 實現,主要核心是基本拋棄 web form 實現了乙個輕量級的 mvc架構。二 考分查詢實現。在上面架構的基礎上,加入 repository 層,實現從文字提出資料,在記憶體...

考試系統總結與下一步重構

考試系統架構經歷了三個階段 一 大部分都基於 jean paul s.boodhoo 提供的front controller 實現,主要核心是基本拋棄 web form 實現了乙個輕量級的 mvc架構。二 考分查詢實現。在上面架構的基礎上,加入 repository 層,實現從文字提出資料,在記憶體...

Python分享總結與下一步

python基礎 從零開始學python 資料型別及結構 從零開始學python 數值計算及正規表示式 從零開始學python 控制流與自定義函式 python自定義函式的引數解讀 資料分析工具 從零開始學python numpy 從零開始學python pandas 序列部分 從零開始學pytho...