前言

知乎上有个提问:为什么学编程都建议不要用拼音命名?

↓↓↓

为什么学编程都建议不要用拼音命名?-LMLPHP

不知道身为程序员的你,曾经有没有用拼音在程序代码中命名变量名、方法名、注释等的经历?

为什么学编程都建议不要用拼音命名?-LMLPHP

作为国内的程序员,可能有小伙伴会埋怨,编程语言和开发工具都已经全英文了,用拼音命名怎么了又,不好吗。

现如今汉语普及率这么高的今天,全世界都在学中国话,用拼音命名不是挺好。
为什么学编程都建议不要用拼音命名?-LMLPHP

在这里,我们不妨先思考一下,我们用拼音命名,在实际软件开发过程中,会有什么问题,缺陷在哪里?

ChatGpt回复

带着疑问,我打开了chatgpt,想知道一下它是怎么看待这个问题?(面向gpt编程,程序员做事的正确姿势 )

以下是gpt给出的答复:

不得不感叹,gpt回答的确实比较专业,考虑问题也比较全面。

接下来,我们一一来拆解一下:

可读性差

如果一个项目,全程都只有你一个人编写与维护,这个问题的影响面可能相对还小一点(不要告诉我,时间一长,你自己都看不懂当时写的语意了,这就尴尬了 )。

但,事实往往是,我们需要在一个大项目中,去编写部分业务模块代码。

有时候,我们为了赶时间或纯粹不想动脑筋,用拼音快速命名了一下临时变量或方法名。

比如下面这个例子:

var jianceniandu = ...
var nongtianchanliang = ...
var dikuaibianma = ...
var feiliaohanshuilv = ...

这种代码换做谁看得懂,特别是在没有注释的前提下。

难以表达意义

大家看下如下两段代码的对比,一个是用英文命名的方法名,一个是用拼音命名的方法名,大家感受一下,你更愿意看到的是哪个?

第一个方法,都不用我写注释,你一看就秒懂,这个方法表达的意图,做的事情。

但第二个,如果拼音简短一点的可能还好,但凡还要长的,你未必一时能看懂其含义,有时甚至要深入方法内部,查看完所有方法代码后,你才能反应过来,前人写的这个方法名表达的含义。(效率是真的低)

public void sendEmail(Message message){

      //发送邮件相关代码
}
                 vs
public void faSongYouJian(Message message){

      //发送邮件相关代码
}

IDE搜索困难

纠其原因,目前我们开发使用的IDE都是国外的软件,全文索引这块,对英文支持良好,但拼音支持不好,所以,有时候会影响搜索结果的。

跨语言兼容性差

如果我们的软件,打算开源,甚至未来有计划捐给一些国外基金会,比如Apache等,那么你写的代码,是面向全球化的,但问题来了,如果你写了拼音这种变量,老外是铁定看不懂的,这会显得这款软件很不国际化。

产生歧义

关于这一点,先贴几个案例,大家可以感受一下,先憋着别笑:

为什么学编程都建议不要用拼音命名?-LMLPHP

为什么学编程都建议不要用拼音命名?-LMLPHP

为什么学编程都建议不要用拼音命名?-LMLPHP

为什么学编程都建议不要用拼音命名?-LMLPHP

相关的案例不少,我就不穷举了。你用拼音命名我就先不说了,你还“简称”代替,你这不要人命嘛。

为什么学编程都建议不要用拼音命名?-LMLPHP

本文完~

为什么学编程都建议不要用拼音命名?-LMLPHP

07-28 20:03