为什么我们使用非描述性内部代号?[关闭]


16

我认为使用代号非常普遍。我们公司也在使用它们。

但我主要担心的是这些名称通常在任何地方都没有记录。意思是通过口耳相传。这些名称与它所命名的工具或实体的功能无关。

我看到了内部测试机以星座命名的模式,面向公众的服务器是以希腊众神命名的。项目以地名或一些随机选择的电影明星或人物的名字命名。但是,无论机器是Windows还是Linux,都无法直接从名称中获得任何信息。32或64位服务器。或项目是什么。

当我看到VCS的提交消息,即有人刚刚分支了“ Gandalf”项目或“ Callanish”项目或任何项目时,我只是感到不好过。出于同样的原因,您通常不会这样命名函数和变量。

我提议,至少对于新实体,我们应该使用更具描述性的名称,但是我面临着强烈的反对。显然,除我以外,组织中的每个人都喜欢这样命名。

那么为什么要使用非描述性的代号呢?

不要误会我的意思,我没有问题地命名程序版本和里程碑,也没有出于营销原因而使用好的产品名称。但在所有其他地方,我希望看到描述性名称。

编辑:

为您提供一些背景信息:Gandalf是移植代码64位的项目。Callanish是将其移植到Android的...我宁愿将前一个分支称为64bitporting,将后者称为androidporting。也许附有后缀,表示我们计划将其发布的目标版本。所以每个人都知道它的名字。

有问题的服务器是我们在其上测试产品的虚拟机映像。不过,我不知道它实际运行的物理机。因此,将它们称为windowsxp_32,windows7_64,debian_32或solaris_64完全可以。


6
对您而言,描述性内容可能不足以对他人进行描述(或简化)。名字就是名字就是名字。没有混乱或分歧。
罗比·迪

1
答案如此之多,但是,如果您问到“我是要按目的还是希腊众神命名服务器?”这个问题,我怀疑/希望达到目的。是的,在记住哪些是ftp服务器时,fileserver4比Aphrodita更容易记住。
Vorac 2014年

2
这个问题似乎离题,因为它与软件开发无关。
迈克·帕特里奇

4
名字叫什么?我们用其他词称呼玫瑰的味道闻起来很香。
Caleb 2014年

3
我希望Gandalf分支不是单元测试框架的代号。任何通过它的东西都不能通过!
corsiKa 2014年

Answers:


25

我们并没有按照人物的特征来提及他们,因为要花费一整天的时间来详细列出人物,以使他们变得毫不含糊,而且人物的特征会发生变化。如果他们理发了怎么办?相反,我们给他们起名字。而且,与随机符号流相比,人们更容易记住单词。

免责声明:由于这个问题,这将包含一些意见和传闻。

在我几年前工作过的地方,我们所有的服务器都以卫星和身体部位的名字命名。“丽亚”,“米兰达”,“肺”,“肾脏”等。

Up up决定像您一样,这有点愚蠢,我们应该将它们更改为更具“描述性”的名称,例如“ arc-sql-w-4”或“ lon-web-lin-2”。这遭到了很多反对。但是它经历了。我们重命名了所有内容。

那么出了什么问题?

以前,我们最需要知道哪些机器是主数据库,哪些是从属机器,因为我们可以记住“心脏”控制的“头”,或者“ Tarvos”是X的应用服务器。现在,我们不得不记住一堆模糊的符号,这些符号部分但没有完全描述我们要寻找的机器。我们必须通过头脑中的一些查找表来知道“ lon-web-lin-1”是产品A的应用服务器,而“ lon-web-lin-2”是产品B的应用服务器。

这类似于您应该使用FartDownTrousersForALivingDoYou之类的密码的原因。而不是43gH5#€1。人们善于记住单词,而不是随意堆积垃圾。单词是指事物的符号。

另一个(可能更实际)的问题是您要将DNS和服务器名称与它们的功能绑定在一起。这意味着您不能更改功能而不更改名称。对我们来说,这也包括物理位置和操作系统。这是一个巨大的痛苦。

另外,这是最后一点。名字更有趣。

那项目名称呢?

好吧,您提议的不是“甘道夫计划”?“设计原型函数X,看看我们是否可以将其演化为产品”?如果项目范围发生变化,该如何重命名该项目?同样,名称是指事物的简写符号。


5
好像您更改了非描述性象形文字的描述性隐喻。您应该已经实施了一个命名模式,该模式可以清楚地表明哪个产品在哪个服务器上运行。这就是所谓的“描述性”;)
back2dos

9
@ back2dos-当将新应用程序部署到服务器或现有应用程序移至其他服务器时,您是否重命名所有受影响的服务器?产品A重命名后(由于我们未使用代码名称),该怎么办?您是否要在客户端上存储该名称的任何地方进行更改?还是要保留误导性的DNS别名以最大程度地减少更改范围?
贾斯汀·凯夫

5
@ back2dos-每次部署新应用程序时,重命名服务器(并更新所有客户端)会非常痛苦。将第十个应用程序部署到特定服务器时会发生什么?当您有数百台引用特定服务器名称的客户端计算机时,会发生什么情况? db3.todoapp如果服务器仅处理,则会提供更多信息todoapp。如果市场营销决定将应用程序称为“ Organizer Pro”,并且服务器上还有其他8个应用程序,则管理名称将变得非常复杂。
贾斯汀·凯夫

4
此外,当机器具有多个功能时会发生什么?名称要么变得难以管理,要么无法准确描述。
汤姆2014年

3
很难不同意back2dos。“非描述性象形文字”正是我在阅读示例时所考虑的。角色身份 back2dos 之间的区别也特别重要。在我的公司中,服务器是根据其角色命名的,“ http-blog-db-failover”之类的名称似乎比“ Hermione”的名称更为明确,当我从MongoDB切换到CouchDB或市场营销决定更改托管博客的网站的商业名称时。
2014年

10

从本质上对事物进行命名是一个根本的坏主意。原因是,根据定义,属性是可变的现象,而即使更改了属性,事物的身份也保持不变。

有人决定将文件服务器迁移到Linux?如果它的名字是“ Apollo”,那不是问题。如果名称引用“ windows”,那么它要么会引起误解,要么必须在任何地方进行更换,而这笔费用或风险很大。您要引入一种新的输出格式吗?为了上帝的爱,不要称其为“ newFormat”!这最终被再次替换,并且甚至较新的格式都需要一个更描述性的名称来区分它。可以将其命名为“ 3”,以便稍后将其提升为“ 4”,也可以将其命名为“ gold”,从而可以升级至“白金”。

(另一个原因是,由信息块组成的名称非常丑陋。没有人愿意在名为“ PC-Marketing-Windows7-143”的计算机上工作-他们将在其中使用“ Apollo”甚至“ Bacchus”任何一天,但要点是身份/财产划分。)


5
描述性名称并非描述属性,而是目的。如果您调用显示输出的函数,Hermes则可以,它比更加可识别functionWithTenLinesOfCode。就个人而言,我会称呼它print
back2dos 2014年

@ back2dos OP提供的示例似乎在描述print_left_aligned_to_CRT_monitor()
Izkata 2014年

@Izkata:您必须承认,那比更好Cathy()。注意:我个人已经看到带有功能和变量名称的生产代码引用了Guns&Roses歌词,并且犯了使用带有变量和函数名称引用Buffy的生产代码的罪行。
slebetman 2014年

10

根据我的经验,有3个原因:

  1. 当您必须命名许多类似的事物时,可能很难为所有这些事物找到唯一的描述性名称。人们需要一种简短的,唯一的方式来引用它,而且与使用数字相比,我们更擅长使用名称(除非数字很短)。当您给它起一个名字时,它往往会在您的脑海中展现出一种个性,因此您会记住,服务器Gandalf是具有片状电源连接器的服务器,其性能优于SERWIN15AB23。您也不太可能将其中两个与错字混淆。

  2. 命名过程可能很有趣。一些公司投票表决。其他人喜欢拿出唯一的名字。问问任何父母。

  3. 对于外部项目,通常由市场营销来决定名称,通常情况下,他们会在发货之前就这么做。Microsoft何时决定将最新的操作系统称为“ Windows 10”?我怀疑它总是这样。在此之前,该项目可能已经开发了很长时间,在某些情况下,您希望对其进行混淆,以使公司外部的人员不知道您在说什么。


5
还值得补充的是,可以针对相关任务定制名称。Gandalf可能是构建服务器的“神奇之处”,Cerberus可能是防火墙,Hephaestus是开发服务器等...很难将数字与函数关联
Liath 2014年

1
顺便说一句:“ Windows 10”的内部名称实际上是“ Windows NT 6.4”。但是市场永远不会承认6.0(又称“ Vista”)是操作系统内核进行了重大重新设计的最后一个版本。
菲利普2014年

@Philipp只需在Windows 7计算机6.1的命令行中键入“ ver”(总是开玩笑的Vista SP1),不确定Windows 8是我的头等大事。
Liath 2014年

Windows 8.1 Pro(我确定这台PC没有更新1):6.3.9600 msdn.microsoft.com/en-us/library/windows/desktop/...
WernerCD

@Philipp AFAIK,这样做是出于向后兼容的原因,它没有反映内核更改了多少。
svick 2014年

6

描述性命名是hard™,如果您已经有了一个主题,该主题会自动附带您可以使用的单词列表,那么描述性命名就容易得多。

当您有多个相同的对象来命名它们foo1.6foo1.2,等会很快引起混乱/容易出错。例如,当您需要进行测试时,Virgo如果碰巧要进行测试,您将很快注意到错误Cancer

当命名约定推出并决定根据音乐风格决定会议室名称并命名自助餐厅时,这也可以举办一个有趣的会议Salsa


1
Descriptive naming is hard™, it's much easier if you already have a theme which automatically comes with a list of words you can use.非常真实 但是,仅仅因为它更容易,并不意味着它从长远来看是好的。您要说的与不进行正确的API设计没有什么不同,因为仅生产功能就容易得多。
back2dos 2014年

4

这可能与高背景或低背景文化有关。每个公司,组织或团队都有自己的文化。高低语境文化意味着一种文化喜欢显式地关联多少信息,以及人们期望从语境中获取多少信息。

使用来自文化参考的名称来命名所有服务确实提供了一定的灵活性,但也缺乏明确性。必须有口耳相传或“部落知识”作为名称的补充,即服务的上下文。我见过这样的情况,例如,有一个“ fizzbuzz”服务器或一个“ marcopolo”服务,没人知道他们在做什么,但是他们得到了流量,所以他们必须做点什么。

我是一个低语境的人,所以我倾向于选择简单的,明确的名称提供有关服务器或服务用途的上下文。我还编写了“自我记录代码”,在其中我谨慎地命名代码以使其更具可读性。

但是我目前在一家高背景商店工作,所有服务都以Transfomers的名字命名。叹。至少他们使用一致的名称。

因此,它看起来更像是一种文化价值,但是技术实践将适应文化偏好。

高语境也可能更有趣,并且其中有些价值。


3

代号的原因之一是混淆。如果您使项目名称毫无意义,那么您就可以在没有其他人了解您正在讨论的内容的情况下公开讨论该项目。

同样,如果给服务器起无意义的名称,那么除授权用户外,没有人会知道它们上的内容。


2

重要的问题是:什么是描述性的?其他答案在说明非描述性方面做得很好。

让我们确定一下,描述性源于通过事物的作用宗旨来称呼事物通过他们做什么。例如,很清楚“刀具”的作用。现在可能是斧头,激光或刀子。没关系。激光也可以是“指针”,斧头也可以是“装饰器”,而刀也可以是“穿刺器”。

因此,正如其他人指出的那样,事物的属性与其完成的任务之间的关系相对松散。因此OS作为服务器名称的一部分,不是描述性的,它是分散注意力从真正目的。

除非您要完成组件如何DoesX完成X的工作,否则与您无关。如果这是您的工作,那么无论如何您都会立即面对它。

正如rachet freak指出的那样,有时很难找到描述性名称。但更多的是,这常常表明您不了解必须做什么而做的事情。在了解之前,您可能不应该担心自己如何做未知的事情;)


+1,但是添加示例呢?您可以使用我在评论问题时使用的示例(http-blog-db-failover对于托管博客网站托管故障转移数据库的计算机;从Linux迁移到Windows或从MongoDB迁移到CouchDB不会影响名称,营销决策也不会影响名称。 )
阿尔塞尼·穆尔琴科2014年

2

第一个原因是它可能简短而令人难忘。如果考虑要说多少次或写上项目的名称,那么如果每个人都知道和理解一个简短的名称,则可以节省大量时间。

第二个原因是它建立了友情。如果团队选择名字,那就可以选择他们都喜欢的名字。这很微妙,但是当您从事名为Viper或Gimley或Boba或Bugatti的项目而不是名为“ Q3 Accounting Updates”的项目时,它会提高团队士气。我有一个朋友和一群汽车爱好者一起工作。他们最喜欢的项目开工仪式是挑选他们将用作项目代号的汽车。


2

我一直认为这样做是因为它使人们感到很有趣。人们受到媒体的限制,要在黑暗中与在白天工作时相处,以附加价值。在5岁时,我们有“特工Oso”;15岁时是詹姆斯·邦德(James Bond)。保密对人们原本平凡的活动(例如,对计算机编程)具有重要意义。

与此相关的是,有人用Microsoft代号(http://en.wikipedia.org/wiki/File:Windows_Longhorn_logo.svg)为“ Longhorn”制作了徽标。为什么有人会为一个不打算真正参与任何营销活动的代号制作徽标?再次,人们做这种事情是因为它使他们开心。与实际工作相比,在Photoshop中玩游戏更加轻松/有趣。


1

可能会有一个您只是不知道的系统。
我曾为一家公司使用过所有服务器的诺贝尔奖获得者的名字。不同的诺贝尔奖表明服务器的类别不同。
测试服务器可能以数学获奖者的名字命名,数据库服务器是以文献获奖者的名字命名的,邮件服务器是以药物获奖者
的名字命名的,等等。对于不熟悉命名约定的人来说,这些名字似乎是完全随机的(尤其是因为大多数人不知道这些名字数十年来获得数百位诺贝尔奖获得者)。

我在家中使用过类似的系统,在喷气式战斗机之后命名计算机,在轰炸机之后命名服务器,在火山之后命名磁盘。

可以使用软件来完成相同的工作,在树后命名生产版本,在花后命名Beta版本,等等。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.