还有无数的取名场景,我可没打算也不可能列全,暂时想起上面这些比较有趣的供大家一乐。
切,不就取个名么?
Easy?
如果你不是满腹经纶,出口成章,三步成诗,博古通今,天文地理,周易八卦,星座命理的那种大才或专才,取名字这件事绝对没有那么简单。
这不,当初给犬子取名就吃了没有上面任何一种才的亏,真是历经了各种波折:翻了无数遍测字命理星座的书,按照部首拼音韵脚选了无数个含义美好的字,还有诗经楚辞论语离骚周易中庸礼记尚书.....等等,统统没翻过!
中国人起名儿无非这么几个出发点:
- 绝对不容易被起外号。说实话时代潮流一直在变化,外号有时候就是那么不期而遇,不用太刻意强求。就像以前还是挺优美的“翔”字,谁曾想现而今会让人无法直视;曹操的“操”(一声,读成四声的同学去面壁)字,应该是操守、节操的那层意思,如今试问谁还有胆用它做名?!
- 硬靠或者拆解某段知名文学诗词诗歌里的优美词句,显得有Bigger。你说你单名一个“草”字,非说取自“离离原上草,一岁一枯荣”,我们还能说什么呢?
- 出生日的季节、节气或节日,所以很多叫国庆、建军的也就不奇怪了。
- 家族传承:比较大的家族或者族群,按照族谱每一代都有固定的授字。比如我父亲就是江字辈,而到我这一代大家不讲究了已经。
- 姓名整体是一个比较有趣或者大众共识的美好事物(高富帅、白富美、殷悦)。犬子的名字就来自于此,下文会说。
- 还有一种也是比较流行的,就是父母的姓或出生地进行结合或拆解或谐音,取三字甚至四字的名字,如一钱一程取名钱程,一龙一胡取名龙古月,一上海一天津取名王沪津,一霍一郭可以考虑一下祸国殃民...
- 最后一个也是最重要的一个,中国玄学。结合各种生辰八字、属相、星座,测算一下名字的气运命格:事业、家庭、爱情和健康。测出来有大凶之兆的名字铁定不能要。
让我们还是回到笔者老本行“软件产品”的命名上来。软件研发领域的命名就是件很高频很要命的一件事。一来每个系统每个组件都需要命名,微服务体系这么多的零件,要名字不重复有新意,真不是那么容易的;二来代码里的类、接口、方法、变量也都需要命名,就查询这个词有些人就会很纠结用Get/Query/Search/Retrieve...;三来知名软件产品发布后的版本号也会有命名,比如macOS从各种狮虎豹到现在的知名景观景区。
Quora调查“程序员最难的任务”排名首位就是
Naming things
下面我就从自己多年的取名和看名经验来说道说道如何能给软件产品取个不错的名字:
首先,一个好的程序员必须能够把自己的情感倾注到代码中,视若珍宝。“推敲”二字的渊源相信大家都了解,名字取的随心所欲我实在无法相信你的代码能精益求精到哪里去。
常见的几种命名思路:
- 特性直译:比较稳妥或者常规的做法就是按照软件产品特点的相关性来命名。比如前置网关是个“把门的”,可以找一个希腊神话中的门神(Janus)或者电影游戏中著名的门(指环王:刚铎之门)来命名;风控产品是个识别风险、甄别坏人、反欺诈、保护公司免受资金损失等,因此市面上的风控产品基于不同的侧重点有叫“谛听”(地藏王菩萨的神兽,可分辨真假孙悟空),有“Aegis”(携程,宙斯或者雅典娜所持的盾);监控系统不出意外的话80%都叫XX眼,XXEye。所以该方式是稳妥但并不会太出彩的一种。
- 特性延伸:不再是特性表层的相关,而是深入和延伸的相关。知名的开源压缩软件7-Zip,名字看起来并无甚出奇之处,但自从知道它的一层含义是“牛逼到可以把Z压缩成7”,我就爱上它了。这个技巧很隐蔽有点大巧若拙的感觉,但是逼格满满。
- 产品线体系:无视软件产品的功能特性,就是选择一整套的同类型名称来命名整个产品线。比如星系、知名景点、地名、物种、节气季节、古建筑、古文明、希腊神等等。这种方式简单粗暴,如果选择的名字过于拗口或难识别就会给团队带来麻烦,所以慎重。
Pluto/Neptune 招行信用卡卡中心IT的朋友都懂;
著名的RPC开源框架DUBBO名字的渊源外部很难搜到只言片语,经多方求证,最终辗转找到了原作者梁飞(这里需要感谢山哥),方才确认DUBBO其实就是个澳大利亚的城市名,而当时阿里平台部的很多系统命名约定都是地名,选择澳大利亚也无甚出奇之处,就是“澳洲的地名大家都不熟,不容易产生无关联想”(梁飞原话);
高级开发语言Java的知名度应该比它的公司Sun还出名,很难说的清是好的命名给Java带来了更多的关注度,还是别的什么名字其实也完全可以胜任,但毋庸置疑它是个成功的命名。James Gosling团队在开发Java这款语言的时候喝了大量的咖啡,他们就决定在咖啡中选择那款品质最好的做名字,而这款咖啡就来自印尼的爪哇岛。
大家有兴趣可以读一下这篇文章,其实当初投票最后剩下的三个名字分别是Java, Silk和DNA,Java最终胜出罢了
https://www.javaworld.com/article/2077265/core-java/so-why-did-they-decide-to-call-it-java-.html
- 短语首字母缩写acronym:很多时候一个词无法表达,就用一个短语来描述,然后命名就取用单词的首字母缩写。点评开源监控系统Central Application Tracking就缩写为CAT, 而这个缩写与猫一致,更容易为大家所接受。展示层开发框架Windows Presentation Foundation缩写为WPF,缩写并不是一个单词,但是好在它够独特,搜索引擎也更容易搜索到。相比较而言CAT就比较难以搜索了,开源框架的知名度无论如何很难敌得过更大众的猫吧...
- 递归缩写:这是一种极具极客气质的命名方式,不解释。GNU的GNU's Not Unix,PNG的PNG's Not GIF,EMACS的EMACS Makes A Computer Slow
- 象形释义:这个有点太偏门,例子不太好举。就想到一个IO域名,这是程序员群体和互联网公司特别喜欢的一类域名,因为IO形似二进制的1和0,当然IO也是程序里input输入/output输出的缩写,很符合程序员的一贯尿性。还有一个表示膜拜的网络象形表情orz。象形也不失为一种较奇葩的命名方式。
- 自创词:这个是终极大招,实在找不到现成可匹配的,那就造词吧。比如著名浏览器FireFox, 问答网站Quora, 搜索引擎Google(Googol的错误拼写), 苹果的iPhone/iPad(简单加前缀或者后缀的方式), 武则天的曌(日月空)。
思路有限,暂时能想到的就这么多,相信大家会有更好的角度,可以文末分析。另外提醒大家尽量避开一些命名陷阱:难懂拗口的缩写能不用就不用,勿用易失去生命力的网红流行词,对选定的名字要有调查权(邪恶、低俗、污秽的人/物/城市做名字会很糟糕),最后远离政治。
名字其实只是个代号?
Symbol
名字的好坏确实或多或少会带来某些正向或反向影响,事实上大部分时候名字只是个普通代号而已,也不必把名字的地位刻意拔高。