软件开发中如何更好的命名?
简评:虽然原文中所说的是在英文环境下,但也有一定的实际意义。
当我们在进行开发时,无时无刻不面临着命名,比如:项目名、类名、方法名等等。糟糕的命名会给你带来长期的困扰,有时甚至还会导致项目的失败。
下面就介绍几个作者总结的命名问题:
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 导读三篇优质英文文章。