代码重构:神秘命名

举报
孙小北 发表于 2022/04/15 22:55:55 2022/04/15
【摘要】 别人看不懂的代码,写再多又有啥用

神秘命名

  • 《重构,改善既有代码的设计》

什么是神秘命名(Mysterious Name)

  • 定义:在阅读代码时,一些会影响我们的阅读体验的神秘文字(不知其意的命名)
  • 影响:猜谜(可读性)、潜在的设计问题
    • 未来在“猜谜”上可能浪费大把时间,影响可读性
    • 如果代码难以命名,其背后可能潜藏更深的设计问题
  • 目标:
    • 代码直观明了
    • 函数、模块、变量和类命名能清晰地表名自己的功能和用法
  • 方法:改变函数声明(用于给函数改名)、变量改名、字段改名等
  • 表现:单词拼写错误、命名不规则、命名含义不清

代码案例


public class MysteriousExample {
    public int amont(Perf perf, Type type) {
        switch (type) {
            case TYPE1:
                return resfortype1(perf);
            case TYPE2:
                return resfortype2(perf);
            default:
                throw new IllegalArgumentException("Illegal type : " + type);
        }
    }

    private int resfortype1(Perf perf) {
        int s = 40000;
        if (perf.getAud() > 30) {
            s += 1000 * (perf.getAud() - 30);
        }
        return s;
    }

    private int resfortype2(Perf perf) {
        int s = 30000;
        if (perf.getAud() > 20) {
            s += 1000 + 500 * (perf.getAud() - 20);
        }
        return s;
    }
}

剧院包场总金额结算系统,有悲剧、喜剧两种类型:
1)悲剧场——不大于30人算40000,超过30人,超出部分每人加1000
2)喜剧场——不大于20人算30000,超过20人总价加1000,且超出部分每人加500
image-20220415224508590.png

修改建议:
1.方法名使用动词或动词+名词
2.变量名使用名词
3.避免拼写错误
4.方法、变量、枚举等等,都使用有具体含义的命名方式,不要使用含义模糊的词
5.避免随意的缩写

建议命名规则:

image-20220415222625963.png

工具:

  • IDEA-Analyze(扫描项目拼写错误、缩写不当等问题)
    image-20220415222641571.png

总结:

  • 命名要规范、代码勿重复
    image-20220415222743321.png
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。