首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

.NET 開發漫談:命名空間與目錄結構劃分原則

     編輯:關於.NET

前言

命名空間命名與目錄劃分最能體現開發者架構功力。資深工程師絕不容許架構混亂。本文分享 B/S 專案中常見的三層命名空間對應目錄結構,以及橫向 (功能) 與縱向 (屬性) 分類交錯的實務策略。

標準三層命名空間


[公司/作者].[專案名].Business   // 業務邏輯層
[公司/作者].[專案名].Data         // 資料存取層
[公司/作者].[專案名].Web          // 表現層 (Web 專案)

三者可置於同一專案 (單一組件) 或分置三個專案 (三組件),視部署需求而定。

分類的二維難題

  • 分類是一維的:一個資料夾/命名空間只能表達單一分類含義
  • 分類因素是二維的:
    • 橫向:功能/業務模組 (UserCenter、PayCenter、ProductCenter)
    • 縱向:技術屬性/資源類型 (Images、CSS、Scripts、Controls、ViewModels)

實務案例:湛藍書店

專案結構


Sban.ZLBook.Business
Sban.ZLBook.Data
Sban.ZLBook.Web

Web 專案目錄 — 橫向功能分類 (一級)


Sban.ZLBook.Web/
├── UserCenter/      # 使用者中心頁面、控制項、ViewModel
├── HelpCenter/      # 幫助中心
├── PayCenter/       # 支付中心
├── ProductCenter/   # 商品中心
└── Common/          # 跨模組共用資源

縱向資源分類 — Images 目錄為例


Images/
├── UserCenter/      # 使用者中心相關圖片
├── HelpCenter/
├── PayCenter/
├── ProductCenter/
└── Shared/          # 通用圖示、Logo、背景

原則:一級目錄依功能橫向切分,資源類型目錄 (Images、CSS、Scripts) 內部再依功能縱向細分。

命名慣例建議

  • 命名空間、目錄名稱採 PascalCase (大寫開頭):UserCenter、ProductCenter
  • 專案名、公司名同樣 PascalCase:Sban.ZLBook
  • 避免縮寫、底線、連字號,保持可讀性
  • 組件名稱與預設命名空間一致

無從下手時的參考基準

「不知道如何架構時,翻閱 .NET Framework 官方類別庫結構。」

  • System.Web.UI.WebControls — 控制項按功能分組
  • System.Data.SqlClient — 資料提供者按技術分組
  • System.Collections.Generic — 泛型集合按特性分組

補充:Flex/ActionScript 專案慣例

  • 套件名 (package) 與目錄 小寫:com.company.project.module
  • 類別名 大寫:UserManager.as

結語

好的架構讓「找檔案」變成「推演路徑」。橫向功能切分對應業務演進,縱向資源切分對應技術維護,兩者在目錄樹中正交共存,是可維護專案的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved