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


    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. 非常量字段:小驼峰,名词或名词短语,集合用复数
  • 相关阅读:
    软件的界面测试是什么?怎么设计的?
    KT148A语音芯片使用串口uart本控制的完整说明_包含硬件和指令举例
    认识微服务
    栈和队列java实现
    vue二次封装-echarts
    文件上传 [GXYCTF2019]BabyUpload1
    BM1684实战记录
    Nginx之正则表达式、location匹配简介以及rewrite重写
    NPDP认证|传统行业产品经理如何把控产品方向?
    ELK极简上手
  • 原文地址:https://blog.csdn.net/qq_27283619/article/details/126550698