首发于极光日报
软件开发中如何更好的命名?

软件开发中如何更好的命名?

简评:虽然原文中所说的是在英文环境下,但也有一定的实际意义。

当我们在进行开发时,无时无刻不面临着命名,比如:项目名、类名、方法名等等。糟糕的命名会给你带来长期的困扰,有时甚至还会导致项目的失败。

下面就介绍几个作者总结的命名问题:

1. 不要让你的软件和重金属乐队有一样的名字

很久以前,开源项目 Twisted 有一个包来管理其他的子进程。Twisted 的主包叫 twisted,因此作者决定把这个另外的包叫做 twisted.sister。但这是个错误。

后来有一天 Twister Sister 乐队(是的,这是个乐队的名字)的律师告诉我们这个名字侵犯了他们的权益,要求我们立刻停止,之后还要讨论损害赔偿。

不过 Twisted 写明了是由业余爱好者管理的,所以很明显并没有钱。不过 Twisted 还是把包名改成了 twisted.sibling,我们没人相信他们律师的声明是有用的,但也没有人想和他们打交道。

所以,这一条真正意思其实是:尽量不要和任何有律师能力的人或组织有相同的名字。

2. 不要选一个容易被人编梗的名字(还是没什么意思,负面的)

还是 Twisted 这个项目,对于 Python 开发者,直到最近几年,异步编程都不是很舒服。不幸的是,拥有负面含义的名字很容易被编出梗。

就像 "Twisted is so twisted",其他库比如 asyncore 或 Tornado 因为名字偏中性,所以就没有遇到这个问题。

3. 避免容易拼写错误的名字

我的一个项目名字是 Crochet,很多人,甚至是我有时候都会拼写错误写成 'crotchet' - 字典上的意思是「一个愚蠢的幻想,一个自负的想法」。

4. 避免糟糕的隐喻

还是以 Twisted (sorry!) 为例,Twisted 中一个包是负责远程方法调用的,类似 Java RMI。这个包名是 twisted.spread,其下面还有 twisted.spread.banana, twisted.spread.jelly 和 twisted.spread.pb。

这个命名所用的隐喻其实是非常美国本土化的,你根本猜不出它到底是什么意思,但软件却是面向国际的。因此,如果你突发奇想想用什么隐喻或者梗的话,最好也选一个有意义的。

原文:Lawyers, bad jokes and typos: how not to name your software

日报扩展阅读:

Kotlin 让使用 Android API 变得轻松

欢迎关注:知乎专栏「极光日报」,每天为 Makers 导读三篇优质英文文章。

编辑于 2017-06-15 08:53