我的任务是选择一个名称,该名称实际上是我们架构的内部名称。我认真对待这个责任,因为我曾经处理过很多“糟糕”的命名空间,并且不想在其他名称空间中造成这种情况。
什么使我成为“坏”命名空间?
就人为因素而言:
DDL
,MOS
等Office
或Text
或IO
Vancouver
等等。
我觉得在描述性能力和助记符方面选择名称空间感觉很舒服。我想知道命名空间名称的技术后果是什么。例如,命名空间_
可能会出现什么问题,这是一个合法的C#命名空间名称?一个字母怎么样,比如e
?是否存在使CodeDom或Reflector适合的命名空间?在C#中合法的一些命名空间是否会导致其他.Net语言出现问题?是否有可能出于某种原因选择不符合Mono标准的命名空间?您是否使用过一个名称空间,因为涉及编译器或Visual Studio或Windows(或Linux)文件系统的原因使您的生活变得困难?
感谢您的阅读并提前感谢您的帮助!
答案 0 :(得分:19)
对于非技术性内容,请阅读“框架设计指南”。他们有很多好建议。简言之:
我没有在这里复制的指南中有更多好的建议。去读它们。
然而,听起来你有非技术性的东西了。指南中的一点建议是“不要将类型命名为与其命名空间相同”。这是一个很好的建议,不仅仅是因为这样做会让读者感到困惑;还有一个很好的技术原因。
由于技术原因,为什么命名类型与其命名空间相同是一个可怕的想法,请参阅我关于该主题的文章:
http://blogs.msdn.com/b/ericlippert/archive/tags/namespaces/
答案 1 :(得分:0)
确保命名空间尽可能唯一地启动,以避免您所描述的那种冲突。例如:
YourCompanyName.subnamespace.subsubnamespace
YourLastName.YourFirstName.subnamespace.subsubnamespace
答案 2 :(得分:0)
第一次尝试不要太难。无论你认为你的命名约定和结构多么聪明或干净,你都会重命名和移动东西。就是这样。
对于初学者来说,最重要的是确保基本名称中碰撞的可能性很小。稍后,您将能够使用ReSharper等人的工具轻松地重构命名空间。
答案 3 :(得分:-2)
使用您公司内所属单位的名称