我们打竞赛的,一般都特别喜欢用长度很短的一些变量名,比如a, a1, i, j呀。
至于为什么,原因可能包括:

  1. 提高编码效率(冠冕堂皇)
  2. 图方便,懒得想变量名(主要原因)
  3. 受其他选手的编程风格影响(次要原因)

但是,使用非常简单的变量名,真的能提高编码效率,或者真的能给自己带来方便吗?
其实未必,相反,这很有可能给我们带来致命的麻烦,大幅降低编码效率。原因如下:

  • 不能见名知意的变量名,等于给自己增加记忆需求

我们需要思考这些变量的具体含义,然后选择正确的变量。例如,“a”和“b”————》"apple"和“pear”

  • 不能见名知意的变量名,等于给自己和他人增加理解代码的难度

很多时候,我们并不能立马编写出正确的程序,需要重新检查程序的逻辑以及实现细节,也就是进行code reveiw,简称CR。CR的人,可能是自己,也可能是别人,例如你的队友,或者你所请教的学长学姐。不管是谁,都需要再次理解整个程序的含义。当遇到晦涩难懂的变量名,只能询问你,甚至你自己还得自己思考一下,这就像是英文阅读理解做到一半还要查一下词典,巨难受!

  • 短变量名不利于搜索

假如我们需要将某个变量替换为另一个变量(在复制粘贴代码时经常发生这种情况),借助IDE,我们很容易查找到“apple”所在的所有位置,但是如果使用“a”作为变量,他很可能是其他变量,如“app”的一部分。

  • 很容易用错相似的变量名

例如,你很有可能把“m”和“n”混用,“i”和“j”混用。但是你很难把“wide”和“hign”混用,也很难把“row_idx”和“col_idx”混用。
另外,“p1,p2”、“person1,person2” 以及 “ZhangSan,LiSi” 这三组变量,孰优孰劣,相信大家不难辨别。

以上几点,都是我有过惨痛教训的。已经不知道因为这几点严重增加了编码和调试的时间。尤其记忆深刻的是第四点,曾经一次比赛中,因为把变量“m”写成了“n”,硬是调试了两个小时没找到问题所在,直到比赛后看了别人A掉的程序,而且第一遍看别人的程序时,也没发现问题。

很多同学可能觉得,好的变量名是工作后才需要提升的工程化能力。我刚开始也是抱着这种想法,所以很长一段都没有注意自己起变量名的问题。但随着比赛次数的增多,一次次踩坑的经历让我愈发觉得,必须改掉自己不重视变量名的坏习惯。希望萌新们一定要对变量名加以重视。

给刚入坑的ACMer一些编码建议(1)——使用“好”变量名相关推荐

  1. 高中学历能学python_给想学,入坑Python的人一些建议

    时不时会用一下知乎,看看大神的鸡汤找找人生的方向.发现问Python的人还是有的,我也谈谈我的经验,毕竟是过来人,帮帮想入坑的小伙伴. 本文不适合名校高材生,相信你肯定已经有了自己的人生规划. 共同认 ...

  2. 大学人机交互课小组作业(刚入坑菜鸟一枚,求别喷吼吼)

    老师让小组设计一个网站,我想我不如直接先把这个网站写出来,显得更用心一点,选的主题是河南美食 代码如下 HTML部分: <!DOCTYPE html> <html lang=&quo ...

  3. linux下玩神武4,《神武4》电脑版攻略:给刚入坑的新手一些经验_ 叶子猪神武

    本人也是新手,大概是玩了2个星期左右,我的TC还在养成中,所以初略的给予一些新人建议. 1.进入神武,创建你的个人单号,根据自己喜爱,不过现在版本玩狮驼的比较多 2.根据新手指引,快速完成新手剧情任务 ...

  4. c语言 - 杨氏矩阵,查找某个数字(思路清晰,代码简洁)(适合刚入坑)

    作者简介:一名大一在校生 个人主页:月亮嚼成星~ 个人WeChat:yx1552029968 系列专栏:c语言刷题总结 每日一句:当暴雨在头顶倾泻时,你只当它是屋檐滴水. 杨氏矩阵 题目: 有一个数字 ...

  5. 常见web漏洞验证攻略(萌新入坑必备!)

    常见web漏洞验证攻略(萌新入坑必备 首先,祝大家愚人节快乐,玩笑有度,"愚"人同乐. 其次,回想当年刚入坑的时候了解的比较少,也没人带,一般过去就是xss,后来xss的防护了,就 ...

  6. 杀戮间插件入坑指南(UT2004)

      本博文目的在于帮助对Killing Floor 1&2 插件制作感兴趣的玩家/程序员快速的了解插件的运作机制和编写方法.   这里只介绍一代版本,二代版本的编写只会比一代更简单,原理相通. ...

  7. 新手入坑GMSSL(一)Windows下编译GMSSL并生成CA证书

    首先申明,我不是密码学的专业人员,没有这方面知识基础,这个以及接下来的博客都是我根据网上能找到的资料.博客,一点点摸索总结出来的,问了很多前辈和博主,但是可能都没有看到都没有回复我 = = .但项目必 ...

  8. 入坑 c计划 day 1

    [本贴专门针对大一新生或者刚入门的c选手] 入坑第一节课 思想准备与开门介绍 首先,欢迎大家来到c的世界.c语言是门强大的专业化编程语言,在当今市场上,c语言的占比一直居高不下,不难看出c语言有多么火 ...

  9. 动漫java从入门到入土_适合刚入宅的萌新悠哉观看的经典番,全员致郁,从入门到入土?...

    二次元是一个十分美好的世界,如果入了这个坑的话,就很难再走出去了.很多动漫都可以成为某些人的入坑番,就看你喜欢你什么样的了.如果是萌新,刚入坑二次元的话,新一君推荐几部番,真的很治愈,非常适合萌新观看 ...

最新文章

  1. [转] 使用nginx sticky实现基于cookie的负载均衡
  2. Pytorch转TensorRT范例代码
  3. c++并行计算库TBB和PPL的基本用法
  4. PowerDesigner教程系列(四)概念数据模型
  5. 【转】修改版WinXP集体歇业避免遭遇调查
  6. UVA1602 Lattice Animals 网格动物
  7. What are Unix swap (.swp) files?
  8. iOS appstore各种图片的尺寸和需要注意的地方
  9. 《看聊天记录都学不会C#?太菜了吧》(6)多晦涩的专业术语原来都会那么简单
  10. java 条码识别_条码识别示例代码
  11. php xml表格形式输出,PHP XML如何输出nice格式
  12. STM32 FreeRTOS USART DMA空闲中断和消息队列的使用
  13. php笔记之-laravel-Redis hash
  14. VS对.ini文件的操作
  15. 数据存储-CoreData总结
  16. 北京致芯科技STM32F107VC 芯片解密 代烧录
  17. linux中高危端口,关闭高危端口方法[转载]
  18. gif图片解析与生成(GIF+文字动效)
  19. 0基础python笔记str/list/tuple/dict
  20. 基础工具类Joiner的使用

热门文章

  1. XDOC支持Markdown格式了
  2. Android DeviceOwner
  3. Android 应用程序签名、发布
  4. matlab 里if语句,matlabif或语句
  5. 微信公众号文章阅读量分钟级监控_一键搞定
  6. PHP+fiddler抓包采集微信文章阅读数点赞数
  7. 进出口(海关)新系统的操作流程--20040923
  8. 电脑桌面便签备忘录、笔记记事本软件哪个好
  9. 加密狗型号区分的几种方法
  10. BRDF·基于物理的着色技术学习总结