惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Privacy International News Feed
I
Intezer
T
Tenable Blog
S
Schneier on Security
Project Zero
Project Zero
G
GRAHAM CLULEY
酷 壳 – CoolShell
酷 壳 – CoolShell
小众软件
小众软件
Know Your Adversary
Know Your Adversary
博客园 - 司徒正美
The Cloudflare Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
N
News and Events Feed by Topic
博客园 - 叶小钗
宝玉的分享
宝玉的分享
L
LINUX DO - 热门话题
aimingoo的专栏
aimingoo的专栏
S
Secure Thoughts
Forbes - Security
Forbes - Security
T
The Exploit Database - CXSecurity.com
D
Darknet – Hacking Tools, Hacker News & Cyber Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 【当耐特】
罗磊的独立博客
IT之家
IT之家
H
Hacker News: Front Page
I
InfoQ
云风的 BLOG
云风的 BLOG
S
Security Affairs
M
MIT News - Artificial intelligence
GbyAI
GbyAI
Jina AI
Jina AI
Help Net Security
Help Net Security
Engineering at Meta
Engineering at Meta
大猫的无限游戏
大猫的无限游戏
Webroot Blog
Webroot Blog
L
Lohrmann on Cybersecurity
A
About on SuperTechFans
Attack and Defense Labs
Attack and Defense Labs
The Register - Security
The Register - Security
V
V2EX
G
Google Developers Blog
D
DataBreaches.Net
Apple Machine Learning Research
Apple Machine Learning Research
C
Cybersecurity and Infrastructure Security Agency CISA
J
Java Code Geeks
W
WeLiveSecurity
Cloudbric
Cloudbric
T
Tor Project blog

博客园 - mshwu

桥接模式(Bridge Pattern) 单例模式 工厂方法模式 Download Manager Intent(二) Intent (一) Fragment (一) 2-1 Managing the Activity Lifecycle java1.5新特性(转) 1-4 Starting Another Activity 1-3 Building a Simple User Interface(创建简单的用户界面) 1-2 Android系统架构基本模式解析 1-1 Building Your First Android Application FTP Send File: Source Code Review(转) 动态操作文件 通用日志管理工具 触发器程序 通过CLP实现library之间的自动复制 (转) OVRDBF的用法
命名空间的规划
mshwu · 2013-09-19 · via 博客园 - mshwu

一个优秀的程序设计应该是组织层次分明,模块职职分明的,开始写第一行代码前,应该规划命名空间,它所体现的是你个人意志中对代码资源的规划。

可参考来自Design Guideline的建议如下:

<Company>.(<Product>|<Technology>)[.<feature>][.<Subnamespace>]

example : Microsoft.WindowsMobile.Directx

对于一个大型的软件企业,以友邦保险为例,一级命名空间可以如下:

Com.Aia.Application

Com.Aia.Foundation

Com.Aia.Framework

Com.Aia.Utility

Com.Aia.Training

  • Application  代表项目或产品
  • Foundation 代表公共库,类似于Enterprise Library之类的公共基础库,纯粹的Class Library, 没有UI元素
  • Framework 组织通用框架,类似于Spring,基于Foundation之上,面向某个开发领域扩充的Class Library和控件,本身不能独立运行,但可以完全集成到具体的产品或项目中。
  • Utility 企业内部各种工具,比如日志分析工具
  • Training 完全面向培训用途,对以上各块的使用实例

总体布局如下所示:

image

比如对于支持各个Framework 的公共Foundation, 可以放入以下子命名空间内:

Com.Aia.Foundation.Core.xxxxx