代码坏味道与重构之神秘命名

1. 前言

作为非科班自学 Python,毕业转 Java 的程序员,工作至今两年有余。本持着对技术的追求,对代码的精益求精,通过不断学习,总结了一些代码的坏味道和重构的技巧,因此将其作为系列文章分享出来,供大家交流讨论,共同成长进步。

本系列文章定位:

  • 普及常见的代码坏味道
  • 普及微重构的技巧,聚焦在代码层面的重构,不涉及架构层面的重构调整
  • 以 Java 语言为例,利用 IDEA 进行重构

2. 坏味道之神秘命名

命名是让每一位程序员命名头疼的事情。

命名不好有两种情况:

  1. 开发随意命名,不遵循团队规范,比如用 ada1232 等命名。
  2. 开发受限于能力,暂时没有想到好的命名。

对于情况1,作为有追求的程序员,一定要杜绝。

对于情况2,一方面我们可以通过阅读大量的代码,通过 GitHub等借鉴别人的命名;另一方面,《程序员底层思维》一书中提到,命名不好,说明你对某个概念理解的不够,无法做到合理的抽象,需要我们区更加深入思考概念,培养自己的抽象思维,将抽象出一个好理解的词汇。

神秘命名:不知道含义的命名。比如:gg等。这在一些项目中非常常见。

3. 神秘命名的影响

神秘命名,影响代码的可读性和可维护性,极大增加了项目的学习维护成本。

4. 重构神秘命名目标

代码直观明了,一眼知道它在做什么,最高境界是代码自注释

5. 重构神秘命名技巧

  • 构筑单元测试,保证功能,用例全部通过

  • 通过 IDEA 的快捷键 Shift + F6批量快速重命名

  • 重跑单元测试,用例依旧全部通过,说明重构没问题

技巧:重构是一个危险的活,重构的第一步就是构筑防护网,保证原有的功能,之后,逐步的小重构,每修改一次,重新跑一次单元测试,保证每次重构修改都不会影响原有功能,不断迭代,达到重构完成。

6. 建议的命名

  1. 类(含枚举类)和接口:采用大驼峰命名。
    • 类和枚举:名词或名词短语,不应该用动词
    • 接口:名词或名词短语,形容词或形容词短语
    • 测试类:建议以 测试类 + Test 结尾命名,可以通过 Ctrl +Shift + T 创建测试类
    • 抽象类:推荐以 AbstractBase 开头
  2. 方法:
    • 方法名:小驼峰命名,采用动词或动词短语,如:get + 非布尔属性is/has/can/should... + 布尔属性名set + 属性名has + 名词/形容词动词动词 + 宾语回调方法(callback) 允许介词 + 动词形式,如 onCreate
    • 测试方法:可以使用 _,建议 BDD,也可以小驼峰命名,以 test开头
  3. 常量:全大写单词组成,_ 分隔单词,不要使用魔鬼数字
  4. 非常量字段:小驼峰,名词或名词短语,集合用复数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值