关于中文标识符的思考

标识符的重要性不言而喻,在大型项目开发中,有一个好的标识符,能轻易而准确的理解一个类的概念,一个函数的功能,各个设施的作用和他们之间的联系.比起好的注释,我相信有一个好的标识符更直接重要.


问题描述:

中文标识符没有存在意义吗,中文标识符没有其价值吗?

我相信任何事物都有他的两面性,物皆有其位,在一个正确的地方使用一个正确的工具,就能发挥其价值


首先要强调的一点是,使用中文并非是为了逃避英文,就算是土生土长的英国人,在涉及到专业领域中的很多术语概念时,他们也是完全不懂其单词的,而中文在这方面有着固有的天然优势:

1,望文生义,火车,汽车,磁悬浮列车;引力,重力,磁力,电力;体细胞,骨髓细胞,红细胞,细胞壁,细胞核;汽油,葵花油,植物油;我们可以很容易的理解并推断其含义和他们之间的关系,就算我们不是相关专业领域的专家,但是很多概念,一看就懂

2,对于复杂概念,用中文要简明的多.几乎是任意一本书,其英文版本要比中文版本厚很多,对于复杂概念或行为,用英文作为标识符会很长并且很难控制空格,导致很难阅读,而中文不存在这样的问题;

3,不得不承认,我们的英文水平确实不如以英语为母语的国家,这是生活环境所致,就算英文很好,对于一些不常使用的近义词有时也很难分清具体的含义区别,很多时候在查词典,最终使用一个别人看起来有些怪异的单词也不是什么好的方案.

补充:在Clean Code中有如此表述,别害怕长名称,长而具有描述性的名称,要比短而令人费解的名称好,长而具有描述性的名称,要比描述性的长注释好,别害怕花时间取名字,有专门为取名字而工作的人,而且此书还非常强调名字要可读,即可发音,向PDFC这样不能发音的是不好的,所有的这些在中文中都有与生俱来的优势.


我们应该取长补短,在适当的时机与位置使用中文,会使对象概念理解起来更加容易,我们的祖先已经为我们抽象好了各种概念,在复杂的系统中,用熟悉的中文标识符来代替青涩的英文术语,是一个不错的选择.

一下情况可以考虑使用中文标识符:

1,具体可以独立出来的概念对象,与外界无关,可以自我生存的类,组件.

2,需要用很长的一句话来表达一个函数或动作.

3,使用频率很少或专业性很强的概念


我的建议是中英文混编,英文也有其固有属性优势,或许混合使用起来会感到不便,不习惯,但我相信人的适应性是很强的,关键需要考虑的是这样做从实用角度来讲是否合理,至于中英文混编问题,不都是人类语言吧,所以,大丈夫,萌大奶.



临时想到的补充:

1,3字以内不要使用中文,除非是一个特别明确的概念,类,或对象,否则通常会有更好的英文来代替.

2,变量不要使用中文,尤其是局部变量,使用中文的目的是尽快的从总体,大局上掌握一个项目,理解一个项目,细节以及很小的地方不要使用中文.





命名的补充,最近看CleanCode,讲到命名这里,更觉得用中文实现其思想要容易的多.至于匈牙利命名想了一下确实没有必要添加那么多,好的名字提供的信息已经足够了.除了2个例外,表示类型的类型,即指针(p),引用(r)这2个前缀还是很有必要保留下来,当然在JAVA之类的语言中不需要,因为根本就没的选择.其他的以后再补充.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值