思考
Kotlin的空安全好处还是比较明显的,降低bug率。但可能会出现另外一种情况:确实因为空导致业务流程缺失,用户无法正常使用,那样真的好吗?
利弊对比
- 利:
- 提高可靠性,减少空指针,降低bug率,这对应用户来说是很重要的,如果App动不动就crash,谁还会用?换成我,立马卸载转头其他App阵营;
- 提供警觉性,它会带给开发者更多的思考。当使用?进行访问是,是否考虑过,如果为空怎么办?这个节点是否很重要?如果缺失了怎么办?为什么会出现空?是否要review下整个流程?如果还是停留在直接?号访问,那会出现滥用的情况;
- 弊: 导致业务流程缺失;
弊的补救
- 关键节点增加空考虑,就是else的情况;
- 增加测试case;
- 关键节点增加埋点处理,上报关键数据;
- 总结 任何一个东西都是有好有坏,在我看来,Kotlin的空安全明显是利大于弊的,如果只是一脑子的?访问,那真的是芭比Q了。