开发中必须避免的基础问题

该博客已经停止更新,新博客点击此处:DevWiki的博客

本文转自Liter’s Blog

1.空指针异常

第一就要说这个,必须的,避免了它,大概意味着避免80、90%的错误吧,对方法的调用不进行空指针判断而造成针异常(原则是千万不要想当然认为一个对象就不会空),举个简单例子就是equals操作时没有将常量放在equals操作符的左边(字符串变量与常量比较时,先写常量可以避免空指针异常)。记得有危险的地方要么if判断要么try catch。

2.命名与注释

方法和变量命名随意而不规范,没有类注释,方法注释或者注释不规范,代码修改后,不同步修改注释,注释与代码不符。

3.数据类重载

数据类不重载toString()方法,log打印时会对信息展示有所帮助。(说明:编程规范要求‘所有的数据类必须重载toString()方法,返回该类有意义的内容’)。

4.重量级资源释放

数据库操作,IO操作的资源没有及时释放,释放顺序不正确,或者使用没有必要的预处理,数据库操作,IO操作等需要使用结束close()的对象必须在try-catch-finally的finally中close()。

5.无视循环体效率

循环体内包含了大量没有必要在循环中处理的语句,循环体内循环获取数据库连接,垂体内进行不必要的try-catch操作,(说明:编程规范中建议不要在循环体内调用同步方法和使用try-catch块)。

6.小问题大伤害

不对数组下标作范围校验;用“==”比较两个字符串内容相等;对list做foreach轮回时,循环代码中修改list的结构。

7.异常处理

字符串转化为数字丰数据库时没有做异常处理;捕捉异常后没有在打印异常栈。

8.日志

没有打印异常栈消息,日志没有定位,没有实际作用;日志打印乱糟糟或者无意义;日志和实际情形不一致。

9. 万恶的魔鬼字符,魔鬼数字。

10. 可复用性低

差不多的功能,到处都是冗杂的看似不同的代码(实际上很多可以抽离复用)。
* 建议1:码块/常量/资源可以集中公用的一定共用,即使共用逻辑复杂一点(防止逻辑太过复杂)也值得,修改起来很轻松,修改一种,到处有效。
* 建议2:充分利用继承、多态、封装等面向对象机制来提高可复用性

11.可读性不高:

  • a 代码不分组,不合理使用空行,相似作用的函数没有聚集在一块;
  • b 逻辑嵌套不优化,嵌套if else层级过多;
  • c 代码与数据耦合(常量或者SQL语句和逻辑耦合);
    (建议:设计从简,遵循KIS原则;胆大兼顾心细,平衡稳定性和重构之间的矛盾,使代码以至架构和模块越来越合理)

12. 编程思想

模块分离

举个小例子,有不少同学在Activity里做了很多事,甚至做了DAO、网络操作、数据解析,这不是很合理的,导致一个UI和逻辑之间的‘门面’挂载了过多的伤不起的‘难以承受之重’,阅读困难,逻辑庞大。(建议模块和代码遵循MVC模式,建议View视图、控制相关(内存管理、核心逻辑),数据相关(文件操作、数据库操作、网络操作、数据组装与解析、数据模型)各分一个相对独立大、小模块,模块内分层级架构(积极合理使用继承与实现等面向对象机制))。

单一职责

有的同学写类啥都可以干,管得了内存,控得住文件,做得了解析,搞得了组装,上得了天堂,下得了厨房。这个是模块分离的基础。

接口隔离

举个例子一个水果类在这里是卖水果功能,在那里却还可以买水果,这样是不太合理的,一个类对另一个类的依赖性建立在最小接口之上。一个接口一个角色,一种客户一种接口。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值