美文网首页
Ali-Check使用记录

Ali-Check使用记录

作者: 积木Blocks | 来源:发表于2018-11-07 14:20 被阅读77次

记录Alibaba Java Coding Guidelines插件的使用
大体分为三大类

  • Blocker(阻挡者)
    危险程度最高,对于代码规范性,可读性,执行效率的建议
  • Critical(批评的)
    危险等级比较高,可能会导致程序的异常
  • Major(专业的)
    危险程度较低,主要是提高代码可读性

Blocker


在if/else/for/while/do语句中必须使用大括号,即使只有一行代码,避免使用下面的形式:if (condition) statements;

  • 反例
    很多时候为了看起来很高端或者减少行数,而省略括号。这样会大大降低可读性,一个if可能都还好,要是多个if/else,看起来就很头疼。
if(list == null) return;
  • 正例
if(list == null) {
  return;
} 

所有的覆写方法,必须加@Override注解。

  • 反例:getObject()与get0bject()的问题。一个是字母的O,一个是数字的0,加@Override可以准确判断是否覆盖成功。另外,如果在抽象类中对方法签名进行修改,其实现类会马上编译报错。

Critical


Object的equals方法容易抛空指针异常,应使用常量或确定有值的对象来调用equals

  • 反例
 if (str.equals("0.0")) {
     ...
 } 
  • 正例
    因为str值不确定,可能为null。这时候使用"0.0"这样确定有值的对象来调用equals会安全很多。
 if ("0.0".equals(str)) {
     ...
 } 

在一个switch块内,每个case要么通过break/return等来终止,要么注释说明程序将继续执行到哪一个case为止;在一个switch块内,都必须包含一个default语句并且放在最后,即使它什么代码也没有。


Major


不允许任何魔法值(即未经定义的常量)直接出现在代码中。

  • 反例
 if ("0.0".equals(str)) {
     ...
 } 
  • 正例
    魔法值很影响代码可读性,过段时间,编写者本人可能都会忘记这个魔法值的含义。所以需要将魔法值转换成常量,并且加上注释。
 /**
  * double的值为0.0,保留一位小数
  */
 private static final String DOUBLE_VALUE_ZERO_WITH_ONE_DECIMAL = "0.0";

 if (DOUBLE_VALUE_ZERO_WITH_ONE_DECIMAL.equals(str)) {
     ...
 } 

及时清理不再使用的代码段或配置信息。
说明:对于垃圾代码或过时配置,坚决清理干净,避免程序过度臃肿,代码冗余。

  • 虽然在代码混淆的时候,这些不会占用apk的体积。但是注释或者冗余的代码还是会辣眼睛,并且可能误导读者。如果非要加,需要写这段代码的说明注释

方法内部单行注释,在被注释语句上方另起一行,使用//注释。
方法内部多行注释使用/* */注释。注意与代码对齐。

  • 反例
    在方法外部的常量用单行注释
 //double的值为0.0,保留一位小数
 private static final String DOUBLE_VALUE_ZERO_WITH_ONE_DECIMAL = "0.0";
  • 正例
 /**
  * double的值为0.0,保留一位小数
  */
 private static final String DOUBLE_VALUE_ZERO_WITH_ONE_DECIMAL = "0.0";

相关文章

  • Ali-Check使用记录

    记录Alibaba Java Coding Guidelines插件的使用大体分为三大类 Blocker(阻挡者)...

  • 2018-09-12 - Lisa's Code Rev

    一、Ali-Check:阿里代码检查 所有的抽象方法都必须添加文档注释 不允许使用任何魔法值 Object 的 e...

  • mtrace-内存使用追踪(内存)

    1. 函数格式: mtrace 用于开启内存使用记录,muntrace用于取消内存使用记录。内存使用情况记录到一个...

  • 学习MySQL---ing

    @[toc] Mac MySQL使用教程 本文记录在我的GitHub 记录使用Homebrew安装Mysql全过...

  • 转场动画

    presentation使用记录

  • [tf]tensorboard的使用

    使用tf.summary.scalar记录标量数据,使用tf.summary.histogram直接记录变量var...

  • iOS下FMDB的多线程操作(二)

    上一篇记录不使用FMDatabaseQueue来使用多线程,这一篇记录一下使用FMDatabaseQueue的方式...

  • 后端ing

    spring-cache使用记录 spring-cache的使用记录,坑点记录以及采用的解决方案深入分析 java...

  • vim 插件使用记录

    vim 插件使用 @(linux 编程)[开发技能, 工具使用] 前面记录过一篇vim操作记录此处记录一些vim的...

  • 美柚产品体验报告

    1、你平时有使用软件记录或者管理经期吗? 平时会使用薄荷健康记录经期,因为有段时间使用薄荷健康记录每餐的热量,发现...

网友评论

      本文标题:Ali-Check使用记录

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