Discuz NT 系統架構的討論

2022-03-21 09:12:25 字數 528 閱讀 6486

(一)分析

discuz!nt 支援2種資料來源,sqlserver和msaccess,但其資料庫訪問層實際上已經支援了 mysql,只是安裝程式還未提供基於 mysql  的。

discuz!nt採用了"頁面類 -> 業務類 -> 資料庫訪問類 -> dbhelper -> 資料庫"這樣的分層方式。資料庫訪問類有1個大介面3個大實現。所謂大介面就是 idataprovider 介面,定義了900 多個方法。3個大類實現了 idataprovider 方法,用 partial class 的方式共分了7 個檔案。這種大粒度的類設計方式本人覺得不利於以後維護。

3個大類分別為 mysql sqlserver access 對 idataprovider 的實現,輸出3個dll。在配置檔案 dnt.config 裡可以設定採用哪個實現。

總體來說分層還是比較嚴謹清晰的,但也有一些不合理之處:

1)介面層都集中在乙個介面類裡面,不便於維護,而且很容易引起重名

2)所有表結構都放在乙個資料庫中不是很合理,能否像discuz php版本那樣拆分成多個資料庫

Discuz NT 系統架構分析

discuz整體架構如下圖所示 橫向表示 同一層次中涉及的各個模組 專案 縱向表示 不同層次之間模組的關係,某些關係是如何在各層次中傳遞 穿越 discuz架構上採用了比較流行的三層架構,即表現層,業務邏輯層,資料訪問層來進行設計,並結合自己的情況進行了特殊處理。表現層 表現層即為上圖中藍色虛線表示...

一場關於系統架構的討論

一致點 統一封裝對外服務 爭議點 一致點 統一封裝sdk 爭議點 對於上述爭議點,會議最終也沒討論出結論來。個人覺得,這兩個爭論點實際上是乙個業務架構問題與技術架構問題,只有把這兩個問題理清楚,才能做出清晰的判斷。業務架構 實際上就是理清各方如何分工,如何互動,如何設計的問題。對於該場景的有兩種架構...

親密接觸Discuz!NT之架構篇

慮到使用者的實際應用需求和面向未來的軟體開發理念,discuz nt在設計和開發之初就構建了優良的架構,大大提高了軟體的伸縮性 可擴充套件性和重用性。本架構除了使discuz nt自身結構更為清晰和更易於維護以外,也為使用者進行二次開發和完善論壇個性化提供了極大的方便。discuz nt採用了如下的...