文档章节

Android应用开发中的不良编程习惯

snowdream
 snowdream
发布于 2016/03/01 11:15
字数 1048
阅读 7
收藏 0

同步发布在:http://snowdream.github.io/blog/2016/02/18/android-bad-habit/

下面总结下Android应用开发中的不良编程习惯,欢迎对号入座。

不注意NULL判断

原因: 粗心。 在不确认一个对象是否为Null的前提下,就大胆调用该对象的成员变量或者成员方法。
结果: 空指针异常。
解决方案: 细心。 参考:防止NullPointerException的最佳解决方案

滥用变量

原因: 滥用变量。 定义很多变量,而且变量名字并不能表达变量的意思。
结果: 代码难以理解,维护困难。
解决方案: 规范变量命名,尽量让名字能表达变量的意思。同时,变量应该在于精,而不在于多。

函数的重复调用

原因: 函数功能不清晰,搭车调用其他函数。举个例子,假如:函数A,B,C。 函数B中调用函数C,函数A中调用函数B。最后使用的时候,同时调用函数A,C,造成函数C被调用多次。
结果: 轻者,造成程序性能下降,耗时,耗电。重者,导致程序逻辑混乱,造成各种意想不到的BUG。
解决方案: 函数功能单一,并且稳定。

耗时操作/IO操作放在子线程

原因: 贪图快,把耗时操作/IO操作放在主线程执行。
结果: 轻则造成应用卡顿,重则出现ANR,导致应用崩溃。
解决方案: 将所有耗时操作/IO操作封装到子线程去。

拷贝函数/代码

原因: 有时候因为项目紧,开发任务中。在开发新功能时,经常将已有功能代码,拷贝过来改改,却没注意有部分内容需要修改或者去掉的。
结果: 功能不符合预期,导致BUG。
解决方案: 能重用的代码抽取出来公用。拷贝的时候,一定要过一遍,切记拿过来直接用。

滥用设计模式

原因: 当维护一个项目的人员比较多时,容易发生。你想用MVP,他想用MVC,别人还要用MVVM。
结果: 项目代码出现百家争鸣,百花齐放的现象。难以维护。
解决方案: 统一设计模式,便于开发维护。

保留大量废弃代码/功能

原因: 有可能是产品反复增加/删除某个功能,或者其他原因,导致开发人员不敢删除废弃代码。
结果: 无故增加代码量和方法数,增加阅读和维护成本。
解决方案: 废弃功能/废弃代码统统删掉。自觉抵制产品反复增加/删除同一个功能。

代码风格不统一

原因: 使用不同的代码风格,同时又喜欢整个文件进行格式化。
结果: 版本管理困难。 合并/比较代码时,满屏幕都是不一样代码。
解决方案: 统一代码风格。否则,不要尝试对整个文件进行格式化。

函数臃肿

原因: 函数体代码太长,成百上千行的都有。
结果: 代码阅读困难。
解决方案: 拆分成多个小函数。

函数命名随意,不规范

原因: 函数命名随意,不规范,又没有注释。
结果: 一眼看过去,不知道这个函数干什么的。需要读完整个函数才知道函数的功能。
解决方案: 函数命名尽量能体现函数的作用。如果无法完整体现,加函数注释,说清楚函数的作用,以及参数的含义。

硬编码

原因: 在java代码中直接写字符串,而不定义在string.xml。
结果: 不利于字符串重用和国际化。
解决方案: 将字符串都定义到string.xml。

可见性控制不当

原因: 不注意控制成员变量和成员方法的可见性,都是用public来进行修饰。
结果: 导致可见性失控。
解决方案: 严格控制成员变量和成员方法的可见性,尽量缩小。

其他

想到再来补充。

© 著作权归作者所有

共有 人打赏支持
snowdream

snowdream

粉丝 20
博文 12
码字总数 6591
作品 15
海淀
程序员
开发者必知:提升Android应用开发性能的十大要点

随着任何一个移动平台不断发展、围绕它的应用程序不断改进,要想开发成功,质量变得至关重要。如今,用户们要求他们决定安装到自己设备上的Android应用程序反应迅即、性能合理。如果那些应用...

冯京宝
2012/07/05
0
0
提升Android应用开发性能的十大要点

虽然Android智能手机和平板电脑的速度一天比一天快,但是开发者必须记住一点:他们开发的应用程序仍在一种资源紧张的环境下运行,这种环境主要依赖性能与最新的台式机或笔记本电脑无法比拟的...

带梦想一7飞
2012/08/24
0
0
【社招】招聘高级多媒体工程师-一家拥有15亿用户量的出海互联网企业

感兴趣的小伙伴请加我微信(2200624973) 岗位职责: 1、参与或者独立承担 Android 平台上媒体处理相关功能的设计、实现、测试及功能维护,参与或者独立承担方案或者架构选型。 2、参与产品的...

弓小嘿
05/17
0
0
10个常见的Android新手误区

1、不读Android开发文档 Android开发者网站可以很好的帮助你。很多的文档也可以通过SDK工具下载。这些文档不仅仅是Javadoc API的参考,它包括许多指南、教程、视频、培训以及其他有用的资料来...

庸人谷
2012/12/11
0
0
和 Google Play 一起展望未来

作者 / Purnima Kochikar, Google Play 应用与游戏商务拓展总监 周一 (美国时间 8 月 6 日) 我们发布了 Android 9 Pie。在持续推动 Android 平台发展的同时,我们也一直在寻求新的方法,帮助...

Android_开发者
08/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

RabbitMQ在CentOS环境安装

1.废话不多说准备一台虚拟机,系统为centos,我这里使用的系统版本如下图所示:

凌晨一点
44分钟前
0
0
线程池相关

在java.util.concurrent包下,提供了一系列与线程池相关的类。 使用线程池的好处 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗; 提高响应速度。当任务到达时,任务...

edwardGe
46分钟前
0
0
学习大数据这三个关键技术是一定要掌握!

大数据时代全面来临,大数据、人工智能等技术引领科技创新潮流,获得国家政策大力支持,前景广阔。学习大数据技术的人自然是络绎不绝, 学习大数据虽然是一个趋势,但也要注意大数据培训课程...

董黎明
今天
0
0
jetbrains 上传代码到github

设置中找github 获取token 验证是否成功 测试git 生成key,一路回车即可 ssh-keygen -t rsa -C “youremail@example.com” 打开pub复制key,需要再次输入一次密码 验证是否成功,输入yes即可...

阿豪boy
今天
0
0
分布式服务框架(拾遗)

前言 现在的大部分工程都已经是基于分布式架构来处理。所以这里对分布式框架做一个简单的总结 常用的RPC框架 RPC框架原理 RPC(Remote Procedure Call,远程过程调用)一般用来实现部署在不同...

kukudeku
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部