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

在这里插入图片描述

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

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,这种类名看不出用途,完全不利于代码阅读。

猜你喜欢

转载自blog.csdn.net/qq_41008818/article/details/129463693