`
朱秋旭
  • 浏览: 228501 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

重构代码之1-命名

阅读更多

对于一个像我这样严肃的程序员来讲酷,个人觉得起变量名就想给自己的孩子起名一样重要,如果你有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  如果你开发的是专业细分领域的东西,那就用这个领域的专业词汇去命名,这样命名才更有意思,更规范,在该领域中也更容易被理解。

 

如果我提到的问题在你的程序中出现,那么就请修改一下吧,让你的代码变得干净简洁。

以上问题属于个人感受的一个表达,如果有一些不妥的地方欢迎大家留言,共同探讨,共同学习。

  • 大小: 16.6 KB
  • 大小: 7 KB
  • 大小: 9.2 KB
  • 大小: 5.2 KB
  • 大小: 14.6 KB
1
0
分享到:
评论

相关推荐

    重构-改善既有代码的设计 中文版.pdf

    第1章 重构,第一个案例 1.1 起点 1.2 重构的第一步 1.3 分解并重组Statemen 1.4 运用多态取代与价格相关的条件逻辑 1.5 结语 第2章 重构原则 2.1 何谓重构 2.2 为何重构 2.3 何时重构 2.4 怎么对经理说 2.5 重构的...

    如何对代码进行重构:重构代码的7个阶段

    下面是重构代码的几个阶段,文章来自:The7stagesofrefactoring,下面的翻译只是意译。  第一阶段-绝望  在你开始去查看你想要重构的模块的,你会觉得好像很简单,这里需要改一个类,那里需要改两到三个函数,重写...

    一本代码重构的书让代码更简洁

    重构让你的java代码更有层次感,扩展性和耦合性,写出优美的代码,传授一种思想,让代码的抒写及命名更规范

    重构代码笔记1

    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#代码重构31法

    C#重构汇总 1.封装集合2.移动方法3.提升方法4.降低方法5.提升字段6.降低字段7.重命名(方法,类,参数)8.使用委派代替继承9.提取接口10.提取方法11.使用策略类12.分解依赖13.提取方法对象14.分离职责15.移除重复...

    重构-改善既有代码质量

    我们遵循这样一条原则:每当感觉需要以注释来说明点什么的时候,我们就把需要说明的东西写进一个独立函数中,并以其用途(而非实现手法)命名。---P77

    重构.改善既有代码的设计[高清版].pdf

    《改善既有代码的设计》清晰地揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了70多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机...

    book-refactoring2-code:《重构 改善既有代码的设计第二版》中示例代码

    存储 《重构: 改善既有代码的设计第二版》的一些示例代码 单元测试 使用 作为我们单元测试套件 运行所有单元测试: npm run test 运行某个单元测试: npx mocha ./src/chapter1/*.test.js 变化 提炼函数 amountFor ...

    代码重构_改善既有代码的设计

    Martin Flower在《重构》中有一句经典的话:..."对此,笔者感触很深,有些程序员总是能够快速编写出可运行的代码,但代码中晦涩的命名使人晕眩得需要紧握坐椅扶手,试想一个新兵到来接手这样的代码他会不会想当逃兵呢

    logtxt-命名行记录日志

    logtxt.exe 为命令行记录日志软件. 双击运行会记录空消息. 日志消息作为参数传递进来.可以有多个参数. 正常记录方法: ...项目代码地址: https://github.com/NianJiTao/nianjitao/tree/master/NJT/LogTxt

    HP-Socket 3.0.1

    1、规范所有接口、类以及代码文件的命名 2、重构和优化了大量组件代码 3、服务端组件加入读写锁机制,有效平衡处理性能与安全性 4、服务端组件的 Socket 对象缓存列表设置了锁定时间,提高访问的安全性 &gt; 升级说明...

    35丨 实战一(下):手把手带你将ID生成器代码从“能用”重构为“好用”1

    第一轮重构:提高代码的可读性 第一种命名方式,将接口命名为 IdGenerator,实现类命名为 LogTraceIdGenerator,这 第一轮重构:提高代

    代码整洁之道读书笔记.zip

    1.只做一件事 2.不重复 3.有表达力 * 整洁代码的态度要求,要遵守的军规? 专业 和责任。让营地比你来时更干净,拒绝破窗效应。 * 写出整洁代码的具体做法? 有意义的命名(表达力,可读性) 函数只做一件事...

    编写高质量代码-Web前端开发修炼之道.azw3

    第1章 从网站重构说起 1.1 糟糕的页面实现,头疼的维护工作 1.2 Web标准——结构、样式和行为的分离 1.3 前端的现状 1.4 打造高品质的前端代码,提高代码的可维护性——精简、重用、有序 第2章 团队合作 2.1 ...

    Android代码-Android上简洁轻量级的饼图控件

    1.2.0重构版正式发布,建议升级到该版本,1.2.0将整个项目由头到尾重构了一遍,更完善的注释和文档,以及针对一些命名和旧版本的bug统一修复,同时更加抽象,方便以后的功能添加。欢迎提交相关Bug~我会第一时间去...

    Credo:Elixir语言的一个静态代码分析工具-python

    它可以向您展示代码中的重构机会、复杂的代码片段、警告您常见错误、显示命名方案中的不一致,并且如果需要的话,可以帮助您实施所需的编码风格。 安装和使用 将 Credo 添加到项目的最简单方法是使用 Mix。 将 :...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -重构了示例网站的架构,目前只有一层IFrame结构。 -为TabStrip增加EnableTabCloseMenu属性,是否启用右键菜单,可用来关闭当前Tab和所有其他Tab。 -为NumberBox增加DecimalPrecision属性,用来控制小数点后的...

    《代码大全2》Code Complete

    经典~ 从编程方法到变量命名,从代码调试到代码重构,教你如何写出高质量、美丽漂亮的代码,同时也教你如何管理代码,真正了解代码的艺术!

    怎样写出漂亮整洁的代码?聊聊CleanCode的编码、重构技巧

    这个原则适用于大部分的工程。...通过仔细斟酌的方法命名、清晰的流程控制,代码本身就可以拿出来当作文档使用,而且它永远不会过期。相反,注释不能让写的烂的代码变的更好。如果别人只能依靠注释读懂

Global site tag (gtag.js) - Google Analytics