命名空間命名與目錄劃分最能體現開發者架構功力。資深工程師絕不容許架構混亂。本文分享 B/S 專案中常見的三層命名空間對應目錄結構,以及橫向 (功能) 與縱向 (屬性) 分類交錯的實務策略。
[公司/作者].[專案名].Business // 業務邏輯層
[公司/作者].[專案名].Data // 資料存取層
[公司/作者].[專案名].Web // 表現層 (Web 專案)
三者可置於同一專案 (單一組件) 或分置三個專案 (三組件),視部署需求而定。
Sban.ZLBook.Business
Sban.ZLBook.Data
Sban.ZLBook.Web
Sban.ZLBook.Web/
├── UserCenter/ # 使用者中心頁面、控制項、ViewModel
├── HelpCenter/ # 幫助中心
├── PayCenter/ # 支付中心
├── ProductCenter/ # 商品中心
└── Common/ # 跨模組共用資源
Images/
├── UserCenter/ # 使用者中心相關圖片
├── HelpCenter/
├── PayCenter/
├── ProductCenter/
└── Shared/ # 通用圖示、Logo、背景
原則:一級目錄依功能橫向切分,資源類型目錄 (Images、CSS、Scripts) 內部再依功能縱向細分。
UserCenter、ProductCenterSban.ZLBook「不知道如何架構時,翻閱 .NET Framework 官方類別庫結構。」
System.Web.UI.WebControls — 控制項按功能分組System.Data.SqlClient — 資料提供者按技術分組System.Collections.Generic — 泛型集合按特性分組com.company.project.moduleUserManager.as好的架構讓「找檔案」變成「推演路徑」。橫向功能切分對應業務演進,縱向資源切分對應技術維護,兩者在目錄樹中正交共存,是可維護專案的基石。