你如何为命名空间设置名称?

时间:2008-10-27 14:18:58

标签: language-agnostic project-organization

我将通过说我通常使用C#/ .Net。

来作为序言

通常,我使用命名方案将常见的可重用组件放入命名空间,该命名空间将我们的组织和项目特定组件反映到与项目关联的命名空间中。我这样做的原因之一是我有时会与我所在部门以外的其他人共享我的组件,但在组织内部。特定于项目的命名空间通常以部门的名称或缩写开头。当我在项目之间重用代码时,我通常会将其迁移到一个基于组织的命名空间中。

例如:

UIOWA.DirectoryServices包含处理Active Directory特定实现的类。

UIOWA.Calendar包含处理大学主日历的课程。

LST.Inventory.Datalayer包含实现Learning Spaces Technology组清单应用程序数据层的类。

我现在正在开展一个项目,这个实体与Unviersity(一个举办慈善活动的学生团体)有着更为模糊的联系,有可能在我们大学以外的地方销售,因此,它没有这非常符合我的常规命名约定,即部门只是可能使用该项目的许多人的第一个客户。

我倾向于去组织命名路线并为此应用程序创建“组织项目”名称空间。我想听听其他人如何处理这个以及你可能有的任何建议。

感谢。

另请参阅有关namespace organization的相关问题。

修改

我最终创建了org / project命名空间UIOWA.MasterEvent并从那里派生了更多命名空间。仍然对未来项目的其他意见感兴趣。

3 个答案:

答案 0 :(得分:6)

我的部门在过去五年里改变了他的名字三次,所以我们都很高兴有人决定不使用具有组织名称的命名空间......

我们的命名空间按项目名称组织。可重用的东西放入Toolbox命名空间。也许有点粗糙,但到目前为止效果还不错。

答案 1 :(得分:1)

我是.NET开发人员,我总是使用组织项目命名空间(com.bolidian.projectspace),因为它保证了唯一性。

答案 2 :(得分:0)

我使用该组织,然后使用产品,例如Acme.Crm。在子名称空间中将类分组在一起时,始终使用复数或操作,以便它不能与类冲突。例如

  • Acme.Crm.Letters
  • Acme.Crm.Invoicing

我遵循微软的惯例,不是首字母缩略词,例如Crm而不是CRM,Sql而不是SQL - 但这更像是个人偏好。