美文网首页
2018-09-12 - Lisa's Code Rev

2018-09-12 - Lisa's Code Rev

作者: 耑意儿 | 来源:发表于2018-09-12 15:19 被阅读11次

一、Ali-Check:阿里代码检查

  • 所有的抽象方法都必须添加文档注释
  • 不允许使用任何魔法值
  • Objectequals() 方法容易抛出空指针异常,所用要用常量或确定有值的对象调用
  • 不能使用过时的类或方法
  • 创建线程池或线程时要指定有意义的线程名称,方便出错时回溯
  • 常量命名应该全部大写,单词间用下划线隔开,力求语义表达完整,不必嫌太长
  • 抽象类命名尽量用Abstract或Base开头
  • 方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase这种格式
  • 类、类属性、类方法的注释都要用javadoc文档注释

二、Android Lint 检查

2.1、Accessibility 可选择

  • ImageView 缺少内容描述:contentDescription
  • EditText 缺少属性labelFor

2.2、Correctness 正确性

  • 继承自Activity的类未进行注册
  • 存储目录直接写“/sdcard/”
  • textSize值用dp

2.3、Internationalization 国际化

  • 硬编码:用到的字符串未放到strings.xml里,直接引用
  • 控件用start/end代替left/right比较符合国际化要求,有些国家习惯内容从右到左
    • layout_alignParentRightlayout_alignParentEnd
    • layout_marginLeftlayout_marginStart

2.4、Performance

  • 非静态Handler容易导致内存泄漏
  • 布局优化意见
  • 无效的布局参数,比如在ImageView里面加centerHorizontal
  • 静态作用域泄露
    • 不要将Context类对象设置为静态
    • Provider\Helper等类如果为单例且需要Context,务必使用ApplicationContext ,如果一定要引用,用弱引用实现

2.5、Security

  • 广播接收器或者内容提供者没有添加权限

2.6、Usability

  • 字体小于12sp
  • EditText缺少hint或者inputType

三、其他

3.1、Class Structure 类结构

  • 全局变量可换成局部变量

3.2、Code maturity issues

  • 类过时

3.3、Compiler Issues 编译问题

  • 未经检查的类转换

3.4、Control flow issues 控制流问题

  • if语句可以简化
  • switch语句最后的default,不用加return,除非有特定返回值啦

3.5、Data flow issues

3.6、Declaration redundancy 定义冗余,可以做缩小范围等操作

  • 能定义为private的就不要用public

这个部分的检查放最后,有些可能只是暂时没有被外部调用到

3.7、Imports 导包

  • 快速定位到有废弃包的类,删除没有用到的包

3.8、Java language level migration aids 迁移助手

  • 有些if语句可以替换成switch语句

3.9、拼写错误,想忽略

3.10、Probable bugs 可能是bug,要好好看哦

那么这里我准备把Probable bugs这一项检查结果标识为Error,提高异常等级。如何操作?

  • 打开Preferences
  • 展开Editor
  • 点击Inspections
  • 展开Java
  • 找到Probable bugs并点击
  • 在右侧Severity,就可以选择等级了,我选择Error
  • 到这里配置就结束了!!!

相关文章

网友评论

      本文标题:2018-09-12 - Lisa's Code Rev

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