据说平均下来, 程序员会有10%的时间花在取名字上。

今天和俊儒聊天的时候, 讲到了在知乎上看的, 《扩散性百万亚瑟王》为什么停运的原因:

ma

这种等级的中二程序员的确可以留名青史了… 大型程序一般都是团伙作案, 所以“写出逻辑清晰、见文知意”的程序, 也是一个程序员的必备技能。

按照正常文章的套路走, 这里我们要介绍一下, 绝大多数的计算机词语是有唯一的中英对照的:

服务器 - Server
表 - Table
事务 - Transaction
等等

像这类词语一般来说都没啥异议。 写程序的时候就直白地写就行了。 不过有的时候程序员要写富含需求的代码, 就可以玩一玩了。

代码片段

之前有一段代码, 要实现软文、软广相关的功能。 于是取变量名时, 翔神一拍大腿: 那就是advertorial这个词了! 这个词非常准确, 就是软文的意思。 吃瓜群众纷纷表示真牛逼!

然后代码写好了, 到浏览器里跑一下: 结果后端接口调用挂了… 定睛一看, 原来是浏览器的防广告插件自动识别了advertorial这个词, 把我们的接口屏蔽了… … 于是后来数据库里, 软文还是advertorial, 但是url里, 软文变成了soft_article… 吃瓜群众纷纷表示更牛逼了…

还有一段代码, 要实现一个大礼包相关的功能。 类似于星巴克88元的礼品卡, 送券送积分送储值等等… 于是问题来了, 这个“大礼包”的抽象类应该叫什么名字呢?

当时系统里面已有的一些英文对照有: 积分奖 reward, 券 coupon, 礼品卡 gift_card等等…… 感觉好的名字都用完了, 我们都停下了手里的键盘, 开始了头脑风暴…

gift_bag感觉很蠢, 尤其是有了gift_card。

这种奖励是一系列产品的叠加, 也可以叫production, 但是这会跟production environment有歧义。

最终我们给这个东西取名叫: one_piece。 没错,OnePiece就是《海贼王》里面的海贼宝藏。

给抽象类取一个无意义的名字, 反而影响深刻,没有歧义。 简直是解释一次,终生难忘…

信达雅

其实写程序起名字, 很多时候随便起一个也很容易, 但是想追求一个信达雅的表达, 就需要仔细想想了。

最近业余时间写麻将相关代码, 就感觉翻译真难… 像花色和大小还能用纸牌的SuitRank来对应, 但是一些番名我就比较懵逼了:

  • 十三幺/国士无双,根据维基百科的说法是ThirteenOrphans
    • 那老头牌估计就是OrphanTile了…
  • 九莲宝灯,有翻译说是Nine Gates,这个我先信了…
  • 海底捞月杠上开花这些咋办…

:) 所以看来10%时间都花在取变量名上, 这个说法还是比较保守的呢。

正如程序员经常说的 Talk is cheap, show me the code, 有个有个很棒的翻译: 废话少说,放码过来

还是要继续修炼啊。