美文网首页
控制语句规范(java开发规范 阿里巴巴)

控制语句规范(java开发规范 阿里巴巴)

作者: 黄靠谱 | 来源:发表于2019-06-10 17:47 被阅读0次

    控制语句规范

    1. 【强制】在一个 switch 块内,每个 case 要么通过 break/return 等来终止,要么注释说明程序将继续执行到哪一个 case 为止;在一个 switch 块内,都必须包含一个 default 语句并且放在最后,即使它什么代码也没有。
    1. 【强制】在 if/else/for/while/do 语句中必须使用大括号,即使只有一行代码,避免使用下面的形式:if (condition) statements;
      虽然直接结束会很简洁,但是为了让代码看起来看清晰,还是用一个大括号,即使一行代码也没有,也用空的大括号包起来。
      例如
    if(page > 100){}
    
    if(page == 100){
        ...
    } 
    
    1. 【推荐】推荐尽量少用 else, if-else 的方式可以改写成(卫语句):
    if(condition){
     ...
     return obj;
    }
    

    // 接着写 else 的业务逻辑代码;
    说明:如果非得使用 if()...else if()...else...方式表达逻辑,【强制】请勿超过 3 层,超过请使用状态设计模式。

    正例:逻辑上超过 3 层的 if-else 代码可以使用卫语句,或者状态模式来实现。

    ifElse写的时候,也可以考虑抽离方法+卫语句,来提升代码的可读性

    重构以前

    public void add(Object element) {
      if (!readOnly) {
        int newSize = size + 1;
        if (newSize > elements.length) {
          Object[] newElements = new Object[elements.length + 10];
          for (int i = 0; i < size; i++) {
            newElements[i] = elements[i];
          }
          
          elements = newElements
        }
        elements[size++] = element;
      }
    }
    

    重构以后

    public void add(Object element) {
      if (readOnly) {
        return;
      }
      
      if (overCapacity()) {
        grow();
      }
      
      addElement(element);
    }
    

    https://www.jianshu.com/p/1db0bba283f0

    1. 【推荐】除常用方法(如 getXxx/isXxx)等外,不要在条件判断中执行其它复杂的语句,将复杂逻辑判断的结果赋值给一个有意义的布尔变量名,以提高可读性。
      说明:很多 if 语句内的逻辑相当复杂,阅读者需要分析条件表达式的最终结果,才能明确什么样的条件执行什么样的语句,那么,如果阅读者分析逻辑表达式错误呢?
      正例:
    //伪代码如下
    boolean existed = (file.open(fileName, "w") != null) && (...) || (...);
    if (existed) {
     ...
    }
    

    反例:

    if ((file.open(fileName, "w") != null) && (...) || (...)) {
     ...
    }
    

    相关文章

      网友评论

          本文标题:控制语句规范(java开发规范 阿里巴巴)

          本文链接:https://www.haomeiwen.com/subject/zfrtfctx.html