從命名空間的命名、目錄的劃分與命名可以看出一個程序員是否有經驗,是否很有經驗。一個編程老手絕不允許架構混亂。
.Net開發中,一般目錄名與命名空間名稱是對應的。關於命名空間如何劃分,目錄如何分類,這個問題看似簡單,實際上卻比較復雜,雖然它不像動植物學有一套完整的分類學。
在.Net B/S架構中,一般分為如下三個主要的命名空間:
[公司名/作者名].[項目名].Business
[公司名/作者名].[項目名].Data
[公司名/作者名].[項目名].Web 這三部分可以在一個project中,也可以分置三處。
目錄分類與空間命名之難在於:分類因素是二維的,而分類卻只是一維的。解釋一下:分類是一維的,指一個詞語只能代表一個分類名稱的含義,無論同時表達兩個含義;分類因素是二維的,指分類可以橫向類別分類,也可以按縱向屬性分類。
假設我正在開發一個電子商務圖書網站[湛藍書店www.ZLBook.cn],這個商務按照常規,它有用戶中心,幫助中心,支付中心,商品中心等。我的這個項目分為三個project,如下:
Sban.ZLBook.Business
Sban.ZLBook.Data
Sban.ZLBook.Web
在Sban.ZLBook.Web工程中,我下設UserCenter、HelpCenter、PayCenter、ProductCenter等目錄,這樣的分類便是按類別橫向分類。
而在這些分類中,肯定都用到了圖片,還有一些css樣式文件,這些文件我放在哪裡?我把它們放在Web工程的Images目錄下(如果不另辟圖片服務器的話)。如果文件太多,不好管理,其子目錄又可以分為UserCenter、HelpCenter、PayCenter、ProductCenter等。如此,Images的目錄的劃分便是按縱向屬性分類。
關於具體如何命名,沒有什麼通用的方法,要看具體項目。做的項目多了,架構才能見水平。命名空間與目錄建議大寫。
不知道應該如何架構的時候,不妨翻一翻官方的類庫。
btw:flex工程中,包名(pakeage)與目錄小寫,而類名大寫。