首页 > 编程语言 >为什么学编程都建议不要用拼音命名?

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

时间:2023-07-28 20:13:13浏览次数:39  
标签:... 拼音 代码 编程 var 命名 方法

前言

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

↓↓↓

 

 

 

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

动图封面

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

现如今汉语普及率这么高的今天,全世界都在学中国话,用拼音命名不是挺好。

 

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

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等,那么你写的代码,是面向全球化的,但问题来了,如果你写了拼音这种变量,老外是铁定看不懂的,这会显得这款软件很不国际化。

产生歧义

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

 

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

动图封面

本文完~

原创:陶朱公Boy(微信公众号ID:taozhugongboy),欢迎分享,转载请保留出处。

 

标签:...,拼音,代码,编程,var,命名,方法
From: https://www.cnblogs.com/StarbucksBoy/p/17588791.html

相关文章

  • C编程练习-递归
    1.使用递归解决计算第N项斐波那切数列斐波那契数列:F(0)=1,F(1)=1, F(n)=F(n-1)+F(n-2)(n ≥2,n ∈N*)1,1,2,3,5,8,13,21,34,55,89...代码:#include<stdio.h>intfunc_f(intn){if(1==n||2==n)return1;returnfunc_f(n-1)+func_f(n-2);}intmain(intarg......
  • C编程练习-五子棋升级版(键盘的上下左右键控制落子)
    #include<stdio.h>#include<stdbool.h>#include<stdlib.h>#include<getch.h>charboard[15][15];//棋盘charrole='@';//角色charkey_x,key_y;//下子坐标//初始化棋盘voidinit_board(void){for(inti=0;i<15;i++){for......
  • 小白编程入门要怎么学?
    1、如果你已经掌握了Windows的使用,你就可以踏上编程之旅了,开始游戏式的程序开发!2、首先从学习C语言开始。有些人可能认为C语言很难,建议从VB(VisualBasic)开始学习。虽然通过使用控件堆砌小软件可以获得一些成就感,但基础才是最重要的!C语言涵盖了更全面、清晰的数据类型描述,正是编程......
  • Day5.2 Shell编程教程 - 特殊变量表达式参数
    1.特殊变量表达式参数`$0``$n``$#``$*``$@``$?``$$``$!`2.示例脚本示例脚本-`special_variables.sh`3.执行示例脚本4.结论大树哥个人信息在Shell脚本中,特殊变量提供了对脚本执行过程和执行环境的访问。它们帮助我们在脚本中获取脚本自身的名称、获取命令行参数以及处理其......
  • 并发编程-CompletableFuture解析
    1、CompletableFuture介绍CompletableFuture对象是JDK1.8版本新引入的类,这个类实现了两个接口,一个是Future接口,一个是CompletionStage接口。CompletionStage接口是JDK1.8版本提供的接口,用于异步执行中的阶段处理,CompletionStage定义了一组接口用于在一个阶段执行结束之后,要么继......
  • 2023“钉耙编程”中国大学生算法设计超级联赛(4)Number Table
    题意对于一个\(2\timesn\)的矩阵,若每行每列数均不同且均\(\in[0,2^k)\),同时\(2n\)个数异或和为\(0\)则称该矩阵合法。给定\(n,k\),求总方案数。做法考虑若只有一行,即求\(n\)个不相同的数异或和为\(0\)的方案数:假定前\(n-1\)个数不同且已确定,此时仅需考虑第\(n\)个数是否在前......
  • Java8 函数式编程stream流
    开篇介绍Java8中新增的特性旨在帮助程序员写出更好的代码,其中对核心类库的改进是很关键的一部分,也是本章的主要内容。对核心类库的改进主要包括集合类的API和新引入的流(Stream),流使程序员得以站在更高的抽象层次上对集合进行操作。下面将介绍stream流的用法。1.初始环境准备......
  • Delphi 的 DBGrid 中的下拉列表和查找字段编程方法
    数据网格是非常流行的数据输入和显示形式,像大家熟悉的Excel、VFP 中的功能强大的BROWS 等,为广大程序员乐于采用。在用 Delphi 开发数据库应用系统时,利用数据网格DBGrid 输入数据时,有些字段只允许某几个固定的字符串,像档案案卷的保管期限,只有“永久”、“长期”和“短期”三种......
  • C++中的命名空间
    命名空间1.概念通过定义命名空间,可以将符号分类管理,防止命名冲突。2.使用方式作用域限定符std::coutusing编译指令usingnamespacestd;using声明机制usingstd::coutusing编译指令简洁,但易发生冲突。常用using声明机制。且,using声明函数时不用带形参部分。in......
  • linux shell编程入门
    摘要介绍shell是什么shell快速开始一、基本概念1.shell是什么Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序用户可以用Shell来启动、挂起、停止甚至是编写一些程序。2.shell脚本|执行方式脚本格式要求脚本以#!/b......