对于一个像我这样严肃的程序员来讲,个人觉得起变量名就想给自己的孩子起名一样重要,如果你有N胞胎长得都像String一样,你如何区分他们,显然用1,2,3,4...或者a,b,c,d的方式是根本无法做到好的区分的,那我们应该怎么做? 这就是我想说的为程序变量起有意义的名字很重要。
1. 使用可以见名知意的名称作为变量名称:
举个例子:
如果你的变量名还需要注释,何不把变量名起的见名知其意呢?
试想下面的两段代码你更喜欢阅读哪一个呢?
是不是第二段代码看过之后很清晰啊,其实很明显第二段代码只是仅仅是改变了变量名,让每个变量名都变得有意义,所以想一个有意义的变量名,方法名,在未来会节省我们很多的维护成本。但是请大家不要轻易的使用一些只有自己能理解的简称来命名,鼓励变量名可读,使用完整单词,这样可以降低沟通成本。
提到有意义的变量名必须多啰嗦一句就是不要用accoountList这种变量名,除非返回值真的是List类型,也不用使用o,l 这样的变量,因为他们真的很像0,1数字。
2 对于函数的参数我们一样要进行有意义的区分:
现在思考一下你是否曾写过这样的代码
public static void copyChars(char[] c1, char[] c2){
for(int i = 0; i < a1.length; i++){
a2[i] = a1[i];
}
}
如果source, destination有没有清晰很多,
让我们来参观一下JDK是如何为参数命名的:
3 使用常量,变量代替一些标志量,计算变量:
比如这样的命名
会不会比你写flag,写一些数字去控制删除次数,睡眠时间更加友好,也更加容易维护呢?如果下次老大说修改一下睡眠时间和修改次数,直接改常量就好了不用满屏幕的ctrl+f了。
4 如果你不能发明出更好的就使用匈牙利命名法(驼峰命名法)吧。对于单变量,作用范围小,简单的循环计数器这样的变量就是用i,j,k吧,不要发明出什么a,b,c,x,y,z之类的东西,因为i,j,k使用程序员都懂得的语言啊。
5 类名用名词,方法名用动词。千万不要同一个概念中出现不同的词汇,比如说大家都是controller,那就都是XXXController就好了,干嘛突然搞出个什么XXXManager呢? 再比如,连接字符串就用append呗,插入就用insert呗,干嘛要搞得满屏幕都是叫add的方法呢?相同的概念确不同的命名会很容易让人产生疑问。
6 如果你开发的是专业细分领域的东西,那就用这个领域的专业词汇去命名,这样命名才更有意思,更规范,在该领域中也更容易被理解。
如果我提到的问题在你的程序中出现,那么就请修改一下吧,让你的代码变得干净简洁。
以上问题属于个人感受的一个表达,如果有一些不妥的地方欢迎大家留言,共同探讨,共同学习。
相关推荐
第1章 重构,第一个案例 1.1 起点 1.2 重构的第一步 1.3 分解并重组Statemen 1.4 运用多态取代与价格相关的条件逻辑 1.5 结语 第2章 重构原则 2.1 何谓重构 2.2 为何重构 2.3 何时重构 2.4 怎么对经理说 2.5 重构的...
下面是重构代码的几个阶段,文章来自:The7stagesofrefactoring,下面的翻译只是意译。 第一阶段-绝望 在你开始去查看你想要重构的模块的,你会觉得好像很简单,这里需要改一个类,那里需要改两到三个函数,重写...
重构让你的java代码更有层次感,扩展性和耦合性,写出优美的代码,传授一种思想,让代码的抒写及命名更规范
1. 神秘命名(Mysterious Name) 2. 重复代码(Duplicated Code) 3. 过长函数(Long Function)关键在于“做什么
第1章 重构,第一个案例 1.1 起点 1.2 重构的第一步 1.3 分解并重组Statemen 1.4 运用多态取代与价格相关的条件逻辑 1.5 结语 第2章 重构原则 2.1 何谓重构 2.2 为何重构 2.3 何时重构 2.4 怎么对经理说 2.5 重构的...
C#重构汇总 1.封装集合2.移动方法3.提升方法4.降低方法5.提升字段6.降低字段7.重命名(方法,类,参数)8.使用委派代替继承9.提取接口10.提取方法11.使用策略类12.分解依赖13.提取方法对象14.分离职责15.移除重复...
我们遵循这样一条原则:每当感觉需要以注释来说明点什么的时候,我们就把需要说明的东西写进一个独立函数中,并以其用途(而非实现手法)命名。---P77
《改善既有代码的设计》清晰地揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了70多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机...
存储 《重构: 改善既有代码的设计第二版》的一些示例代码 单元测试 使用 作为我们单元测试套件 运行所有单元测试: npm run test 运行某个单元测试: npx mocha ./src/chapter1/*.test.js 变化 提炼函数 amountFor ...
Martin Flower在《重构》中有一句经典的话:..."对此,笔者感触很深,有些程序员总是能够快速编写出可运行的代码,但代码中晦涩的命名使人晕眩得需要紧握坐椅扶手,试想一个新兵到来接手这样的代码他会不会想当逃兵呢
logtxt.exe 为命令行记录日志软件. 双击运行会记录空消息. 日志消息作为参数传递进来.可以有多个参数. 正常记录方法: ...项目代码地址: https://github.com/NianJiTao/nianjitao/tree/master/NJT/LogTxt
1、规范所有接口、类以及代码文件的命名 2、重构和优化了大量组件代码 3、服务端组件加入读写锁机制,有效平衡处理性能与安全性 4、服务端组件的 Socket 对象缓存列表设置了锁定时间,提高访问的安全性 > 升级说明...
第一轮重构:提高代码的可读性 第一种命名方式,将接口命名为 IdGenerator,实现类命名为 LogTraceIdGenerator,这 第一轮重构:提高代
1.只做一件事 2.不重复 3.有表达力 * 整洁代码的态度要求,要遵守的军规? 专业 和责任。让营地比你来时更干净,拒绝破窗效应。 * 写出整洁代码的具体做法? 有意义的命名(表达力,可读性) 函数只做一件事...
第1章 从网站重构说起 1.1 糟糕的页面实现,头疼的维护工作 1.2 Web标准——结构、样式和行为的分离 1.3 前端的现状 1.4 打造高品质的前端代码,提高代码的可维护性——精简、重用、有序 第2章 团队合作 2.1 ...
1.2.0重构版正式发布,建议升级到该版本,1.2.0将整个项目由头到尾重构了一遍,更完善的注释和文档,以及针对一些命名和旧版本的bug统一修复,同时更加抽象,方便以后的功能添加。欢迎提交相关Bug~我会第一时间去...
它可以向您展示代码中的重构机会、复杂的代码片段、警告您常见错误、显示命名方案中的不一致,并且如果需要的话,可以帮助您实施所需的编码风格。 安装和使用 将 Credo 添加到项目的最简单方法是使用 Mix。 将 :...
-重构了示例网站的架构,目前只有一层IFrame结构。 -为TabStrip增加EnableTabCloseMenu属性,是否启用右键菜单,可用来关闭当前Tab和所有其他Tab。 -为NumberBox增加DecimalPrecision属性,用来控制小数点后的...
经典~ 从编程方法到变量命名,从代码调试到代码重构,教你如何写出高质量、美丽漂亮的代码,同时也教你如何管理代码,真正了解代码的艺术!
这个原则适用于大部分的工程。...通过仔细斟酌的方法命名、清晰的流程控制,代码本身就可以拿出来当作文档使用,而且它永远不会过期。相反,注释不能让写的烂的代码变的更好。如果别人只能依靠注释读懂