考試系統架構經歷了三個階段:
一、大部分都基於
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...