如何正确理解软件开发中的”见名知意“

在这里插入图片描述

如何正确理解软件开发中的”见名知意“? 通常的理解是,定义名称时使用英文翻译,以达到见名知意的效果,但是我们发现有一些情况,并不好翻译,例如:

1.结果命名
public void method(){
    
    boolean cat=true;
    boolean pig=false;
    boolean dog=false;
    boolean duck=true;
   
    boolean=cat & pig; //发现对象是多种因素的组合结果,不好翻译
    boolean 某某=dog & pig;//发现对象是多种因素的组合结果,不好翻译
    boolean 某某某=(duck & cat) || pig;//发现对象是多种因素的组合结果,不好翻译
    
    if (& 某某 & 某某某){
        // TODO: 2023/3/11 满足三个条件,就执行某个事情
    }
    
}

此时,我们发现对象是多种因素的组合结果,不好翻译,所以简单的理解为见名知意=翻译是不行。这种情况,我们应该这样定义:

2.用途命名
public void method(){
        
        boolean cat=true;
        boolean pig=false;
        boolean dog=false;
        boolean duck=true;
        
        boolean condition1=cat & pig; //条件1
        boolean condition2=dog || pig;//条件2
        boolean condition3=(duck & cat) || pig;//条件3
        
        //这里可能还有几百行代码......
        
        if (condition1 & condition2 & condition3){
            // TODO: 2023/3/11 满足三个条件,就执行某个事情
        }
        
    }

这样的定义方法,可以避开结果翻译的窘境,也可以很好的看出这三个变量的用途,更重要的是可以很清楚的看出condition1、condition2、condition3属于同一用途,与其他变量有鲜明的差别。

3.表达式命名

当我们的代码中出现计算时,可以用小写字母把计算结果整理成公式,再给每个字母赋值,这种方式既不是结果翻译,也不是用途翻译,却能清晰看出其中的逻辑。例如:

 public int getData(){
 
        int cat=12;
        int pig=23;
        int dog=67;
        int duck=34;
        
        int a=cat+dog;
        int b=pig+45-duck;
        int c=dog-pig;
        
        return a+b-(c/4);
    }
4.应该避免笼统命名

在开发中,我们经常看见有些类名字很笼统,比如有些类叫:MyLog、MyData、MyView等等,代码越来越多之后,我们发现My不知道是谁,你可以是My,我可以是My,他也可以是My,甚至你调用一个类,发现该类有好几个同名类。
导致容易出现导报错误问题。

5.应该避免命名太宽泛

在开发中,我们经常看见有些类名字过于宽泛,比如SystemInfo、AliBaBaInfo、TennerInfo,这种类名看不出用途,完全不利于代码阅读。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绝命三郎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值