Language agnostic 将类命名为;com.facebook.facebook客户端“;vs";com.facebook.Client“;

Language agnostic 将类命名为;com.facebook.facebook客户端“;vs";com.facebook.Client“;,language-agnostic,namespaces,Language Agnostic,Namespaces,我正在寻找关于命名命名命名空间类的意见,或者是否有一致的方法 例如: 或 目前,我更喜欢每个示例中的名字,但额外的单词似乎有点浪费。以Actionscript为例,我认为FacebookClient优于Client。因此: import com.facebook.Client; import com.twitter.Client; 您必须通过类的完整包引用该类,才能在同一类中创建实例: new com.facebook.Client(); 如果是FacebookClient,我可以两者兼得

我正在寻找关于命名命名命名空间类的意见,或者是否有一致的方法

例如:


目前,我更喜欢每个示例中的名字,但额外的单词似乎有点浪费。

以Actionscript为例,我认为FacebookClient优于Client。因此:

import com.facebook.Client;
import com.twitter.Client;
您必须通过类的完整包引用该类,才能在同一类中创建实例:

new com.facebook.Client();
如果是FacebookClient,我可以两者兼得

new FacebookClient();
new TwitterClient();

另外,当代码完成弹出时,客户机会让我恼火。额外单击以选择正确的客户端;)

facebook域是否有其他类型的客户端?script域是否有其他类型的引擎?他们将来可能会这样做吗?如果是这样,你需要一些东西来区分它们。否则可能会浪费空间


当然,未来几乎是不确定的。

我要补充的唯一一件事是,如果要在C#中使用
指令。如果您有两个名称空间具有相同的方法名称,如
client
,则会出现冲突/混淆。

我通常使用以下名称:

[公司名称][项目名称][功能区][类别]

i、 e

com.dave.megaproject.dataaccesslayer.postcodelookup

或者在.net世界中:


命名空间DaveFirm.MegaProject.DataAccessLayer.PostCodeLookup

在类名和文件名为一对一的语言中,不管包是什么,都有一个参数用于为类名命名。我发现很多人通过类名查找文件,或者打开名为
.java
的文件,或者在IDE中使用“快速打开”。为了决定您需要哪个
Client.java
而进行的额外的脑力劳动可能会让您非常恼火,您会欣赏额外的命名


而且,它使内容更易于阅读,而且不像任何现代编辑器(如vi或更高版本)那样,您需要多次(有时甚至不需要一次)键入它。

我每次都会使用FacebookClient样式的额外单词,因为名称的最小形式是,在多文件搜索中查找该名称的引用就越容易。

不过,使用别名可以轻松处理此冲突。从长远来看,优化边缘情况通常是个坏主意。我会使用客户机,然后在他们需要更具描述性的名称时重新考虑(或简单地包装)。从长远来看,这可能是正确的,但这是一个相当主观的问题。当优化如此琐碎时,我更喜欢清晰而不是优化。
new com.facebook.Client();
new FacebookClient();
new TwitterClient();