对Android程序代码规范的一些思考

  • 深切体会到,一段可读性代码对于团队的重要性
  • 糟糕的代码会增加设备的资源开销
  • 不规范的代码会增加团队间的沟通成本

故在此文章中进行思考与总结



Java

1、尽量少使用状态标志位,对使用到的标志位,一定要说明在各种场景下的作用

在这里插入图片描述

  • Android应用层,Java主要负责控制程序的逻辑
  • 常见的就是定义一个int、boolean标志位,配合if、switch控制流程
  • 在程序中总是会看到有些复杂的模块,各种标志位,有些标志位的作用页甚至重合了
  • 在情况复杂的时候,标志位之间也可能会冲突,需要组合考虑置位问题
  • 多线程也会有影响
  • 在理解、设计程序的时候,总是惦记着这些状态位,怪烦的

在这里插入图片描述

  • 在记录程序状态时,尽量复用已有的标志位
  • 对影响程序逻辑走向的标志位进行整理,汇总
  • 可以抽象一个Status状态类去管理
  • 对于每种状态位都要说清楚各种情况下的作用
  • 遇见的坑也要写出来

2、方法参数尽量简洁、准确

我就是想启动一个Activity而已…

  • 传递参数的目的在于传递信息,方法内部如果拿到的是一个复杂数据类型,需要转换
  • 例如上图的List<Good> goodList,其实方法内部只需要集合元素数量
  • actionmode作用重合

  • 参数列表尽量简短
  • 参数设计尽量准确

3、尽量使用 if-return 代替 if-else 结构

在这里插入图片描述

  • 使用if-else控制逻辑分支时,经常会导致代码不断缩进
  • 不写注释,就更难于理解逻辑

在这里插入图片描述

  • 对程序的理解,就是“至顶向下,逐步细化”的过程
  • 对于分支情况的拆分、汇总、处理,有助于理解程序,加强程序健壮性

4、不要对方法进行多次调用,尽量使用变量保存方法返回值

在这里插入图片描述

  • 方法的执行对应于虚拟机Java栈中栈帧的出栈、入栈等指令
  • 多次调用相同方法,多次执行出栈、入栈指令,会造成多余的开销
  • 依赖于方法的返回结果,容易造成NullPointer问题

在这里插入图片描述

  • 使用变量保存方法执行结果
  • 对变量执行判空,避免NullPointer问题
5、不要链式调用方法来实现逻辑

在这里插入图片描述

  • 项目中总是见到这样的链式调用,甚至更长
  • 其稳定性是建立在每一个方法的执行结果不为空的情况下
  • 其中某一个环节没有做判空处理,就会crash

  • 对方法的执行结果,使用包装器类Boolean、Integer来保存,这样可以兼容方法返回为空的情况
  • 对方法调用的结果进行判空

6、switch分支需要使用注释

在这里插入图片描述

  • switch每一条分支都要用注释标明作用
  • 包括default分支



XML

1、每个节点都需要使用注释

在这里插入图片描述

  • 项目中UI复杂的页面XML结构,也许比这还要复杂
  • 接手此界面,只有通过配合控件id来理解结构

在这里插入图片描述

  • 实现、优化UI也要建立在理解透彻当前UI的前提下
  • 配合注释,对于控件的分层结构、任务职责就可以快速地梳理、归纳
2、节点Id中可以加入当前文件名的一部分
  • 经常有不同组件使用同一id的情况,例如支付页、购物车页面的提交按钮
  • 虽然不会有编译问题,但是能规范去写,为什么要偷这么几秒钟的懒呢?

在这里插入图片描述

  • 控件id中前部分,使用当前文件名的一部分
  • 这种方式不适合公共组件
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值