Android Code Review 注意点记录(不断更新~)

一 Review的关键节点指导

  • 架构是否合理:虽然是在Review代码,其实很多时候我们都是在评判架构是否合理。 比如数据的同步机制是否合理等等;
  • 跨网络请求:跨网络请求一般是性能占比最高的地方,是否在循环中调用,是否在子线程、是否反注册;
  • 异常处理:结合业务查看异常处理流程是否正确合理,异常是否需要精细化,是否在catch中捕获了全部异常;
  • 算法效率:算法是否过于复杂;
  • 内存泄漏、OOM;

二 工作中常见的代码Review点实操

1、for循环中的remove操作(return、break除外);

2、super非阻断性的放最前;

3、自己的代码注释修改;

4、try catch 注意需不需要Exception 包囊全部;

5、横竖屏在8.0上的问题;

if (Build.VERSION.SDK_INT != Build.VERSION_CODES.O && Build.VERSION.SDK_INT != Build.VERSION_CODES.O_MR1) {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        }

6、注册反注册、网络请求unsubscribe

7、注意循环内try,不影响下一个item的处理;如果循环外try,一旦报错整个循环就结束了;看场景确定内try还是外try;

8、合理使用成卫语句,也不要硬写成卫语句,如下为硬写:

if(){
		...
		return 结果;
}
return 结果;

9、map和循环:Map比for遍历效率更高。

10、数据结构和程序有时候是可以互相转换的,比如如下程序

        if (str.equals("a")) {
            return "1";
        } else if (str.equals("b")) {
            return "2";
        } else if (str.equals("c")) {
            return "3";
        } else {
            throw new UnsupportedOperationException();
        }

可以用数据结构表示:

        Map<String, String> map = new HashMap<>();
        map.put("a", "1");
        map.put("b", "2");
        map.put("c", "3");

使用的时候:

        if (map.containsKey(str)) {
            return map.get(str);
        } else {
            throw new UnsupportedOperationException();
        }

11、未使用的 import

12、未使用的资源,例如 drawables, strings, colors……

13、未格式化的代码;

14、注意修饰符:自己写的类中中的一些方法或方法,如果确认仅仅为自己使用,请用private,请不要暴露了,这样有利于降低整个项目的复杂度;

15、静态分析工具在代码审查过程中很有帮助:

16、代码不遵循样式指南。 例如,Kotlin 定义了一个定义明确的样式指南。 它对任何开发人员在现有代码库中快速找到任何软件组件都有很大帮助。

最后一点:保持积极和虚心。

也有也有很多review的评论是愚蠢的,或是可以没有。但自我确实会写一些“烂代码”自我不能及时发现。若果与我具备差不多水平的人提出疑问,那么他肯定有一些我没有理解到的想法在里面;在评论中表现得友善,尊重他人的时间和工作,在代码review中吹牛、羞辱或生气没有任何好处。

参考

1、https://juejin.cn/post/7119475006408491022

2、https://juejin.cn/post/7119475006408491022

3、https://juejin.cn/post/7119414483566460935

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

许进进

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

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

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

打赏作者

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

抵扣说明:

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

余额充值