我先说我通常在 C#/.Net 中工作。
通常,我使用一种命名方案,将常见的、可重用的组件放入一个命名空间中,该命名空间反射(reflect)了我们的组织和项目特定的组件,并将其放入与项目相关联的命名空间中。我这样做的原因之一是有时我会与部门外但组织内的其他人共享我的组件。特定于项目的命名空间通常以部门的名称或缩写开头。当我在项目之间重用代码时,我通常会将其迁移到基于组织的命名空间之一。
例如:UIOWA.DirectoryServices
包含处理我们的 Active Directory 的特定实现的类。UIOWA.Calendar
包含处理大学主日历的类(class)。LST.Inventory.Datalayer
拥有实现学习空间技术组库存应用程序数据层的类。
我现在正在为一个与大学(一个举办慈善事件的学生团体)有更模糊联系的实体开展一个项目,该实体有可能在我们大学之外出售,因此,它并不真正适合进入我的正常命名约定,即部门只是可能使用该项目的潜在许多客户中的第一个客户。
我的倾向是走组织命名路线并为此应用程序创建一个“组织项目”命名空间。我想听听其他人如何处理这个问题以及您可能有的任何建议。
谢谢。
另见 这个关于 namespace organization 的相关问题.
编辑
我最终创建了 org/project 命名空间 UIOWA.MasterEvent
并从那里派生出更多的命名空间。仍然对 future 项目的其他意见感兴趣。
最佳答案
我的部门在过去五年里改了三次名字,所以我们都很高兴有人决定不使用带有组织名称的命名空间......
我们的命名空间是按项目名称组织的。可重复使用的东西放入Toolbox
命名空间。也许有点粗糙,但到目前为止效果很好。
关于language-agnostic - 你如何为你的命名空间命名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/240033/